Integrations
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Filter to integrations with this enabled flag. None matches both.
Substring match against name, display_name, or id (case-insensitive).
Sort axes. Repeated query param stacks left-to-right. Each entry is +field or -field
(direction prefix REQUIRED). Allowed fields: name, created_at, updated_at.
Default: -created_at. id is always appended as the final tiebreaker.
[]The maximum number of integrations to return.
50Opaque token from a prior response. Pass back unchanged with the same sort_by to advance.
Successful Response
Whether there are more integrations to retrieve.
Opaque token for the next page. Null when there are no more results.
Missing or invalid API key.
Insufficient permissions.
Query parameter failed validation or continuation_token is unparseable.
GET /v1/{workspace_id}/integrations HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"display_name": "text",
"enabled": true,
"managed": false,
"approval_policy": "none",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"kind": "rest",
"base_url": "text",
"auth": {
"type": "text",
"header_name": "text"
},
"endpoint_count": 1
}
],
"has_more": true,
"continuation_token": null
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Create body — REST only.
Slug-like identifier, lowercase alphanumeric + hyphens/underscores. Immutable post-create.
^[a-z0-9][a-z0-9_-]*[a-z0-9]$Human-readable name.
Base URL for the upstream REST API.
Auth configuration. When set, secret_value is required.
Inline secret literal — auto-provisioned to the per-integration SSM path.
Required when auth is set. Bounded to fit a PEM RSA-4096 key + cert chain.
Whether the integration is active on create.
trueWhether this is a system-managed integration protected from workspace CRUD.
falseHuman-in-the-loop approval gate. none (default) = no approval
required; writes = approval required for write-classified endpoints;
all = approval required for every endpoint.
nonePossible values: Successful Response
REST variant — base URL, auth config, endpoint count.
Integration ID.
Workspace ID.
Slug-like identifier, immutable post-create.
Human-readable name.
Whether the integration is active.
Whether the integration is system-managed and protected from workspace CRUD.
falseHuman-in-the-loop approval gate. none = no approval required;
writes = approval required for write-classified endpoints;
all = approval required for every endpoint.
nonePossible values: When the integration was created.
When the integration was last updated.
Discriminator.
restBase URL for REST integrations.
Authentication configuration (lib TypedDict union).
Number of configured endpoints. Fetch the full list via GET /endpoints.
Missing or invalid API key.
Insufficient permissions.
Workspace not found.
Integration name already taken in this workspace.
Invalid request body.
POST /v1/{workspace_id}/integrations HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 201
{
"name": "text",
"display_name": "text",
"base_url": "https://example.com",
"auth": {
"type": "static_header",
"header_name": "text"
},
"secret_value": "text",
"enabled": true,
"managed": false,
"approval_policy": "none"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"display_name": "text",
"enabled": true,
"managed": false,
"approval_policy": "none",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"kind": "rest",
"base_url": "text",
"auth": {
"type": "text",
"header_name": "text"
},
"endpoint_count": 1
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Resolution outcome for a pending integration-write approval.
Missing or invalid API key.
Insufficient permissions.
Conversation not found in this workspace.
Validation Error
Rate limited.
POST /v1/{workspace_id}/integrations/approvals/{conversation_id}/approve HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"status": "granted",
"conversation_id": "text"
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Reject body — optional free-text reason surfaced to the agent.
Successful Response
Resolution outcome for a pending integration-write approval.
Missing or invalid API key.
Insufficient permissions.
Conversation not found in this workspace.
Validation Error
Rate limited.
POST /v1/{workspace_id}/integrations/approvals/{conversation_id}/reject HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 17
{
"reason": "text"
}{
"status": "granted",
"conversation_id": "text"
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
REST variant — base URL, auth config, endpoint count.
Integration ID.
Workspace ID.
Slug-like identifier, immutable post-create.
Human-readable name.
Whether the integration is active.
Whether the integration is system-managed and protected from workspace CRUD.
falseHuman-in-the-loop approval gate. none = no approval required;
writes = approval required for write-classified endpoints;
all = approval required for every endpoint.
nonePossible values: When the integration was created.
When the integration was last updated.
Discriminator.
restBase URL for REST integrations.
Authentication configuration (lib TypedDict union).
Number of configured endpoints. Fetch the full list via GET /endpoints.
Missing or invalid API key.
Insufficient permissions.
Integration not found.
Validation Error
GET /v1/{workspace_id}/integrations/{integration_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"display_name": "text",
"enabled": true,
"managed": false,
"approval_policy": "none",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"kind": "rest",
"base_url": "text",
"auth": {
"type": "text",
"header_name": "text"
},
"endpoint_count": 1
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
No content
Missing or invalid API key.
Insufficient permissions.
Integration not found.
Integration is managed or referenced by one or more skills.
Validation Error
DELETE /v1/{workspace_id}/integrations/{integration_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
PATCH body — each field is sentinel-defaulted; absent ≠ explicit-null.
New display name.
New base URL.
New auth config. Absent ⇒ untouched; null ⇒ clear; value ⇒ replace.
Independent of secret_value — updating auth alone reuses the
existing SSM secret.
Rotate the per-integration SSM secret. Absent ⇒ existing secret
untouched; value ⇒ overwrite SSM at the canonical path. Explicit
null is rejected at validation — there is no "clear the secret"
operation (clearing auth makes the secret unreachable; that's the
intended clear path).
Toggle the integration on/off.
Mark/unmark the integration as system-managed. Requires platform:admin scope.
Change the human-in-the-loop approval gate. none = no approval
required; writes = approval required for write-classified endpoints;
all = approval required for every endpoint. Absent ⇒ untouched.
Successful Response
REST variant — base URL, auth config, endpoint count.
Integration ID.
Workspace ID.
Slug-like identifier, immutable post-create.
Human-readable name.
Whether the integration is active.
Whether the integration is system-managed and protected from workspace CRUD.
falseHuman-in-the-loop approval gate. none = no approval required;
writes = approval required for write-classified endpoints;
all = approval required for every endpoint.
nonePossible values: When the integration was created.
When the integration was last updated.
Discriminator.
restBase URL for REST integrations.
Authentication configuration (lib TypedDict union).
Number of configured endpoints. Fetch the full list via GET /endpoints.
Missing or invalid API key.
Insufficient permissions.
Integration not found.
Managed integration mutation blocked.
Invalid request body, NOT NULL field set to null, or no fields to update.
PATCH /v1/{workspace_id}/integrations/{integration_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 186
{
"display_name": "text",
"base_url": "https://example.com",
"auth": {
"type": "static_header",
"header_name": "text"
},
"secret_value": "text",
"enabled": true,
"managed": true,
"approval_policy": "none"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"display_name": "text",
"enabled": true,
"managed": false,
"approval_policy": "none",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"kind": "rest",
"base_url": "text",
"auth": {
"type": "text",
"header_name": "text"
},
"endpoint_count": 1
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Substring match against name or description (case-insensitive).
Sort axes. Repeated query param stacks left-to-right. Each entry is +field or -field
(direction prefix REQUIRED). Allowed fields: name, created_at, updated_at.
Default: -created_at. id is always appended as the final tiebreaker.
[]The maximum number of endpoints to return.
50Opaque token from a prior response. Pass back unchanged with the same sort_by to advance.
Successful Response
Whether there are more endpoints to retrieve.
Opaque token for the next page. Null when there are no more results.
Missing or invalid API key.
Insufficient permissions.
Query parameter failed validation or continuation_token is unparseable.
GET /v1/{workspace_id}/integrations/{integration_id}/endpoints HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"method": "GET",
"path": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"headers": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"static_body_fields": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"body_format": "json",
"response_template": "text",
"client_output": {
"type": "text",
"schema_version": "text",
"json_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"max_bytes": 262144,
"external_user_enabled": false
},
"max_response_length": 0,
"timeout_seconds": 30,
"max_retries": 2,
"retry_on_status": [
1
]
}
],
"has_more": true,
"continuation_token": null
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Add a new endpoint to a REST integration (V186 flat shape).
Slug-like identifier, immutable post-create.
^[a-z0-9][a-z0-9_-]*[a-z0-9]$LLM-facing description shown in the tool definition.
HTTP method.
POSTPossible values: URL path appended to the integration's base_url. Must NOT start with / — the path is
joined onto the base URL (which already carries the leading slash). Supports {param} substitution.
^[^/]Outbound body encoding for write methods.
jsonPossible values: Jinja template (sandboxed, StrictUndefined) rendered against the parsed JSON response.
Truncate the rendered string to this many chars. 0 = no truncation.
0Per-request timeout.
30Retry attempts on transient failures.
2HTTP status codes that trigger a retry.
Successful Response
Per-endpoint response (V186 flat shape).
Endpoint ID — stable, used in subsequent GET/PATCH/DELETE/test URLs.
Slug-like identifier. Unique per integration; immutable post-create.
LLM-facing description.
HTTP method.
URL path appended to the integration's base_url.
Outbound body encoding.
jsonPossible values: Jinja template rendered against the parsed JSON response.
Truncate the final rendered string to this many chars.
0Per-request timeout.
30Retry attempts on transient failures.
2HTTP status codes that trigger a retry.
Missing or invalid API key.
Insufficient permissions.
Integration not found.
Integration is managed or endpoint name already exists.
Invalid request body.
POST /v1/{workspace_id}/integrations/{integration_id}/endpoints HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 510
{
"name": "text",
"description": "text",
"method": "POST",
"path": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"headers": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"static_body_fields": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"body_format": "json",
"response_template": "text",
"client_output": {
"type": "text",
"schema_version": "text",
"json_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"max_bytes": 262144,
"external_user_enabled": false
},
"max_response_length": 0,
"timeout_seconds": 30,
"max_retries": 2,
"retry_on_status": [
1
]
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"method": "GET",
"path": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"headers": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"static_body_fields": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"body_format": "json",
"response_template": "text",
"client_output": {
"type": "text",
"schema_version": "text",
"json_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"max_bytes": 262144,
"external_user_enabled": false
},
"max_response_length": 0,
"timeout_seconds": 30,
"max_retries": 2,
"retry_on_status": [
1
]
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Per-endpoint response (V186 flat shape).
Endpoint ID — stable, used in subsequent GET/PATCH/DELETE/test URLs.
Slug-like identifier. Unique per integration; immutable post-create.
LLM-facing description.
HTTP method.
URL path appended to the integration's base_url.
Outbound body encoding.
jsonPossible values: Jinja template rendered against the parsed JSON response.
Truncate the final rendered string to this many chars.
0Per-request timeout.
30Retry attempts on transient failures.
2HTTP status codes that trigger a retry.
Missing or invalid API key.
Insufficient permissions.
Endpoint not found.
Validation Error
GET /v1/{workspace_id}/integrations/{integration_id}/endpoints/{endpoint_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"method": "GET",
"path": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"headers": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"static_body_fields": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"body_format": "json",
"response_template": "text",
"client_output": {
"type": "text",
"schema_version": "text",
"json_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"max_bytes": 262144,
"external_user_enabled": false
},
"max_response_length": 0,
"timeout_seconds": 30,
"max_retries": 2,
"retry_on_status": [
1
]
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
No content
Missing or invalid API key.
Insufficient permissions.
Endpoint not found.
Managed integration endpoint mutation blocked.
Validation Error
DELETE /v1/{workspace_id}/integrations/{integration_id}/endpoints/{endpoint_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Patch an existing endpoint (V186 flat shape). name is immutable.
URL path appended to the integration's base_url. Must NOT start with /.
^[^/]Jinja template; pass null to clear (the only DB-nullable column on this row).
Successful Response
Per-endpoint response (V186 flat shape).
Endpoint ID — stable, used in subsequent GET/PATCH/DELETE/test URLs.
Slug-like identifier. Unique per integration; immutable post-create.
LLM-facing description.
HTTP method.
URL path appended to the integration's base_url.
Outbound body encoding.
jsonPossible values: Jinja template rendered against the parsed JSON response.
Truncate the final rendered string to this many chars.
0Per-request timeout.
30Retry attempts on transient failures.
2HTTP status codes that trigger a retry.
Missing or invalid API key.
Insufficient permissions.
Endpoint not found.
Managed integration endpoint mutation blocked.
Invalid request body, NOT NULL field set to null, or no fields to update.
PATCH /v1/{workspace_id}/integrations/{integration_id}/endpoints/{endpoint_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 494
{
"description": "text",
"method": "GET",
"path": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"headers": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"static_body_fields": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"body_format": "json",
"response_template": "text",
"client_output": {
"type": "text",
"schema_version": "text",
"json_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"max_bytes": 262144,
"external_user_enabled": false
},
"max_response_length": 1,
"timeout_seconds": 1,
"max_retries": 1,
"retry_on_status": [
1
]
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"method": "GET",
"path": "text",
"input_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"headers": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"static_body_fields": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"body_format": "json",
"response_template": "text",
"client_output": {
"type": "text",
"schema_version": "text",
"json_schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"max_bytes": 262144,
"external_user_enabled": false
},
"max_response_length": 0,
"timeout_seconds": 30,
"max_retries": 2,
"retry_on_status": [
1
]
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Inputs to POST /{integration_id}/endpoints/{endpoint_id}/test.
Successful Response
Full breadcrumb returned by the test handler.
HTTP status code from the upstream call.
Request duration in milliseconds.
0Number of retry attempts.
0Raw response body from the upstream call.
Response after Jinja response_template rendering, pre-truncation.
Final processed result (rendered + truncated to max_response_length).
Error message if the request failed.
Safe validation summary when client output is enabled but cannot be emitted.
Missing or invalid API key.
Insufficient permissions.
Integration or endpoint not found.
Validation Error
POST /v1/{workspace_id}/integrations/{integration_id}/endpoints/{endpoint_id}/test HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 102
{
"params": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"auth_params": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}{
"status_code": 1,
"duration_ms": 0,
"retries": 0,
"raw_response": null,
"rendered": "text",
"final_result": "text",
"error": "text",
"artifact": {
"type": "text",
"schema_version": "text",
"payload": {
"ANY_ADDITIONAL_PROPERTY": true
}
},
"artifact_error": "text"
}Last updated
Was this helpful?

