Crisphive 0.2.0

dotnet add package Crisphive --version 0.2.0
                    
NuGet\Install-Package Crisphive -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Crisphive" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Crisphive" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Crisphive" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Crisphive --version 0.2.0
                    
#r "nuget: Crisphive, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Crisphive@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Crisphive&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Crisphive&version=0.2.0
                    
Install as a Cake Tool

Crisphive - the C# library for the Crisphive Developer API

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 C# SDK is automatically generated by the OpenAPI Generator project:

  • API version: 1.0
  • SDK version: 0.2.0
  • Generator version: 7.11.0
  • Build package: org.openapitools.codegen.languages.CSharpClientCodegen

<a id="frameworks-supported"></a>

Frameworks supported

<a id="dependencies"></a>

Dependencies

The DLLs included in the package may not be the latest version. We recommend using NuGet to obtain the latest version of the packages:

Install-Package Newtonsoft.Json
Install-Package JsonSubTypes
Install-Package System.ComponentModel.Annotations

<a id="installation"></a>

Installation

Run the following command to generate the DLL

  • [Mac/Linux] /bin/sh build.sh
  • [Windows] build.bat

Then include the DLL (under the bin folder) in the C# project, and use the namespaces:

using Crisphive.Api;
using Crisphive.Client;
using Crisphive.Model;

<a id="packaging"></a>

Packaging

A .nuspec is included with the project. You can follow the Nuget quickstart to create and publish packages.

This .nuspec uses placeholders from the .csproj, so build the .csproj directly:

nuget pack -Build -OutputDirectory out Crisphive.csproj

Then, publish to a local feed or other host and consume the new package via Nuget as usual.

<a id="usage"></a>

Usage

To use the API client with a HTTP proxy, setup a System.Net.WebProxy

Configuration c = new Configuration();
System.Net.WebProxy webProxy = new System.Net.WebProxy("http://myProxyUrl:80/");
webProxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
c.Proxy = webProxy;

Connections

Each ApiClass (properly the ApiClient inside it) will create an instance of HttpClient. It will use that for the entire lifecycle and dispose it when called the Dispose method.

To better manager the connections it's a common practice to reuse the HttpClient and HttpClientHandler (see here for details). To use your own HttpClient instance just pass it to the ApiClass constructor.

HttpClientHandler yourHandler = new HttpClientHandler();
HttpClient yourHttpClient = new HttpClient(yourHandler);
var api = new YourApiClass(yourHttpClient, yourHandler);

If you want to use an HttpClient and don't have access to the handler, for example in a DI context in Asp.net Core when using IHttpClientFactory.

HttpClient yourHttpClient = new HttpClient();
var api = new YourApiClass(yourHttpClient);

You'll loose some configuration settings, the features affected are: Setting and Retrieving Cookies, Client Certificates, Proxy settings. You need to either manually handle those in your setup of the HttpClient or they won't be available.

Here an example of DI setup in a sample web project:

services.AddHttpClient<YourApiClass>(httpClient =>
   new PetApi(httpClient));

<a id="getting-started"></a>

Getting Started

using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using Crisphive.Api;
using Crisphive.Client;
using Crisphive.Model;

namespace Example
{
    public class Example
    {
        public static void Main()
        {

            Configuration config = new Configuration();
            config.BasePath = "https://api.crisphive.com/v1";
            // Configure Bearer token for authorization: ApiKeyAuth
            config.AccessToken = "YOUR_BEARER_TOKEN";

            // create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
            HttpClient httpClient = new HttpClient();
            HttpClientHandler httpClientHandler = new HttpClientHandler();
            var apiInstance = new BusinessSkillApi(httpClient, config, httpClientHandler);
            var page = 56;  // int? | Page number (default: 1) (optional) 
            var limit = 56;  // int? | Page size (default: 15, max: 1000) (optional) 

            try
            {
                // List skill categories
                ListSkillCategories200Response result = apiInstance.ListSkillCategories(page, limit);
                Debug.WriteLine(result);
            }
            catch (ApiException e)
            {
                Debug.Print("Exception when calling BusinessSkillApi.ListSkillCategories: " + e.Message );
                Debug.Print("Status Code: "+ e.ErrorCode);
                Debug.Print(e.StackTrace);
            }

        }
    }
}

<a id="documentation-for-api-endpoints"></a>

Documentation for API Endpoints

All URIs are relative to https://api.crisphive.com/v1

