Workspaces Integrations
API endpoints for Workspaces Integrations
/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 |
/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 |
/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 |
/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 |
/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 |
/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 |
/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 |
/api/workspaces/{workspace_id}/integrations/storage-providers StorageProviders
Response Codes
| Status Code | Description |
|---|---|
| 200 | Success |
/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 |
/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 |
/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 |
/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 |
/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 |
/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 |