en
Catalog›Add a job type to the catalog

Add a job type to the catalog

Creates a kind of work customers can book, such as "Annual boiler service" or "Drain unblocking". Job types classify bookings: createJobRequest takes an optional `job_type_id` from this catalog and the job keeps the type's name as it was at booking time. `name` is the only required field and must be unique in the business (JOB_TYPE_DUPLICATE). `status` defaults to active. An inactive type stays in the catalog but cannot be chosen for new job requests; use that rather than deleting a type you may revive. Send an Idempotency-Key header (the `idempotency_key` argument over MCP) so a retried call replays the original response instead of creating a duplicate type. Optional default_duration_minutes (+ default_mobilization_minutes / default_demobilization_minutes) set how long this kind of work usually takes: quoteJobRequest uses them when it is sent no job_duration_minutes, so an automation or voice agent can schedule the job without knowing the length. A buffer needs a duration (JOB_TYPE_INVALID_DEFAULT_DURATION). This defines the catalog, not a booking. To book actual work use createJobRequest and reference the job type there.

Arguments

Idempotency-Keystringheaderoptional
Unique key making retries safe: a repeat send with the same key replays the original response (header Idempotent-Replayed: true) instead of re-running the operation. Reusing a key with a different body returns 422 IDEMPOTENCY_KEY_REUSE.
default_demobilization_minutesintegerbodyoptional
Default demobilization (teardown) minutes, 0–1440; used together with the default duration. Requires a default duration. Omit or 0 = no default.
default_duration_minutesintegerbodyoptional
Default hands-on work duration in minutes for this kind of work (1–20160). A quote that sends no job_duration_minutes uses it, which is what lets an automation or voice agent schedule a job without knowing how long the work takes. Omit or 0 = no default.
default_mobilization_minutesintegerbodyoptional
Default mobilization (setup/travel-prep) minutes, 0–1440; used together with the default duration. Requires a default duration. Omit or 0 = no default.
namestringbodyrequired
Job-type name (required) — what the booking form shows as the kind of work. Stored as the canonical English value; per-locale names are a dashboard authoring feature.
statusenumbodyoptional
Lifecycle status. Defaults to active; inactive types cannot be selected for new job requests.
POST/v1/job-types
curl -X POST "https://api.crisphive.com/v1/job-types" \
  -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \
  -H "Content-Type: application/json" \
  -d '{
  "default_demobilization_minutes": 10,
  "default_duration_minutes": 90,
  "default_mobilization_minutes": 15,
  "name": "Survey",
  "status": "active"
}'
Request body
{
"default_demobilization_minutes": ,
"default_duration_minutes": ,
"default_mobilization_minutes": ,
"name": ,
"status":
}

Responses