Integrations
Provider credentials attached to a project.
Base path /api/v1/integrations on https://ionwarp.com. Authenticate with Authorization: Bearer $DASH_API_KEY and name the project with the Project-ID header. Writes are validated in strict mode; an operation this resource does not declare answers 405 operation_not_supported.
List integrations
GET /api/v1/integrations
curl "https://ionwarp.com/api/v1/integrations?integration_type=github" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_acme"Which integrations are connected on this project?data_query {
"collection": "integrations",
"where": {
"integration_type": "github"
}
}Returns a paginated list of integration objects, newest first.
{
"object": "list",
"data": [
{
"object": "integration",
"id": "obj_123",
"integration_type": "github",
"status": "active",
"scope": "project",
"app_name": "app name",
"masked_preview": "masked preview",
"linked": true,
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
integration_type | string | filter | Provider app slug to connect. One of github. |
status | string | filter | Whether the credential currently authenticates. One of active, error, revoked. |
sort | string | sort | One of created_at; prefix with - to reverse. |
limit | number | page | Rows to return, 1–100. Defaults to 20. |
cursor | string | page | next_cursor from the previous page. |
Retrieve a integration
GET /api/v1/integrations/learning-tests-run-under-bun
curl "https://ionwarp.com/api/v1/integrations/learning-tests-run-under-bun" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_acme"Open the integration {id}data_get {
"collection": "integrations",
"object_id": "learning-tests-run-under-bun"
}Returns the integration object.
{
"object": "integration",
"id": "obj_123",
"integration_type": "github",
"status": "active",
"scope": "project",
"app_name": "app name",
"masked_preview": "masked preview",
"linked": true,
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
id | string | path | The integration's id or slug. |
Create a integration
POST /api/v1/integrations
curl -X POST "https://ionwarp.com/api/v1/integrations" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_acme" \
-H "Content-Type: application/json" \
-d '{"integration_type":"github","credentials":{"api_key":"re_..."}}'Connect github for this projectdata_set {
"collection": "integrations",
"object_id": "learning-tests-run-under-bun",
"data": {
"integration_type": "github",
"credentials": {
"api_key": "re_..."
}
}
}Returns the integration object.
{
"object": "integration",
"id": "obj_123",
"integration_type": "github",
"status": "active",
"scope": "project",
"app_name": "app name",
"masked_preview": "masked preview",
"linked": true,
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
integration_type | string | yes | Provider app slug to connect. One of github. |
credentials | object | yes | Provider credential material (e.g. \{"api_key": "..."\}). Write-only: accepted on create, never returned on any read. Write-only — never returned. |
status | string | no | Whether the credential currently authenticates. One of active, error, revoked. |
scope | string | no | Whether the credential belongs to this project or the whole workspace. One of project, workspace. |
app_name | string | no | Human-readable provider name. |
masked_preview | string | no | Non-reversible preview of the stored secret, so an operator can tell WHICH credential is set without it ever leaving the service. |
linked | boolean | no | Whether this credential is attached to the resolved project right now. |
Delete a integration
DELETE /api/v1/integrations/learning-tests-run-under-bun
curl -X DELETE "https://ionwarp.com/api/v1/integrations/learning-tests-run-under-bun" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_acme"Delete the integration {id}data_delete {
"collection": "integrations",
"object_id": "learning-tests-run-under-bun"
}Returns the deleted integration object with deleted: true.
{
"object": "integration",
"id": "obj_123",
"deleted": true
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
id | string | path | The integration's id or slug. |
What comes back (read-only)
Every integration carries the envelope below. This resource declares no server-owned fields beyond it.
| Field | Type | Description |
|---|---|---|
object | string | Always integration. |
id | string | Stable object id. Also accepted in place of slug on any path. |
slug | string | URL-safe name, unique within the collection. |
created_at | string | ISO-8601 timestamp of the first write. |
updated_at | string | ISO-8601 timestamp of the most recent write. The cursor sorts on this. |
Errors
Failures use { error: { type, code, message, param } }. The full code table is generated at Error Codes.