For AI
Everything an AI coding assistant needs to build a Crisphive integration — a ready-to-paste prompt, machine-readable resources, and the key facts about the API in one place.
Install with AI
Paste this prompt into your AI coding assistant to bootstrap an integration:
Read the Crisphive backend integration skill at https://api.crisphive.com/developers/SKILL.md and the OpenAPI spec at https://api.crisphive.com/developers/openapi.json. Then implement a client for my backend that: 1. Authenticates with an API key as a Bearer token (chsk_test_… for sandbox) 2. Creates a customer and a job request 3. Keeps job requests in sync by polling GET /v1/job-requests/changes with the next_since cursor
Every response uses one envelope shape —
{ error_code, message, errors, data } — so generated clients can share a single response parser.Machine-readable resources
Both files are served by the API itself, so they always match the deployed version — point your assistant straight at these URLs instead of copying docs pages into its context.
| Resource | What it contains |
|---|---|
SKILL.md | A condensed integration guide written for agents: authentication, the response envelope, core booking flows, and common pitfalls. |
openapi.json | The full OpenAPI spec — every endpoint, request/response schema, and error code. Use it to generate typed clients. |
Key facts for your assistant
- The base URL is
https://api.crisphive.com/v1— sandbox and live share the same paths; the environment is selected by the key prefix (chsk_test_…vschsk_live_…). - Authenticate every request with
Authorization: Bearer <api key>. Keys expire — the lifetime is chosen at creation (30 days by default, from 1 up to 365) and can never be extended; renew by creating a replacement key and revoking the old one (up to 50 active keys per environment). An expired key returns401withAPI_KEY_EXPIRED, distinct fromAPI_KEY_INVALID. A key is either full-access or restricted to specific permission scopes (e.g. create job requests without read access to your customer list), and is always locked to one workspace and one environment (live or sandbox). Keep keys server-side. - An
error_codeof0means success; anything else is an error, and validation failures list per-field details inerrors. - Mirror data by polling
GET /v1/job-requests/changeswith the returnednext_sincecursor instead of re-listing resources. - Prefer webhooks to get pushed events (bookings, customers, technicians) the moment they happen; the change feed is the pull-based alternative when you can’t expose an endpoint.
Tips for better results
- Have the assistant read
SKILL.mdfirst — it is small enough to fit in context and answers most integration questions without the full spec. - Generate request/response types from
openapi.jsonrather than letting the model guess field names. - Develop against a sandbox key (
chsk_test_…) and switch to live only after the flows work end to end. - When debugging, assert on
error_code— not the HTTP status alone.