API — Specific Methods

Per-endpoint reference for the Core Inspection REST API methods.

Last updated

The following methods are specifics of note to assist with development.

Clients

GET /Clients

Returns a short JSON definition in a collection containing all clients.

Query Parameters

NameTypeRequiredDescription
modifiedDtdatetimeNoReturns only clients modified on or after the specified date.

Request Example

GET /Clients?modifiedDt=2025-06-01T00:00:00

GET /Clients/{id}

Returns a specific detailed JSON document containing all fields.

The {id} can be either:

  • clientId (the Core system generated GUID), or
  • importuniqueid (your internally supplied id)

PUT /Clients

Creates a client record. If a ClientLocations JSON structure isn't supplied, a default location matching the client name is created and set as the default location.

  • ClientId - If supplied, it is ignored.
  • Name - The only required field.
  • ClientLocations - JSON structure. LocationName is required or an error is thrown.

PATCH /Clients/{id}

Takes a patch document in the request body. Returns a specific detailed JSON document containing all fields.

The {id} can be either:

  • clientId (the Core system generated GUID), or
  • importuniqueid (your internally supplied id)

Client Locations

GET /ClientLocations/{id}

Returns a specific detailed JSON document for a client location.

PUT /ClientLocations

Creates a client location record from a JSON body.

PATCH /ClientLocations/{id}

Updates a client location record via a JSON patch document.


Equipment

GET /Equipment

Returns a JSON collection of equipment. At least one of locationId or modifiedDt must be supplied. Returns a max of 200 items per page. Response includes X-Total-Count and X-Total-Pages headers.

Query Parameters

NameTypeRequiredDescription
locationIdGUIDNoFilters equipment by a specific client location.
modifiedDtdatetimeNoReturns only equipment modified on or after the specified date.
pageNointNoPage number for paginated results. Defaults to page 1.

Request Example

GET /Equipment?locationId=xxxx-xxxx&modifiedDt=2025-06-01T00:00:00&pageNo=1

GET /Equipment/{EquipmentGuid}

Returns a detailed JSON document for a specific equipment item.

GET /Equipment/Search/Barcode/{barcode}

Returns an equipment item matching the supplied barcode.

PUT /Equipment

Creates an equipment record from a JSON body. Refer to the Object Definitions article for the full field list.

PATCH /Equipment/{id}

Updates an equipment record. Supports updating fields such as location, clientReference, and EquipmentDetails.

EquipmentDetails is an array of detail attribute values. Each item requires an equipmentDetailId and value.

Request Example

[
  {
    "path": "clientReference",
    "value": "REF-001"
  },
  {
    "path": "EquipmentDetails",
    "value": [
      {
        "equipmentDetailId": "xxxx-xxxx-xxxx-xxxx",
        "value": "Updated Value"
      }
    ]
  }
]

Equipment Types

GET /EquipmentTypes

Returns a JSON collection of equipment types.

Query Parameters

NameTypeRequiredDescription
modifiedDtdatetimeNoReturns only equipment types modified on or after the specified date.

Request Example

GET /EquipmentTypes?modifiedDt=2025-06-01T00:00:00

GET /EquipmentTypes/{id}

Returns a detailed JSON document for a specific equipment type, including its attributes.


Inspections

GET /Inspections

Description:

Returns a JSON collection of inspections. modifiedDt is required to prevent full-table scans. Returns a max of 200 items per page. Response includes X-Total-Count and X-Total-Pages headers.

Query Parameters

NameTypeRequiredDescription
modifiedDtdatetimeYesReturns only inspections modified on or after the specified date.
pageNointNoPage number for paginated results. Defaults to page 1.

Request Example

GET /Inspections?modifiedDt=2025-06-01T00:00:00&pageNo=1

GET /Inspections/{inspectionGuid}

Description:

Retrieves the details of a specific inspection using its unique identifier (inspectionGuid).

Parameters

NameTypeRequiredDescription
inspectionGuidGUIDYesThe unique identifier of the inspection you want to retrieve.

