For the complete documentation index, see llms.txt. This page is also available as Markdown.

Integrations

Create, read and archive integrations. An integration is referenced by its token, never its _id.

Create an integration

post

Create a new integration for a team. You can find more details on /integrations/available route. Learn more about integrations here.

Authorizations
x-api-keystringRequired

Your organisation's API key. Create one in the Spike dashboard under Settings > API. Sent on every request as the x-api-key header.

x-team-idstringRequired

The target team's _id — a 24-character hex ObjectId such as 5f2b1c4d9e8a7b6c5d4e3f21. This is NOT the short uid slug (e.g. eng) shown in dashboard URLs; passing the uid will not resolve a team. Read the _id from GET /teams/get-all-teams or GET /teams/get-my-teams.

REQUIRED for: GET /on-calls (API-key callers get 400 without it), POST /on-calls, and every team-scoped read that declares it — the /incidents/* and /services/* listings, /escalations, /automation/rules and the integration endpoints.

OPTIONAL for: the incident action endpoints (acknowledge, resolve, escalate, unacknowledge), which derive the organisation from the API key itself; PUT /on-calls/{oncallId} and the on-call layer endpoints, which fall back to the organisation's default team; and org-wide reads such as GET /orgs/info and GET /users, which ignore it.

When supplied it must name a team inside the API key's organisation. A team from another organisation is rejected with 403.

Header parameters
x-api-keystringRequired

Your API key. Find it in your Spike dashboard under Settings > API.

x-team-idstringRequired

The team's _id — a 24-character hex ObjectId, NOT the short uid slug. Read it from GET /teams/get-all-teams.

Example: 5f2b1c4d9e8a7b6c5d4e3f21
Body
customNamestringOptional
descstringOptional
slugstringOptional
escalationstringOptional
servicestringOptional
repeatEscalationbooleanOptional
ackTimeoutintegerOptional
Responses
200

Successful response

application/json
_idstringOptional
namestringOptional
slugstringOptional
tokenstringOptional

The integration reference used by POST /incidents/create (as integrationWebhook) and by GET|DELETE /integrations/{token}. Never use the _id.

webhookUrlstringOptional
servicestringOptional
escalationstringOptional
teamsstring[]Optional
createdAtstring · date-timeOptional
post/integrations/create
POST /integrations/create HTTP/1.1
Host: api.spike.sh
x-api-key: text
x-team-id: text
Content-Type: application/json
Accept: */*
Content-Length: 135

{
  "customName": "string",
  "desc": "string",
  "slug": "string",
  "escalation": "string",
  "service": "string",
  "repeatEscalation": true,
  "ackTimeout": 0
}
{
  "_id": "62a1b2c3d4e5f60718293a4b",
  "name": "AWS CloudWatch",
  "slug": "aws",
  "token": "a1b2c3d4e5f6a7b8c9d0",
  "webhookUrl": "https://hooks.spike.sh/a1b2c3d4e5f6a7b8c9d0/push-events",
  "service": "61d2c3b4a5968778695a4b3c",
  "escalation": "63c9a1b2d4e5f60718293a4b",
  "teams": [
    "5f2b1c4d9e8a7b6c5d4e3f21"
  ],
  "createdAt": "2026-03-13T09:41:00.000Z"
}

Fetch an integration

get

Get Details of a integration

Authorizations
x-api-keystringRequired

Your organisation's API key. Create one in the Spike dashboard under Settings > API. Sent on every request as the x-api-key header.

x-team-idstringRequired

The target team's _id — a 24-character hex ObjectId such as 5f2b1c4d9e8a7b6c5d4e3f21. This is NOT the short uid slug (e.g. eng) shown in dashboard URLs; passing the uid will not resolve a team. Read the _id from GET /teams/get-all-teams or GET /teams/get-my-teams.

