Developers

The API the product runs on.

Same REST + GraphQL endpoints workwrk uses internally. Type-safe SDKs. Webhooks on every entity. Build automations, integrations, or embeds — without backfilling our APIs.

Create a person
import { Workwrk } from "@workwrk/sdk";
const wwk = new Workwrk({ apiKey: process.env.WORKWRK_KEY });

await wwk.people.create({
  name: "Priya Iyer",
  email: "priya@helios.com",
  role: "Head of Ops",
  location: "Bengaluru",
});
Capabilities

Build on the platform.

REST + GraphQL

Two ways to query. REST for simple flows; GraphQL for nested entities. Same auth, same rate limits.

Webhooks

Every entity emits events on create / update / delete. Signed payloads, retries with exponential backoff.

SDKs

TypeScript, Python, Go. Type-safe, autocomplete-friendly, kept in sync with the API surface.

Reference docs

OpenAPI 3.1 spec, interactive playground, real example payloads. Built with Stoplight.

Rate limits

Generous defaults (1000 req/min on Growth, 10,000 on Scale). Burst-tolerant. Custom quotas on Scale.

Open SDKs

SDKs are MIT-licensed and on GitHub. Issue trackers, PR-friendly maintainers.

Snippets

Three lines from the docs.

Create a personts
import { Workwrk } from "@workwrk/sdk";
const wwk = new Workwrk({ apiKey: process.env.WORKWRK_KEY });

await wwk.people.create({
  name: "Priya Iyer",
  email: "priya@helios.com",
  role: "Head of Ops",
  location: "Bengaluru",
});
Subscribe to KPI changests
// Webhook: POST /your-endpoint
{
  "event": "kpi.score_changed",
  "payload": {
    "personId": "p_abc",
    "kpiId": "k_xyz",
    "previous": 78,
    "current": 92,
    "period": "2026-05"
  }
}
Query with GraphQLgraphql
query TeamPerf {
  team(id: "t_eng") {
    members {
      name
      compositeScore
      kpis { name value target }
    }
  }
}

Build something on workwrk.

API keys live in workspace settings. Need help? developers@workwrk.com — we respond fast.