WePeopleDevelopers
IntegrationsPricingDevelopersSign inGet started
OverviewGuideReferenceOpenAPI YAML

Ingest API · v1 · private per organization

01 · Developer platform

Your systems’ signal, on the same page as the rest of your stack.

Push events from your CRM, CI pipeline, internal tools, or AI agents into WePeople and see them land on the same monitoring timeline your team already reads every morning — without timesheets, without status meetings, without rewriting your stack.

Read the guideAPI referenceOpenAPI YAMLSDK on GitHub
POST /api/v1/ingest/eventsbash
curl -X POST "$WEPEOPLE_BASE_URL/api/v1/ingest/events" \
  -H "Authorization: Bearer $WEPEOPLE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: crm-evt-5821" \
  -d '{
    "events": [{
      "eventType": "ticket.resolved",
      "category": "project_management",
      "actor": { "email": "alex@acme.com" },
      "duration": 240,
      "metadata": { "ticket_id": "SUP-431", "priority": "high" }
    }]
  }'

Issue a wp_live_*key from your org’s Developer tab. Ninety seconds from signup to first accepted event.

02 · Mental model

Two verbs, one dashboard.

Events

Discrete things that happened at a point in time — tickets resolved, pipelines shipped, docs merged. Events land on the monitoring timeline alongside every other connected integration and roll up into each worker’s activity score.

Batch up to 500 per request. Partial failures return 207 Multi-Status so you only retry rejected rows.

Snapshots

“Right now” gauges — tickets open, deployment queue depth, SLA attainment. Only the latest snapshot per (worker, type) renders on the user strip; the rest are queryable events.

Send on a five-minute cron. Numeric values, optional units, a label — a dashboard card, basically.

03 · Quick start

Three steps to live data.

  1. 01Create an appOrganization settings → Developer → new app. Name it after your system (crm-hub, github-actions), pick the event types you plan to emit.
  2. 02Generate a keyKeys start with wp_live_. Shown once — paste it into your secrets manager before closing the dialog.
  3. 03Send eventsUse the SDK below, a curl call, or any HTTP client. Point actor.emailat your user’s address and WePeople will match or create the worker for you.
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",
});

await client.ingestSnapshot({
  snapshotType: "tickets_open",
  actor: { externalId: "crm-user-42" },
  metrics: {
    tickets_open: 7,
    sla_attainment: { value: 0.92, unit: "ratio", label: "SLA" },
  },
});

Zero-dependency, retries built in, idempotency by default. Works from Node 18+, Bun, Deno, Cloudflare Workers, or the browser. Source on GitHub.

04 · Worked examples

Things teams are already piping in.

CRM

Support throughput

Ticket resolved / reopened / escalated. Snapshot open count + SLA attainment every 5 minutes.

Pipelines

Shipping velocity

Deploys, canaries, rollbacks. Tie each deploy to the engineer who merged it.

AI agents

Work-item trails

The agent closed a PR at 03:14. Emit the event so it shows up on the team timeline.

Internal tools

Status boards

On-call handoffs, approvals, deploy-window windows — anything worth a timeline row.

Next

Read the guide, or jump into the reference.

WePeople Ingest API · v1

API referenceOpenAPI YAMLSDK (GitHub)npmPricingBack to site