Coinbax Core API

Integrations

Third-party integrations

View as Markdown

List workspace integrations

GET/workspaces/{id}/integrationsBearer token

Get all integrations enabled for a workspace. **Requires:** Workspace access

Path parameters

  • idstring (uuid)required

    Workspace ID

Responses

200Integrations retrieved successfully
  • SuccessResponse
    • successenumrequiredtrue

      Always true for successful responses

    • dataobjectrequired

      Response data (structure varies by endpoint)

    • metaMetarequired
      • timestampstring (date-time)required

        Response timestamp

      • requestIdstringrequired

        Unique request identifier for debugging

      • paginationPagination
        • pageintegerrequired

          Current page number (1-indexed)

        • limitintegerrequired

          Items per page

        • totalintegerrequired

          Total number of items

        • totalPagesintegerrequired

          Total number of pages

  • object
    • dataarray of WorkspaceIntegration
      array of WorkspaceIntegration
      • idstring (uuid)
      • workspaceIdstring (uuid)
      • integrationIdstring (uuid)
      • statusenum"active" · "inactive" · "error"
      • errorMessagestring
      • lastValidatedAtstring (date-time)
      • metadataobject
        object
      • createdAtstring (date-time)
      • updatedAtstring (date-time)
{
  "success": true,
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000",
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 150,
      "totalPages": 8
    }
  },
  "data": [
    {
      "id": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
      "workspaceId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
      "integrationId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
      "status": "active",
      "errorMessage": "string",
      "lastValidatedAt": "2026-01-15T12:00:00.000Z",
      "metadata": {},
      "createdAt": "2026-01-15T12:00:00.000Z",
      "updatedAt": "2026-01-15T12:00:00.000Z"
    }
  ]
}
401Unauthorized - missing or invalid authentication
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required",
    "statusCode": 401
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
404Resource not found
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "NOT_FOUND",
    "message": "Resource not found",
    "statusCode": 404
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
500Internal server error
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "An unexpected error occurred",
    "statusCode": 500
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
curl https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations', {
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

Enable integration

POST/workspaces/{id}/integrationsBearer token

Enable an integration for a workspace. **Requires:** Workspace access

Path parameters

  • idstring (uuid)required

    Workspace ID

Request body

  • integrationIdstring (uuid)required

    ID of the integration to enable

  • configobjectrequired

    Integration-specific configuration (API keys, etc.)

    object

    Integration-specific configuration (API keys, etc.)

Responses

200Integration enabled successfully
  • SuccessResponse
    • successenumrequiredtrue

      Always true for successful responses

    • dataobjectrequired

      Response data (structure varies by endpoint)

    • metaMetarequired
      • timestampstring (date-time)required

        Response timestamp

      • requestIdstringrequired

        Unique request identifier for debugging

      • paginationPagination
        • pageintegerrequired

          Current page number (1-indexed)

        • limitintegerrequired

          Items per page

        • totalintegerrequired

          Total number of items

        • totalPagesintegerrequired

          Total number of pages

  • object
    • dataWorkspaceIntegration
      • idstring (uuid)
      • workspaceIdstring (uuid)
      • integrationIdstring (uuid)
      • statusenum"active" · "inactive" · "error"
      • errorMessagestring
      • lastValidatedAtstring (date-time)
      • metadataobject
        object
      • createdAtstring (date-time)
      • updatedAtstring (date-time)
{
  "success": true,
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000",
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 150,
      "totalPages": 8
    }
  },
  "data": {
    "id": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
    "workspaceId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
    "integrationId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
    "status": "active",
    "errorMessage": "string",
    "lastValidatedAt": "2026-01-15T12:00:00.000Z",
    "metadata": {},
    "createdAt": "2026-01-15T12:00:00.000Z",
    "updatedAt": "2026-01-15T12:00:00.000Z"
  }
}
400Bad request - validation error
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Request validation failed",
    "statusCode": 400,
    "details": {
      "email": "Invalid email format"
    }
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
401Unauthorized - missing or invalid authentication
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required",
    "statusCode": 401
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
404Resource not found
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "NOT_FOUND",
    "message": "Resource not found",
    "statusCode": 404
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
500Internal server error
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "An unexpected error occurred",
    "statusCode": 500
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
curl -X POST https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "integrationId": "550e8400-e29b-41d4-a716-446655440000",
  "config": {
    "apiKey": "integration_api_key"
  }
}'
const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "integrationId": "550e8400-e29b-41d4-a716-446655440000",
    "config": {
      "apiKey": "integration_api_key"
    }
  }),
});
const result = await response.json();

Get integration details

GET/workspaces/{id}/integrations/{integrationId}Bearer token

Path parameters

  • idstring (uuid)required
  • integrationIdstring (uuid)required

Responses

200Integration retrieved

Response follows the unified success / data / meta / error envelope.

curl https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/<integrationId> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/<integrationId>', {
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

Remove integration

DELETE/workspaces/{id}/integrations/{integrationId}Bearer token

Path parameters

  • idstring (uuid)required
  • integrationIdstring (uuid)required

Responses

204Removed

Response follows the unified success / data / meta / error envelope.

curl -X DELETE https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/<integrationId> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/<integrationId>', {
  method: 'DELETE',
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

Update integration

PATCH/workspaces/{id}/integrations/{integrationId}Bearer token

Path parameters

  • idstring (uuid)required
  • integrationIdstring (uuid)required

Responses

200Updated

Response follows the unified success / data / meta / error envelope.

curl -X PATCH https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/<integrationId> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/<integrationId>', {
  method: 'PATCH',
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

Disable integration

POST/workspaces/{id}/integrations/{integrationId}/disableBearer token

Path parameters

  • idstring (uuid)required
  • integrationIdstring (uuid)required

Responses

200Disabled

Response follows the unified success / data / meta / error envelope.

curl -X POST https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/<integrationId>/disable \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/<integrationId>/disable', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

Get integration status

GET/workspaces/{id}/integrations/{integrationId}/statusBearer token

Path parameters

  • idstring (uuid)required
  • integrationIdstring (uuid)required

Responses

200Status retrieved

Response follows the unified success / data / meta / error envelope.

curl https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/<integrationId>/status \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/<integrationId>/status', {
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

Validate integration config

POST/workspaces/{id}/integrations/validateBearer token

Path parameters

  • idstring (uuid)required

Responses

200Validated

Response follows the unified success / data / meta / error envelope.

curl -X POST https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/validate \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/validate', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

Enable integration with config

POST/workspaces/{id}/integrations/with-configBearer token

Path parameters

  • idstring (uuid)required

Responses

201Enabled

Response follows the unified success / data / meta / error envelope.

curl -X POST https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/with-config \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces/<id>/integrations/with-config', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();