Workspaces Integrations

API endpoints for Workspaces Integrations

GET /api/workspaces/{workspace_id}/integrations

List lists all integrations for a workspace.

Returns paginated list of integrations. Accepts page and per_page query parameters. Returns 500 for internal errors, 200 OK with paginated integration list on success.

Response Codes

Status Code Description
200 Success
500 Internal server error

Success

Response response.PaginatedIntegrations

Paginated Integrations

Property Type Description
data any[] Array of integrations for current page
meta string Pagination metadata

POST /api/workspaces/{workspace_id}/integrations

Create creates a new integration.

Creates an integration with the specified provider and configuration. Returns 400 for validation errors, 500 for internal errors, 201 Created with integration details on success.

Request Body request.Integration

Integration

Property Type Description
provider* string Provider identifier (openai, anthropic, slack, firecrawl, etc.)
name string Display name for the integration (defaults to provider name)
description string | null Optional description of integration purpose
capabilities string Supported capabilities (llm, embeddings, storage, crawl, channel)
config* object Provider-specific configuration (model, temperature, etc.)
secrets object Sensitive data (API keys, tokens) - encrypted before storage

Response Codes

Status Code Description
201 Resource created successfully
400 Invalid request
500 Internal server error

GET /api/workspaces/{workspace_id}/integrations/{id}

Get retrieves an integration.

Returns integration details by ID. Verifies the integration belongs to the current workspace. Returns 400 for invalid ID, 404 if not found, 500 for internal errors, 200 OK with integration on success.

Response Codes

Status Code Description
200 Success
400 Invalid request
404 Resource not found
500 Internal server error

GET /api/workspaces/{workspace_id}/integrations/by-capability

ByCapability returns integrations grouped by capability as dropdown options.

Returns integrations organized by capability (storage, embeddings, llm, full_text_search). Optionally filters by a specific capability via query parameter. Returns 500 for internal errors, 200 OK with grouped or filtered integration options on success.

Response Codes

Status Code Description
200 Success
500 Internal server error

GET /api/workspaces/{workspace_id}/integrations/crawlers

Crawlers returns all available crawl providers for the workspace.

Returns a list of all crawl provider integrations configured for the workspace, including their schemas and configuration options. Optionally filters to only active providers via only_active query parameter. Returns 500 for internal errors, 200 OK with providers array on success.

Response Codes

Status Code Description
200 Success
500 Internal server error

GET /api/workspaces/{workspace_id}/integrations/embedding-models

EmbeddingModels returns all embedding models from all providers.

Returns a list of all available embedding models across all configured providers. Optionally filters to only active models via only_active query parameter. Returns 500 for internal errors, 200 OK with model options array on success.

Response Codes

Status Code Description
200 Success
500 Internal server error

GET /api/workspaces/{workspace_id}/integrations/llm-models

LlmModels returns all LLM models from all providers.

Returns a list of all available LLM models across all configured providers. Optionally filters to only active models via only_active query parameter. Returns 500 for internal errors, 200 OK with model options array on success.

Response Codes

Status Code Description
200 Success
500 Internal server error

GET /api/workspaces/{workspace_id}/integrations/storage-providers

StorageProviders

Response Codes

Status Code Description
200 Success

POST /api/workspaces/{workspace_id}/integrations/validate-embedder

ValidateEmbedder validates an embedder selection for a workspace.

Verifies that the specified embedder (integration_id|model_key format) is valid and available in the workspace. Returns 400 for invalid format or unavailable embedder, 200 OK with validation details on success.

Response Codes

Status Code Description
200 Success
400 Invalid request

PATCH /api/workspaces/{workspace_id}/integrations/{id}

Update updates an integration.

Updates integration name, config, or other fields. Verifies the integration belongs to the current workspace. Returns 400 for validation errors, 404 if not found, 500 for internal errors, 200 OK with updated integration on success.

Request Body request.IntegrationUpdate

Integration Update

Property Type Description
name string | null Display name for the integration
description string | null Optional description of integration purpose
capabilities string Supported capabilities (llm, embeddings, storage, crawl, channel)
config object Provider-specific configuration (model, temperature, etc.)
secrets object Sensitive data (API keys, tokens) - encrypted before storage

Response Codes

Status Code Description
200 Success
400 Invalid request
404 Resource not found
500 Internal server error

DELETE /api/workspaces/{workspace_id}/integrations/{id}

Delete deletes an integration.

Permanently removes an integration. Verifies the integration belongs to the current workspace. Returns 400 for invalid ID, 404 if not found, 500 for internal errors, 204 No Content on success.

Response Codes

Status Code Description
204 Success with no content
400 Invalid request
404 Resource not found
500 Internal server error

GET /api/workspaces/{workspace_id}/integrations/{id}/slack-setup

SlackSetup returns Slack setup information (manifest + OAuth URL) for an integration.

Returns the Slack app manifest, OAuth URL, webhook URL, and status for configuring a Slack integration. Returns 400 for invalid ID or non-Slack integration, 404 if not found, 200 OK with setup info on success.

Response Codes

Status Code Description
200 Success
400 Invalid request
404 Resource not found

GET /api/workspaces/{workspace_id}/integrations/schema/{provider}

Schema returns the agent schema for a storage provider.

Returns the configuration schema for agent-level settings of a specific provider. Returns 404 if provider not found, 200 OK with schema fields on success.

Response Codes

Status Code Description
200 Success
404 Resource not found

POST /api/workspaces/{workspace_id}/integrations/{id}/test

Test exercises all capabilities of an integration via provider.Verify().

Constructs the provider from the factory (which handles credential decryption internally), then calls Verify() to validate every capability the integration supports. Returns the HealthResult directly — Healthy=false is a 200 (the integration is reachable but unhealthy), while an error return indicates infrastructure failure and maps to 500.

Response Codes

Status Code Description
200 Success
400 Invalid request
404 Resource not found
422 Validation failed
500 Internal server error