en

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.

ResourceWhat it contains
SKILL.mdA condensed integration guide written for agents: authentication, the response envelope, core booking flows, and common pitfalls.
openapi.jsonThe 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_… vs chsk_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 returns 401 with API_KEY_EXPIRED, distinct from API_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_code of 0 means success; anything else is an error, and validation failures list per-field details in errors.
  • Mirror data by polling GET /v1/job-requests/changes with the returned next_since cursor 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.md first — it is small enough to fit in context and answers most integration questions without the full spec.
  • Generate request/response types from openapi.json rather 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.