WePeopleDocs
IntegrationsPricingDocsSign inGet started
Get started
Docs home

Getting Started

  • What is WePeople
  • First week checklist
  • Core concepts

Product

  • Monitoring
  • Reports
  • People & profiles
  • SPACE scoring
  • Organization settings
  • Statistics
  • Billing & retention
  • Privacy model

Integrations

  • Overview
  • Slack
  • GitHub
  • Jira
  • Trust model

Developers

  • Platform overview
  • Quick start
  • Ingest guide
  • Custom statistics
  • Hosted MCP
  • TypeScript SDK

API Reference

  • Overview
  • Auth & headers
  • GET ping
  • POST events
  • POST snapshots
  • Apps statistics
  • Error codes
  • OpenAPI & SDK

Browse docs

Developers

Quick start

From zero to an accepted event in a few minutes. You need Admin or Owner access to create apps under Organization → Developer.

Create an app

  1. Open your org → Developer → New app.
  2. Name it after your system (e.g. crm-hub, release-automation).
  3. Add the eventType values you plan to emit to the app whitelist — only whitelisted types are accepted.

The app slug becomes your integration id: custom:<slug> on the monitoring timeline.

Generate a key

Issue a key from the app detail page. Keys are prefixed with wp_live_, shown once, and stored as a bcrypt hash — copy it to your secrets manager before closing the dialog. Revoke and reissue if lost.

Authorization headerhttp
Authorization: Bearer wp_live_9f3c3e4c1e9b4b2d9c1e3f4b2c3d4e5f

Validate with ping

Confirm the key works before wiring production traffic. See GET ping.

curlbash
curl "https://wepeople.app/api/v1/ingest/ping" \
  -H "Authorization: Bearer $WEPEOPLE_API_KEY"
Response 200json
{
  "ok": true,
  "organizationId": "org_2Mf1…",
  "app": {
    "id": "app_2Nh8…",
    "slug": "crm-hub",
    "name": "CRM Hub"
  }
}

Send an event

Point actor at a worker via externalId or email. WePeople matches an existing worker or auto-provisions one. Use an Idempotency-Key on every write.

curl — first eventbash
curl -X POST "https://wepeople.app/api/v1/ingest/events" \
  -H "Authorization: Bearer $WEPEOPLE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: quickstart-001" \
  -d '{
    "events": [{
      "eventType": "ticket.resolved",
      "category": "TASK_UPDATE",
      "actor": { "email": "alex@acme.com" },
      "duration": 240,
      "metadata": { "ticket_id": "SUP-431", "priority": "high" }
    }]
  }'

Or install the SDK:

installbash
npm install @wepeople/sdk
@wepeople/sdkts
import { WePeopleClient } from "@wepeople/sdk";

const client = new WePeopleClient({
  apiKey: process.env.WEPEOPLE_API_KEY!,
  baseUrl: "https://wepeople.app",
});

const result = await client.ingestEvents([
  {
    eventType: "ticket.resolved",
    category: "TASK_UPDATE",
    actor: { externalId: "crm-user-42" },
    duration: 240,
    metadata: { ticket_id: "SUP-431" },
  },
]);

console.log(`accepted ${result.accepted}, rejected ${result.rejected}`);

202 vs 207

Full success returns 202 Accepted. If some rows fail validation, you get 207 Multi-Status with per-index rejection details — retry only those indices.

Next steps

  • Read the full Ingest guide for workers, snapshots, and security.
  • Register custom statistics so events roll up into reports.
  • Browse the API reference for field-level contracts.

On this page

  • Create an app
  • Generate a key
  • Validate with ping
  • Send an event
  • Next steps
WePeople

Team insight, not surveillance. A lead's-eye view built on metadata from the tools your team already uses — never source code, never messages, never DMs.

Product

  • Monitoring & Reports
  • SPACE scoring
  • Pricing

Docs

  • Docs home
  • Getting started
  • Developer platform
  • API reference
  • MCP

Integrations

  • Browse integrations

Company

  • Support
  • Status

Legal

  • Brand
  • Privacy
  • Terms

© 2026 WePeople. Built with care.

Metadata only. No source code, no message bodies, no DMs — read the policy.