REQUIRED for: GET /on-calls (API-key callers get 400 without it), POST /on-calls, and every team-scoped read that declares it — the /incidents/* and /services/* listings, /escalations, /automation/rules and the integration endpoints.

OPTIONAL for: the incident action endpoints (acknowledge, resolve, escalate, unacknowledge), which derive the organisation from the API key itself; PUT /on-calls/{oncallId} and the on-call layer endpoints, which fall back to the organisation's default team; and org-wide reads such as GET /orgs/info and GET /users, which ignore it.

When supplied it must name a team inside the API key's organisation. A team from another organisation is rejected with 403.

Path parameters
tokenstringRequired

token parameter

Header parameters
x-api-keystringRequired

Your API key. Find it in your Spike dashboard under Settings > API.

x-team-idstringRequired

The team's _id — a 24-character hex ObjectId, NOT the short uid slug. Read it from GET /teams/get-all-teams.

Example: 5f2b1c4d9e8a7b6c5d4e3f21
Responses
200

Successful response

application/json

Envelope. integration.webhookUrl is synthesised from the token on read.

totalIncidentsnumberOptional
totalOpenIncidentsnumberOptional
currentPagenumberOptional
perPagenumberOptional
totalnumberOptional
get/integrations/{token}
GET /integrations/{token} HTTP/1.1
Host: api.spike.sh
x-api-key: text
x-team-id: text
Accept: */*
{
  "integration": {
    "_id": "62a1b2c3d4e5f60718293a4b",
    "name": "AWS CloudWatch",
    "slug": "aws",
    "token": "a1b2c3d4e5f6a7b8c9d0",
    "webhookUrl": "https://hooks.spike.sh/a1b2c3d4e5f6a7b8c9d0/push-events",
    "service": "61d2c3b4a5968778695a4b3c",
    "escalation": "63c9a1b2d4e5f60718293a4b",
    "teams": [
      "5f2b1c4d9e8a7b6c5d4e3f21"
    ],
    "createdAt": "2026-03-13T09:41:00.000Z"
  },
  "incidents": [
    {
      "_id": "65a1f4c8e9b2d3a4f5c6b7a8",
      "counterId": "eng-116",
      "message": "High CPU on api-prod-3",
      "status": "NACK",
      "priority": "p1",
      "severity": "sev1",
      "counter": 116,
      "org": "5f72e289b17d1656e0115098",
      "teams": [
        "5f2b1c4d9e8a7b6c5d4e3f21"
      ],
      "integration": {
        "_id": "62a1b2c3d4e5f60718293a4b",
        "name": "AWS CloudWatch",
        "token": "a1b2c3d4e5f6a7b8c9d0"
      },
      "service": {
        "_id": "61d2c3b4a5968778695a4b3c",
        "name": "API",
        "counterId": 4
      },
      "escalation": {
        "_id": "63c9a1b2d4e5f60718293a4b",
        "name": "Engineering primary"
      },
      "responders": [],
      "createdAt": "2026-03-13T09:41:00.000Z",
      "NACK_at": "2026-03-13T09:41:00.000Z"
    }
  ],
  "totalIncidents": 116,
  "totalOpenIncidents": 3,
  "currentPage": 1,
  "perPage": 20,
  "total": 116
}

Archive an integration

delete

Archive an integration. Archive integrations will not be shown in the UI

Authorizations
x-api-keystringRequired

Your organisation's API key. Create one in the Spike dashboard under Settings > API. Sent on every request as the x-api-key header.

x-team-idstringRequired

The target team's _id — a 24-character hex ObjectId such as 5f2b1c4d9e8a7b6c5d4e3f21. This is NOT the short uid slug (e.g. eng) shown in dashboard URLs; passing the uid will not resolve a team. Read the _id from GET /teams/get-all-teams or GET /teams/get-my-teams.

REQUIRED for: GET /on-calls (API-key callers get 400 without it), POST /on-calls, and every team-scoped read that declares it — the /incidents/* and /services/* listings, /escalations, /automation/rules and the integration endpoints.

OPTIONAL for: the incident action endpoints (acknowledge, resolve, escalate, unacknowledge), which derive the organisation from the API key itself; PUT /on-calls/{oncallId} and the on-call layer endpoints, which fall back to the organisation's default team; and org-wide reads such as GET /orgs/info and GET /users, which ignore it.

When supplied it must name a team inside the API key's organisation. A team from another organisation is rejected with 403.

Path parameters
tokenstringRequired

token parameter

Header parameters
x-api-keystringRequired

Your API key. Find it in your Spike dashboard under Settings > API.

x-team-idstringRequired

The team's _id — a 24-character hex ObjectId, NOT the short uid slug. Read it from GET /teams/get-all-teams.

Example: 5f2b1c4d9e8a7b6c5d4e3f21
Responses
200

Successful response

application/json
integration_archivebooleanOptional
delete/integrations/{token}/archive
DELETE /integrations/{token}/archive HTTP/1.1
Host: api.spike.sh
x-api-key: text
x-team-id: text
Accept: */*
{
  "integration_archive": true
}

Fetch available integrations on Spike.sh

get

Gets a list of integrations available on Spike

