API reference

Meta

Two endpoints that answer 'is the API up' and 'what can this key do'. Both are worth calling before you debug anything else.

GET/pingno authentication

No authentication. Confirms the API is reachable and reports the version it is serving. Use it for a health check that does not consume a rate-limit quota you may need.

Request
curl -s https://tahoe.workonward.com/api/partner/v1/ping
Response
{
  "object": "ping",
  "ok": true,
  "api_version": "2026-09-09"
}

GET/meany valid credential

Echoes the calling credential: its scopes, which workspaces it can reach, whether it must name one, and its current limits and usage. This is the endpoint that turns “my calls are 403ing” into a one-line answer, and it is the right place to start every support conversation.

Request
curl -s https://tahoe.workonward.com/api/partner/v1/me \
  -H "Authorization: Bearer $TAHOE_API_KEY"
Response
{
  "object": "credential",
  "id": "pk_9tRc4mQx7Lb2",
  "name": "WorkOnward HRIS sync",
  "environment": "live",
  "scopes": ["applications:read", "contact:read", "jobs:read", "workspaces:read"],
  "scope_descriptions": {
    "applications:read": "Applications, their stage and status, and match scores.",
    "contact:read": "Work and personal email addresses your workspace has already revealed.",
    "jobs:read": "Job postings, their content, application forms and pipeline stages.",
    "workspaces:read": "Workspace name and creation date."
  },
  "workspace_scope": "single",
  "workspace_ids": ["wsp_4Kd8sPm2Qx7L"],
  "workspace_id_required": false,
  "rate_limits": {
    "general_per_minute": 600,
    "expensive_per_minute": 60,
    "download_per_minute": 30,
    "personal_data_reads_per_day": 5000,
    "personal_data_reads_used_today": 128,
    "max_page_size": 100,
    "default_page_size": 25,
    "max_result_window": 10000
  },
  "created_at": "2026-09-09T10:14:22.510Z",
  "expires_at": "2026-12-08T10:14:22.510Z",
  "api_version": "2026-09-09"
}
FieldMeaning
idThe key handle. Safe to log, and the id support will ask for.
nameWhat the key was called when it was created. Also on every audit row.
environmentlive or test. Both read the same data.
scopesExactly what was granted. Cannot be widened without minting a new key.
scope_descriptionsThe same one-line text the customer saw when they ticked the box.
workspace_scopesingle or all.
workspace_idsThe workspaces reachable. For a cross-workspace key this can be long.
workspace_id_requiredWhen true, every request must pass ?workspace_id=. Read this rather than inferring it.
rate_limitsYour effective quotas, plus how much of the daily personal-data budget you have spent.
expires_atWhen the key stops working, or null if it never does.

The machine-readable contract

A generated OpenAPI document is served alongside the API. It is produced from the running service rather than maintained by hand, so it is the authority on parameter names and response shapes if this page and it ever disagree.

Request
curl -s https://tahoe.workonward.com/api/partner/v1/openapi.json | jq '.paths | keys | length'