Documentation Get help

Developers

Not writing code? To use Flowstate from an AI assistant, see Flowstate in Claude or Flowstate in ChatGPT.

SurfaceUse it forAuth
REST APIReading and writing employees, contractors, vacancies, teams, projects, allocations, pay history, custom attributes and functional groups; pushing business metric readingsAPI key
MCP serverQuerying Flowstate and making changes, including inside scenarios, from any MCP clientOAuth, per person
Outbound webhooksA signed HTTP call when a record changesSignature
Custom integrationsYour own code running inside Flowstate on a schedule or on changeRuns in Flowstate

HR systems sync in two ways: a custom integration that pulls on a schedule (recipe and per-system notes), or your integration platform writing to the REST API as changes happen (recipe). Supported systems and how each connects: Connect your HR system.

REST API

Base URL

https://{tenant}.flowstate.inc/api/v1/org/{orgId}

{tenant}.flowstate.inc is the host you sign in to. {orgId} is your organisation’s ID. A key works only for its own organisation; any other orgId returns 403.

First request

  1. Create a key at Settings → Users & Access → API Keys → Create API Key with the View Employees permission. See Authentication.
  2. List one employee:
curl "https://{tenant}.flowstate.inc/api/v1/org/{orgId}/employees?limit=1" \
  -H "Authorization: Bearer $FLOWSTATE_API_KEY"
{
  "data": [
    {
      "id": "cmmy2ye2iyuq66uq2iay2miyi",
      "externalId": "EMP-0042",
      "firstName": "Jane",
      "lastName": "Chen",
      "email": "jane.chen@example.com",
      "startDate": "2024-03-15T00:00:00.000Z",
      "endDate": null,
      "managerId": null,
      "jobRoleId": "caa2mi6uiy66ma22mmeaeu2e6",
      "geographyId": "cuay2eqyymqe6y2ui26q6ieia",
      "createdAt": "2024-03-01T09:12:44.000Z",
      "updatedAt": "2026-08-30T16:02:10.000Z"
    }
  ],
  "meta": { "page": 1, "limit": 1, "total": 142, "hasNextPage": true }
}

Records carry more fields than shown here; each resource page lists them.

Conventions

Content typeSend Content-Type: application/json on every request with a body.
EnvelopeSingle record: { "data": { … } }. List: { "data": [ … ], "meta": { … } }. Error: { "error": { "code", "message", … } }; see Errors.
Status codes200 read, update, delete, vacancy fill · 201 create.
Delete200 with { "data": { "id": "…", "deleted": true } }.
IDsAny {id} in a path, and reference fields such as managerId, teamId and projectId, accept the Flowstate ID or your externalId. A value of 24–25 lowercase letters and digits starting with a letter is read as a Flowstate ID; anything else as an externalId. So an externalId can’t take that shape, and must be unique per resource type in your organisation.
DatesSend ISO 8601 (2026-07-01 or a full timestamp). Responses return timestamps (2026-07-01T00:00:00.000Z), except functional groups, which use YYYY-MM-DD.
CurrencyISO 4217, upper case (GBP).
Partial updatesPATCH changes only the fields you send. Send null to clear a nullable field.
Paginationpage and limit on most lists; see Pagination, sorting and search.
ScenariosREST reads and writes live data, except functional groups. See Scenarios.

OpenAPI

Both are public; no key needed.

OpenAPI 3.0 (JSON)https://{tenant}.flowstate.inc/api/v1/openapi.json
Swagger UIhttps://{tenant}.flowstate.inc/api/v1/docs

Limits

LimitValue
limit on paged lists1–100
Request body1 MB
Readings per POST /business-metrics/readings1,000
POST /business-metrics/readings120 requests a minute per key
API key lifetime90 days maximum
MCP server100 requests a minute per person; see MCP rate limiting

Handle 429 from any endpoint by waiting the Retry-After seconds.

Reference

Guides — Authentication · Errors · Pagination, sorting and search · Scenarios · Recipes · API changelog

People and teams — Employees · Contractors · Vacancies · Teams · Salary adjustments · Contractor rate adjustments · Functional groups

Projects and allocations — Projects · Assignments · Custom attributes

Metrics — Business metrics

Events and extensions — Outbound webhooks · Custom integrations

AI assistants and MCP — MCP server · Flowstate in Claude · Flowstate in ChatGPT

MCP-only data — Initiatives · Effort · AI usage