Client generation

Generate typed clients from the OpenAPI contract.

StateSet Voice publishes scoped OpenAPI 3.1 documents so teams can generate runtime and admin clients that match their security boundaries.

Client strategy

Generate separate clients for runtime and admin surfaces. That keeps tenant-facing applications away from admin-only credentials and makes code ownership clearer in larger organizations.

Runtime client

Application teams

Use /api-docs/public.json for outbound calls, sessions, call logs, operations, and automation workflows.

Admin client

Platform teams

Use /api-docs/admin.json for tenants, API keys, agents, phone routes, diagnostics, and rollout governance.

TypeScript

npm install --save-dev openapi-typescript

npx openapi-typescript https://voice.stateset.app/api-docs/public.json \
  -o src/generated/stateset-voice-public.d.ts

npx openapi-typescript https://voice.stateset.app/api-docs/admin.json \
  -o src/generated/stateset-voice-admin.d.ts

Generated fetch client

openapi-generator-cli generate \
  -i https://voice.stateset.app/api-docs/public.json \
  -g typescript-fetch \
  -o generated/stateset-voice-public

openapi-generator-cli generate \
  -i https://voice.stateset.app/api-docs/admin.json \
  -g typescript-fetch \
  -o generated/stateset-voice-admin

Python

openapi-python-client generate \
  --url https://voice.stateset.app/api-docs/public.json \
  --meta none \
  --path generated/stateset_voice_public

CI contract check

Pin generated clients to a reviewed spec snapshot. Regenerate clients in CI and fail the build when generated code changes without a reviewed API update.

curl -sS https://voice.stateset.app/api-docs/public.json \
  -o api-contracts/stateset-voice-public.json

git diff --exit-code api-contracts generated