Documentation

Infrastructure Control (ICP) · Reference

Developer API & API keys

Integrate with ICP over a REST API authenticated by scoped API keys — list and create tickets, list work orders, sites, and assets.

ICP has a public REST API so you can connect it to your own systems — a PSA, a dashboard, or an inbound integration that files tickets from another tool. It exposes the same infrastructure control platform that the web app and field app run on.

Authentication

Every request is authenticated with an API key as a bearer token:

Authorization: Bearer icp_...

Every call runs inside the key's organization with the key's assigned permissions.

curl https://icp.intsignal.com/api/v1/tickets \
  -H "Authorization: Bearer $ICP_API_KEY"

Resources (v1)

Method & pathDescription
GET /ticketsList recent tickets
POST /ticketsCreate a ticket (recorded with source = API)
GET /work-ordersList work orders
GET /sitesList sites
GET /assetsList assets

List endpoints accept a limit (default 50, max 200). A machine-readable OpenAPI document is published at /openapi.json describing the endpoints and how to authenticate — point your client or code generator at it.

API keys

Create keys in Settings (access admins only):

Name the key and scope it

Give the key a name and choose the subset of permissions it should have. A key can never be granted a permission its creator doesn't hold.

Copy the secret once

The full secret is shown exactly once, at creation. Store it safely — afterward only a short prefix, the last-used time, and status are visible.

Revoke if needed

Revoke a key at any time. A lost key is rotated (revoke + create a new one), not recovered.

Tip

Scope each key to just what the integration needs, and use a separate key per integration so you can revoke one without breaking the others. To react to events instead of polling, use webhooks.

Need a hand with Infrastructure Control (ICP)?Talk to our team →