Request Example

GET https://api4.coreinspection.com/Inspections/6418a8a6-d68f-41ff-aa62-b2d9dc522767

PUT /Inspections

Description:

Creates an inspection record from a JSON body.

Request Body

FieldTypeDescription
inspectionTemplateIdintRequired. The inspection template to use.
passedbooleanWhether the inspection passed.
StatusLookupGuidGUIDStatus lookup identifier.
ImportUniqueIdstringYour externally supplied unique ID. If a match exists, the record is updated instead of created.
inspectionComponentResultsarrayA list of component results. Each item supports section, description, and value. Optional section2 and description2 fields support secondary language.

PATCH /Inspections/{inspectionGuid}

Description

Updates an existing inspection record by applying changes to specific fields, such as DateCreated, Passed, Failed, Notes, and component results.

Parameters

NameTypeRequiredDescription
inspectionGuidGUIDYesUnique identifier of the inspection to update.

Request Body

The request body is an array of objects where each object specifies a field to update using a path and its corresponding value.

FieldTypeDescription
pathstringThe name of the field to update (e.g., DateCreated, Passed). Refer to the Inspection API object definitions for details.
valuestring / boolean / arrayThe new value to assign.
InspectionComponentResultsarrayA list of component result objects. Each requires an InspectionComponentResultId and value. Optional value2 supports secondary language.

Request Example

[
  {
    "path": "DateCreated",
    "value": "2025-09-20T00:00:00"
  },
  {
    "path": "Passed",
    "value": null
  },
  {
    "path": "Failed",
    "value": true
  },
  {
    "path": "Missed",
    "value": null
  },
  {
    "path": "Notes",
    "value": "Updated inspection notes"
  },
  {
    "path": "InspectionComponentResults",
    "value": [
      {
        "InspectionComponentResultId": "8ed66b61-41d7-492d-abab-5ec6b2c8d1d1",
        "value": "Test",
        "value2": "Test-fr"
      },
      {
        "InspectionComponentResultId": "b8622c4d-0e44-4464-9c3f-00edc126f7d0",
        "value": "Yes"
      }
    ]
  }
]

Jobs

GET /Jobs

Returns a short JSON definition in a collection containing all jobs matching the supplied filters.

Query Parameters

NameTypeRequiredDescription
statusIdintNoFilter by job status.
substatusIdintNoFilter by job sub-status.
branchidstringNoFilter by branch.
techIdGUIDNoFilter by assigned technician.
dateFromdatetimeNoFilter by job start date (from).
dateTodatetimeNoFilter by job start date (to). Defaults to 30 days from dateFrom if not specified.
dateCompletedFromdatetimeNoFilter by completion date (from).
dateCompletedTodatetimeNoFilter by completion date (to).
dateApprovedFromdatetimeNoFilter by approval date (from).
dateApprovedTodatetimeNoFilter by approval date (to).
modifiedDtdatetimeNoReturns only jobs modified after the specified date.
pageNointNoPage number for paginated results.

Limits

  • There is a maximum date range of 3 months for dateFrom/dateTo queries.
  • The query returns a max of 200 items per page.

Typical Scenarios

  • Get all completed jobs in Jan: /Jobs?statusid=5&branchid=123&datefrom=01/Jan/2022&dateto=31/Jan/2022
  • Get all active jobs: /Jobs?statusid=2&datefrom=01/Jan/2022&dateto=31/Mar/2022
  • Get recently modified jobs: /Jobs?modifiedDt=2025-06-01T00:00:00

GET /Jobs/{id}

Returns a specific detailed JSON document containing all fields. The {id} is the jobGuid (the Core system generated GUID).

GET /Jobs/{id}/inspections

Returns a JSON collection of inspections associated with a specific job.

GET /Jobs/{id}/parts

Returns a JSON collection of parts associated with a specific job.

GET /Jobs/{id}/servicerecords

Returns a JSON collection of service records associated with a specific job.


