crisphive
Public REST API for integrating Crisphive from your own backend. Authenticate every request with a secret API key as a Bearer token (Authorization: Bearer chsk_live_…). The key prefix selects the data environment: chsk_live_… → production (live), chsk_test_… → sandbox (isolated test).
Key scopes (restricted keys). A key is either full-access (can call every endpoint below) or restricted to a set of permission codes chosen at creation — the same codes as the dashboard permission grid (e.g. customers_view, job_create, team_manage). A restricted key calling an endpoint outside its scope gets 403. The full code list is the permission catalog (GET /permission/modules on the dashboard API). Create, scope, and revoke keys from the business dashboard.
Every response is wrapped in the envelope { \"error_code\": 0, \"message\": \"Success\", \"data\": <payload> }.
This Python package is automatically generated by the OpenAPI Generator project:
- API version: 1.0
- Package version: 0.3.0
- Generator version: 7.11.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
Requirements.
Python 3.8+
Installation & Usage
pip install
If the python package is hosted on a repository, you can install directly using:
pip install git+https://github.com/crisphive/crisphive-python.git
(you may need to run pip with root permission: sudo pip install git+https://github.com/crisphive/crisphive-python.git)
Then import the package:
import crisphive
Setuptools
Install via Setuptools.
python setup.py install --user
(or sudo python setup.py install to install the package for all users)
Then import the package:
import crisphive
Tests
Execute pytest to run the tests.
Getting Started
Please follow the installation procedure and then run the following:
import crisphive
from crisphive.rest import ApiException
from pprint import pprint
# Defining the host is optional and defaults to https://api.crisphive.com/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = crisphive.Configuration(
host = "https://api.crisphive.com/v1"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure Bearer authorization (Crisphive secret key): ApiKeyAuth
configuration = crisphive.Configuration(
access_token = os.environ["BEARER_TOKEN"]
)
# Enter a context with an instance of the API client
with crisphive.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = crisphive.WebhooksApi(api_client)
webhook_create_request = crisphive.WebhookCreateRequest() # WebhookCreateRequest | Webhook details
idempotency_key = 'idempotency_key_example' # str | Unique key making retries safe: a repeat send with the same key replays the original response (header Idempotent-Replayed: true) instead of minting a second endpoint + secret. Reusing a key with a different body returns 422. (optional)
try:
# Create a webhook endpoint
api_response = api_instance.create_webhook_endpoint(webhook_create_request, idempotency_key=idempotency_key)
print("The response of WebhooksApi->create_webhook_endpoint:\n")
pprint(api_response)
except ApiException as e:
print("Exception when calling WebhooksApi->create_webhook_endpoint: %s\n" % e)
Documentation for API Endpoints
All URIs are relative to https://api.crisphive.com/v1
| Class | Method | HTTP request | Description |
|---|---|---|---|
| WebhooksApi | create_webhook_endpoint | POST /webhooks | Create a webhook endpoint |
| WebhooksApi | delete_webhook_endpoint | DELETE /webhooks/{id} | Delete a webhook endpoint |
| WebhooksApi | list_webhook_event_types | GET /webhooks/event-types | List subscribable webhook event types |
| BusinessSkillApi | create_skill | POST /skill-categories/{id}/skills | Create a skill |
| BusinessSkillApi | create_skill_category | POST /skill-categories | Create a skill category |
| BusinessSkillApi | delete_skill | DELETE /skills/{id} | Delete a skill |
| BusinessSkillApi | delete_skill_category | DELETE /skill-categories/{id} | Delete a skill category |
| BusinessSkillApi | list_skill_categories | GET /skill-categories | List skill categories |
| BusinessSkillApi | list_skills | GET /skills | List all skills |
| BusinessSkillApi | list_skills_by_category | GET /skill-categories/{id}/skills | List skills in a category |
| BusinessSkillApi | list_technician_skills | GET /technicians/{id}/skills | List skills for a technician |
| BusinessSkillApi | replace_technician_skills | PATCH /technicians/{id}/skills | Replace a technician's skills |
| BusinessSkillApi | update_skill | PUT /skills/{id} | Update a skill |
| CustomerApi | create_customer | POST /customers | Create a customer |
| CustomerApi | delete_customer | DELETE /customers/{id} | Delete a customer |
| CustomerApi | get_customer | GET /customers/{id} | Get a customer |
| CustomerApi | list_customers | GET /customers | List customers |
| CustomerApi | update_customer | PUT /customers/{id} | Update a customer |
| JobRequestBusinessApi | book_and_confirm_job_request | POST /job-requests/book-and-confirm | Book, schedule and confirm a job in one call |
| JobRequestBusinessApi | commit_absence_resolve | POST /job-requests/absence/commit | Commit the previewed re-staffing of a technician's day |
| JobRequestBusinessApi | commit_emergency_reschedule | POST /job-requests/emergency/commit | Commit emergency insert + cascade reschedule |
| JobRequestBusinessApi | commit_job_request_move | POST /job-requests/{id}/move/commit | Commit a schedule-board job move |
| JobRequestBusinessApi | confirm_job_request | POST /job-requests/{id}/confirm | Confirm a booking on behalf of the customer |
| JobRequestBusinessApi | create_job_request | POST /job-requests | Create a job request |
| JobRequestBusinessApi | get_job_request | GET /job-requests/{id} | Get a job request |
| JobRequestBusinessApi | get_job_request_timeline | GET /job-requests/{id}/timeline | Job timeline |
| JobRequestBusinessApi | get_technician_schedule | GET /technicians/{id}/schedule | One technician's real schedule (sessions + time off) |
| JobRequestBusinessApi | list_crew_candidates | GET /job-requests/{id}/crew-candidates | Matching crew candidates for a job |
| JobRequestBusinessApi | list_emergency_candidates | POST /job-requests/emergency/candidates | Rank technicians for a P0 emergency insert |
| JobRequestBusinessApi | list_job_request_booking_windows | GET /job-requests/booking-windows | Booking availability |
| JobRequestBusinessApi | list_job_request_changes | GET /job-requests/changes | Poll for new & changed job requests (sync feed) |
| JobRequestBusinessApi | list_job_requests | GET /job-requests | List job requests |
| JobRequestBusinessApi | list_matching_slots | GET /job-requests/{id}/time-segments | Matching time slots for a quoted job |
| JobRequestBusinessApi | list_nearby_technicians | GET /technicians/nearby | Find nearby feasible technicians (job-less location query) |
| JobRequestBusinessApi | preview_absence_resolve | POST /job-requests/absence/preview | Preview re-staffing a technician's whole day (sick call) |
| JobRequestBusinessApi | preview_emergency_reschedule | POST /job-requests/emergency/preview | Preview emergency insert + cascade reschedule |
| JobRequestBusinessApi | preview_job_request_move | POST /job-requests/{id}/move/preview | Preview a schedule-board job move |
| JobRequestBusinessApi | quote_job_request | POST /job-requests/{id}/quote | Fire quote (FIXED action — business) |
| JobRequestBusinessApi | update_job_priority | PATCH /job-requests/{id}/priority | Set job priority (scheduling staff) |
| JobTypesApi | create_job_type | POST /job-types | Add a job type to the catalog |
| JobTypesApi | delete_job_type | DELETE /job-types/{id} | Remove a job type from the catalog |
| JobTypesApi | get_job_type | GET /job-types/{id} | Get a job type |
| JobTypesApi | list_job_types | GET /job-types | List job types |
| JobTypesApi | update_job_type | PUT /job-types/{id} | Rename a job type or change its availability |
| PermissionApi | list_assignable_groups | GET /permission/groups/assignable | List groups the caller may assign to a member |
| ServiceAreaApi | create_service_area | POST /service-areas | Define a territory the business serves |
| ServiceAreaApi | delete_service_area | DELETE /service-areas/{id} | Stop serving a territory |
| ServiceAreaApi | get_service_area | GET /service-areas/{id} | Get a service area |
| ServiceAreaApi | list_service_areas | GET /service-areas | List service areas |
| ServiceAreaApi | update_service_area | PUT /service-areas/{id} | Adjust a territory's details or its boundary |
| TechnicianApi | create_technician | POST /technicians | Add a technician |
| TechnicianApi | delete_technician | DELETE /technicians/{id} | Remove a technician from the business |
| TechnicianApi | get_technician | GET /technicians/{id} | Get a technician |
| TechnicianApi | list_technicians | GET /technicians | List technicians |
| TechnicianApi | replace_technician_buddies | PUT /technicians/{id}/buddies | Replace a technician's buddies |
| TechnicianApi | replace_technician_leads | PUT /technicians/{id}/leads | Replace a buddy's leaders (buddy side) |
| TechnicianApi | replace_technician_service_areas | PUT /technicians/{id}/service-areas | Replace a technician's service areas |
| TechnicianApi | replace_technician_vehicles | PUT /technicians/{id}/vehicles | Replace a technician's vehicles |
| TechnicianApi | update_technician | PUT /technicians/{id} | Update a technician |
| TechnicianTimeOffApi | create_technician_time_off | POST /technician-time-off | Record a technician's time off (sick day, leave) |
| TechnicianTimeOffApi | delete_technician_time_off | DELETE /technician-time-off/{id} | Delete a technician's time off (e.g. back from a sick day) |
| TechnicianTimeOffApi | list_technician_time_off | GET /technicians/{id}/time-off | List time off for a specific technician |
| VehicleApi | create_vehicle | POST /vehicles | Add a vehicle to the fleet |
| VehicleApi | delete_vehicle | DELETE /vehicles/{id} | Retire a vehicle from the fleet |
| VehicleApi | get_vehicle | GET /vehicles/{id} | Get a vehicle |
| VehicleApi | list_vehicles | GET /vehicles | List vehicles |
| VehicleApi | update_vehicle | PUT /vehicles/{id} | Change a vehicle's details |
Documentation For Models
- ApiInternalTechtimeoffActions
- ApiInternalTechtimeoffStatus
- AssignableGroup
- BookAndConfirmJobRequest200Response
- CommitAbsenceResolve200Response
- CommitEmergencyReschedule200Response
- CommitJobRequestMove200Response
- CreateCustomer200Response
- CreateJobRequest200Response
- CreateJobType200Response
- CreateServiceArea200Response
- CreateSkill200Response
- CreateSkillCategory200Response
- CreateTechnician200Response
- CreateTechnicianTimeOff200Response
- CreateVehicle200Response
- CreateWebhookEndpoint200Response
- Customer
- CustomerAddress
- CustomerAddressRequest
- CustomerContact
- CustomerCreateRequest
- CustomerCreateResponse
- CustomerList
- CustomerListItem
- CustomerProfile
- CustomerQuickBooksLink
- CustomerServiceAreaRef
- CustomerSpending
- CustomerTechnicianRef
- CustomerTierProgress
- CustomerUpdateRequest
- GetCustomer200Response
- GetJobRequest200Response
- GetJobRequestTimeline200Response
- GetJobType200Response
- GetServiceArea200Response
- GetTechnician200Response
- GetTechnicianSchedule200Response
- GetVehicle200Response
- InternalJobrequestHttpAddressReq
- JobDate
- JobDateBusinessRange
- JobDatePeriod
- JobDatePeriodEntry
- JobRequest
- JobRequestAbsenceAlternative
- JobRequestAbsenceAlternativeCost
- JobRequestAbsenceAssignment
- JobRequestAbsenceCommitRequest
- JobRequestAbsenceNotification
- JobRequestAbsencePlan
- JobRequestAbsencePreviewRequest
- JobRequestAbsenceResolvedJob
- JobRequestAbsenceSolver
- JobRequestAbsenceTimeOff
- JobRequestAbsenceUnresolvedJob
- JobRequestActionAuditBy
- JobRequestActionAuditEntry
- JobRequestActionSummary
- JobRequestAddressSummary
- JobRequestArchiveSummary
- JobRequestArrivalWindow
- JobRequestAssignedVehicle
- JobRequestAssignmentSummary
- JobRequestAttentionSummary
- JobRequestAvailableVehicle
- JobRequestBlocker
- JobRequestBlockerRef
- JobRequestBookAndConfirmCustomer
- JobRequestBookAndConfirmEmergency
- JobRequestBookAndConfirmEmergencyResult
- JobRequestBookAndConfirmRefusal
- JobRequestBookAndConfirmRequest
- JobRequestBookAndConfirmResponse
- JobRequestBookingWindows
- JobRequestBuddySlotCandidates
- JobRequestBusinessTimeRange
- JobRequestChanges
- JobRequestConfirmRequest
- JobRequestCreateRequest
- JobRequestCreateResponse
- JobRequestCrewCandidates
- JobRequestCrewChange
- JobRequestCrewMember
- JobRequestCrewMemberInput
- JobRequestCrewRecommendation
- JobRequestCustomerSummary
- JobRequestDayWindows
- JobRequestEmergencyCandidate
- JobRequestEmergencyCandidates
- JobRequestEmergencyCandidatesRequest
- JobRequestEmergencyCommitRequest
- JobRequestEmergencyInlineJob
- JobRequestEmergencyPlan
- JobRequestEmergencyPreviewRequest
- JobRequestJobDateBusinessRangeRequest
- JobRequestJobDatePeriodRequest
- JobRequestJobDateRequest
- JobRequestLeadCandidate
- JobRequestList
- JobRequestMoveCommitReq
- JobRequestMoveMember
- JobRequestMovePlan
- JobRequestMovePreviewReq
- JobRequestMoveWarning
- JobRequestPeriod
- JobRequestPriorityUpdateResult
- JobRequestQuoteRequest
- JobRequestQuoteSummary
- JobRequestRatingSummary
- JobRequestReassignFallback
- JobRequestRescheduleDay
- JobRequestRescheduleMove
- JobRequestRescheduleReassignment
- JobRequestSchedule
- JobRequestSession
- JobRequestSkillSummary
- JobRequestStatusSummary
- JobRequestTechCandidate
- JobRequestTechnicianInfo
- JobRequestTimeSegments
- JobRequestTimeSegmentsBusinessTime
- JobRequestTimeSegmentsDay
- JobRequestTimeSegmentsSlot
- JobRequestTimeSegmentsWorker
- JobRequestTimeline
- JobRequestTimelineAction
- JobRequestTimelineEvent
- JobRequestUpdatePriorityRequest
- JobType
- JobTypeCreateRequest
- JobTypeCreateResponse
- JobTypeUpdateRequest
- ListAssignableGroups200Response
- ListCrewCandidates200Response
- ListCustomers200Response
- ListEmergencyCandidates200Response
- ListJobRequestBookingWindows200Response
- ListJobRequestChanges200Response
- ListJobRequests200Response
- ListJobTypes200Response
- ListMatchingSlots200Response
- ListNearbyTechnicians200Response
- ListServiceAreas200Response
- ListSkillCategories200Response
- ListSkills200Response
- ListSkillsByCategory200Response
- ListTechnicianSkills200Response
- ListTechnicianTimeOff200Response
- ListTechnicians200Response
- ListVehicles200Response
- ListWebhookEventTypes200Response
- NearbyTechnician
- NearbyTechnicians
- Pagination
- QuoteJobRequest200Response
- ReplaceTechnicianServiceAreas200Response
- ResponseEnvelope
- ServiceArea
- ServiceAreaCreateRequest
- ServiceAreaCreateResponse
- ServiceAreaList
- ServiceAreaUpdateRequest
- Skill
- SkillByCategoryList
- SkillCategory
- SkillCategoryCreateRequest
- SkillCategoryCreateResponse
- SkillCategoryList
- SkillCreateRequest
- SkillCreateResponse
- SkillList
- SkillSummary
- SkillUpdateRequest
- Technician
- TechnicianAddress
- TechnicianAddressInput
- TechnicianBuddiesRequest
- TechnicianCreateRequest
- TechnicianCreateResponse
- TechnicianLeadRef
- TechnicianLeadsRequest
- TechnicianList
- TechnicianSchedule
- TechnicianScheduleBlock
- TechnicianScheduleSession
- TechnicianServiceAreaRef
- TechnicianServiceAreasRequest
- TechnicianServiceAreasResponse
- TechnicianSkill
- TechnicianSkillList
- TechnicianSkillsRequest
- TechnicianStatus
- TechnicianTimeOff
- TechnicianTimeOffCreateRequest
- TechnicianTimeOffCreateResponse
- TechnicianTimeOffList
- TechnicianUpdateRequest
- TechnicianVehiclesRequest
- Vehicle
- VehicleCreateRequest
- VehicleCreateResponse
- VehicleList
- VehicleOwner
- VehicleUpdateRequest
- WebhookCreateRequest
- WebhookCreateResponse
- WebhookVerification
Documentation For Authorization
Authentication schemes defined for the API:
ApiKeyAuth
- Type: Bearer authentication (Crisphive secret key)
Author
Metadata
Release files for crisphive 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| crisphive-0.3.0.tar.gz | 178.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| crisphive-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 731.1 kB
Release files / crisphive-0.3.0.tar.gz
| Download URL | crisphive-0.3.0.tar.gz |
|---|---|
| Size | 178.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ce07765862b60769d0f8da2a717944a0dc48205074f894ab18e20d0b305f66f
|
|
BLAKE2b-256 checksum How to use checksums |
eef280a220e946d8f55fcebb35db420e513f0e69ce364ef443e352ba3083ed12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Release files / crisphive-0.3.0-py3-none-any.whl
| Download URL | crisphive-0.3.0-py3-none-any.whl |
|---|---|
| Size | 552.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f768504c418b9363541666cfc0f27fb90a56f068f12413f32284430fb16340b2
|
|
BLAKE2b-256 checksum How to use checksums |
a09458cbe7461e6f1cf4a991449020fba10741312e0af580e838d3eaeab8a116
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Security for crisphive 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.