Authorizations
x-api-keystringRequired

Your organisation's API key. Create one in the Spike dashboard under Settings > API. Sent on every request as the x-api-key header.

x-team-idstringRequired

The target team's _id — a 24-character hex ObjectId such as 5f2b1c4d9e8a7b6c5d4e3f21. This is NOT the short uid slug (e.g. eng) shown in dashboard URLs; passing the uid will not resolve a team. Read the _id from GET /teams/get-all-teams or GET /teams/get-my-teams.

REQUIRED for: GET /on-calls (API-key callers get 400 without it), POST /on-calls, and every team-scoped read that declares it — the /incidents/* and /services/* listings, /escalations, /automation/rules and the integration endpoints.

OPTIONAL for: the incident action endpoints (acknowledge, resolve, escalate, unacknowledge), which derive the organisation from the API key itself; PUT /on-calls/{oncallId} and the on-call layer endpoints, which fall back to the organisation's default team; and org-wide reads such as GET /orgs/info and GET /users, which ignore it.

When supplied it must name a team inside the API key's organisation. A team from another organisation is rejected with 403.

Header parameters
x-api-keystringRequired

Your API key. Find it in your Spike dashboard under Settings > API.

x-team-idstringRequired

The team's _id — a 24-character hex ObjectId, NOT the short uid slug. Read it from GET /teams/get-all-teams.

Example: 5f2b1c4d9e8a7b6c5d4e3f21
Responses
200

A bare JSON array of the integration types you can create.

application/json
namestringOptional
slugstringOptional
categorystringOptional
get/integrations/available
GET /integrations/available HTTP/1.1
Host: api.spike.sh
x-api-key: text
x-team-id: text
Accept: */*
[
  {
    "name": "AWS CloudWatch",
    "slug": "aws",
    "category": "Cloud"
  },
  {
    "name": "Datadog",
    "slug": "datadog",
    "category": "Monitoring"
  }
]

Fetch all your integrations

get

Get a list of all the integrations for a specific team.

Authorizations
x-api-keystringRequired

Your organisation's API key. Create one in the Spike dashboard under Settings > API. Sent on every request as the x-api-key header.

x-team-idstringRequired

The target team's _id — a 24-character hex ObjectId such as 5f2b1c4d9e8a7b6c5d4e3f21. This is NOT the short uid slug (e.g. eng) shown in dashboard URLs; passing the uid will not resolve a team. Read the _id from GET /teams/get-all-teams or GET /teams/get-my-teams.

REQUIRED for: GET /on-calls (API-key callers get 400 without it), POST /on-calls, and every team-scoped read that declares it — the /incidents/* and /services/* listings, /escalations, /automation/rules and the integration endpoints.

OPTIONAL for: the incident action endpoints (acknowledge, resolve, escalate, unacknowledge), which derive the organisation from the API key itself; PUT /on-calls/{oncallId} and the on-call layer endpoints, which fall back to the organisation's default team; and org-wide reads such as GET /orgs/info and GET /users, which ignore it.

When supplied it must name a team inside the API key's organisation. A team from another organisation is rejected with 403.

Header parameters
x-api-keystringRequired

Your API key. Find it in your Spike dashboard under Settings > API.

x-team-idstringRequired

The team's _id — a 24-character hex ObjectId, NOT the short uid slug. Read it from GET /teams/get-all-teams.

Example: 5f2b1c4d9e8a7b6c5d4e3f21
Responses
200

Successful response

application/json
totalIntegrationsnumberOptional
currentPagenumberOptional
perPagenumberOptional
totalnumberOptional
get/integrations
GET /integrations HTTP/1.1
Host: api.spike.sh
x-api-key: text
x-team-id: text
Accept: */*
{
  "integrations": [
    {
      "_id": "62a1b2c3d4e5f60718293a4b",
      "name": "AWS CloudWatch",
      "slug": "aws",
      "token": "a1b2c3d4e5f6a7b8c9d0",
      "webhookUrl": "https://hooks.spike.sh/a1b2c3d4e5f6a7b8c9d0/push-events",
      "service": "61d2c3b4a5968778695a4b3c",
      "escalation": "63c9a1b2d4e5f60718293a4b",
      "teams": [
        "5f2b1c4d9e8a7b6c5d4e3f21"
      ],
      "createdAt": "2026-03-13T09:41:00.000Z"
    }
  ],
  "totalIntegrations": 1,
  "currentPage": 1,
  "perPage": 20,
  "total": 1
}

Last updated

Was this helpful?