PUT /Jobs

Creates a job record from a JSON body.

Key Fields

FieldTypeDescription
clientidGUIDRequired. Can also use client_importUniqueId.
clientLocationIdGUIDRequired. Can also use clientLocation_importUniqueId.
startTimedatetimeRequired.
branchGuidGUIDOptional.

PATCH /Jobs/{id}

Updates a job record via a JSON patch document.

Job Workers

Job workers are assigned by supplying a list of worker emails. Any previous workers allocated are removed from the job. If any of the technicians cannot be found (matching their email) an error is thrown.

"jobWorkers": [
  { "WorkerEmail": "worker1@domain.com" },
  { "WorkerEmail": "worker2@domain.com" }
]

Reports

GET /Reports

Description

Retrieves dynamic reports, filtered by report name, and optionally branch and date (month/year), with support for pagination.

Query Parameters

NameTypeRequiredDescription
reportNamestringYesThe report type to retrieve. Example: "All Inspections by Month".
branchIdintNoFilters the report by branch. -1 denotes all branches.
monthintNoFilters the report by month (1–12).
yearintNoFilters the report by year (e.g., 2025).
pageNumberintNoThe page of results to retrieve.
pageSizeintNoNumber of records per page.

Request Example

GET https://api4.coreinspection.com/Reports?reportName=All Inspections by Month&month=9&year=2025&pageSize=50&pageNumber=1

Branches

GET /Branches

Returns a JSON collection of branches.

Query Parameters

NameTypeRequiredDescription
modifiedDtdatetimeNoReturns only branches modified on or after the specified date.

Request Example

GET /Branches?modifiedDt=2025-06-01T00:00:00

GET /Branches/{id}

Returns a detailed JSON document for a specific branch.

PATCH /Branches/{id}

Updates a branch record via a JSON patch document.


Parts

GET /Parts

Returns a JSON collection of parts.

Query Parameters

NameTypeRequiredDescription
modifiedDtdatetimeNoReturns only parts modified on or after the specified date.

Request Example

GET /Parts?modifiedDt=2025-06-01T00:00:00

GET /Parts/{id}

Returns a detailed JSON document for a specific part.

PUT /Parts

Creates a part record from a JSON body.

PATCH /Parts/{id}

Updates a part record via a JSON patch document. Supports updating fields such as description and code.


Users

GET /Users

Returns a JSON collection of users.

Query Parameters

NameTypeRequiredDescription
ActiveOnlybooleanNoWhen true, returns only active users.

GET /Users/{id}

Returns a detailed JSON document for a specific user.

PATCH /Users/{id}

Updates a user record via a JSON patch document.


Service Records

GET /ServiceRecords

Returns a JSON collection of service records. modifiedDt is required to prevent full-table scans. Returns a max of 200 items per page. Response includes X-Total-Count and X-Total-Pages headers.

Query Parameters

NameTypeRequiredDescription
modifiedDtdatetimeYesReturns only service records modified on or after the specified date.
pageNointNoPage number for paginated results. Defaults to page 1.

Request Example

GET /ServiceRecords?modifiedDt=2025-06-01T00:00:00&pageNo=1

GET /ServiceRecords/{id}

Returns a detailed JSON document for a specific service record.


Customer Equipment

GET /CustomerEquipment

Customer login only. Returns a filtered list of equipment for the authenticated customer.

Query Parameters

NameTypeRequiredDescription
clientIdGUIDNoFilter by client.
ModifiedDatedatetimeNoReturns only equipment modified after the specified date.

Lookup Endpoints

The following endpoints return reference data used across the system.

EndpointDescription
GET /JobStatusesReturns a list of job statuses and their IDs.
GET /InspectionIntervalsReturns a list of inspection intervals.
GET /EquipmentTypesReturns a list of equipment types.

HeartBeat

GET /HeartBeat

A simple connectivity test endpoint. Returns a 200 OK response confirming the API is reachable and your credentials are valid.