Class Method HTTP request Description
BusinessSkillApi ListSkillCategories GET /skill-categories List skill categories
BusinessSkillApi ListSkills GET /skills List all skills
BusinessSkillApi ListSkillsByCategory GET /skill-categories/{id}/skills List skills in a category
BusinessSkillApi ListTechnicianSkills GET /technicians/{id}/skills List skills for a technician
BusinessSkillApi ReplaceTechnicianSkills PATCH /technicians/{id}/skills Replace a technician's skills
CustomerApi CreateCustomer POST /customers Create a customer
CustomerApi DeleteCustomer DELETE /customers/{id} Delete a customer
CustomerApi GetCustomer GET /customers/{id} Get a customer
CustomerApi ListCustomers GET /customers List customers
CustomerApi UpdateCustomer PUT /customers/{id} Update a customer
JobRequestBusinessApi CommitEmergencyReschedule POST /job-requests/emergency/commit Commit emergency insert + cascade reschedule
JobRequestBusinessApi CommitJobRequestMove POST /job-requests/{id}/move/commit Commit a schedule-board job move
JobRequestBusinessApi ConfirmJobRequest POST /job-requests/{id}/confirm Confirm a booking on behalf of the customer
JobRequestBusinessApi CreateJobRequest POST /job-requests Create a job request
JobRequestBusinessApi GetJobRequest GET /job-requests/{id} Get a job request
JobRequestBusinessApi GetJobRequestTimeline GET /job-requests/{id}/timeline Job timeline
JobRequestBusinessApi GetTechnicianSchedule GET /technicians/{id}/schedule One technician's real schedule (sessions + time off)
JobRequestBusinessApi ListCrewCandidates GET /job-requests/{id}/crew-candidates Matching crew candidates for a job
JobRequestBusinessApi ListEmergencyCandidates POST /job-requests/emergency/candidates Rank technicians for a P0 emergency insert
JobRequestBusinessApi ListJobRequestBookingWindows GET /job-requests/booking-windows Booking availability
JobRequestBusinessApi ListJobRequestChanges GET /job-requests/changes Poll for new & changed job requests (sync feed)
JobRequestBusinessApi ListJobRequests GET /job-requests List job requests
JobRequestBusinessApi ListMatchingSlots GET /job-requests/{id}/time-segments Matching time slots for a quoted job
JobRequestBusinessApi ListNearbyTechnicians GET /technicians/nearby Find nearby feasible technicians (job-less location query)
JobRequestBusinessApi PreviewEmergencyReschedule POST /job-requests/emergency/preview Preview emergency insert + cascade reschedule
JobRequestBusinessApi PreviewJobRequestMove POST /job-requests/{id}/move/preview Preview a schedule-board job move
JobRequestBusinessApi QuoteJobRequest POST /job-requests/{id}/quote Fire quote (FIXED action — business)
JobRequestBusinessApi UpdateJobPriority PATCH /job-requests/{id}/priority Set job priority (scheduling staff)
JobTypesApi GetJobType GET /job-types/{id} Get a job type
JobTypesApi ListJobTypes GET /job-types List job types
ServiceAreaApi GetServiceArea GET /service-areas/{id} Get a service area
ServiceAreaApi ListServiceAreas GET /service-areas List service areas
TechnicianApi CreateTechnician POST /technicians Add a technician
TechnicianApi DeleteTechnician DELETE /technicians/{id} Remove a technician
TechnicianApi GetTechnician GET /technicians/{id} Get a technician
TechnicianApi ListTechnicians GET /technicians List technicians
TechnicianApi ReplaceTechnicianBuddies PUT /technicians/{id}/buddies Replace a technician's buddies
TechnicianApi ReplaceTechnicianLeads PUT /technicians/{id}/leads Replace a buddy's leaders (buddy side)
TechnicianApi ReplaceTechnicianServiceAreas PUT /technicians/{id}/service-areas Replace a technician's service areas
TechnicianApi ReplaceTechnicianVehicles PUT /technicians/{id}/vehicles Replace a technician's vehicles
TechnicianApi UpdateTechnician PUT /technicians/{id} Update a technician
VehicleApi GetVehicle GET /vehicles/{id} Get a vehicle
VehicleApi ListVehicles GET /vehicles List vehicles

<a id="documentation-for-models"></a>

Documentation for Models

<a id="documentation-for-authorization"></a>

Documentation for Authorization

Authentication schemes defined for the API: <a id="ApiKeyAuth"></a>

ApiKeyAuth

  • Type: Bearer Authentication
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.0 121 7/15/2026
0.1.0 115 7/2/2026