Connect an integration
Connect a workspace to an outside system. provider is a model provider (anthropic, openai, gemini, xai, mistral, deepseek, azure_openai, openrouter, groq, together, fireworks, cerebras, anthropic_endpoint or openai_endpoint: your own key, billed by that provider, and free on g1t while it is being built out; a workspace can connect several and route each kind of work with set_model_routes), or sentry, datadog, webhook, jira or linear. config holds the settings each needs; secret is the API key or token.
/workspaces/{workspace}/integrationsFor datadog and webhook, g1t makes the signing secret and returns it once. Owners only.
signing_secret is set only when g1t made it, for datadog and webhook, and is shown only this once. A model provider is tested as it is connected. See integrations and model providers.
- Authentication: Required. Send an access token as
Authorization: Bearer. - MCP tool:
connect_integration, with the same inputs
Path parameters
Section titled “Path parameters”| Name | Type | Required | Description |
|---|---|---|---|
workspace |
string | Yes | The workspace’s slug, e.g. “flagon-io”. |
Body parameters
Section titled “Body parameters”Send a JSON object. Names are snake_case, as in responses; the camelCase spelling is accepted too.
| Name | Type | Required | Description |
|---|---|---|---|
provider |
string | Yes | One of anthropic, openai, gemini, xai, mistral, deepseek, azure_openai, openrouter, groq, together, fireworks, cerebras, anthropic_endpoint, openai_endpoint, sentry, datadog, webhook, jira, linear. |
name |
string | No | What to call it. The provider’s name if left out. |
config |
object | No | Settings. repo (owner/name) is where alerts open issues; assign puts an agent on each; label names the label (bug). organization is the Sentry org’s slug. site is Jira’s address; email the account its token belongs to; keys the project or team keys it answers for. base_url and auth_header (x-api-key or authorization) are for your own endpoint; model overrides the model for every kind of work. write_back (default true) tells the outside system when the work lands. |
secret |
string | No | The API key or token g1t uses to call it. |
signing_secret |
string | No | For sentry: the integration’s client secret. |
Example request
Section titled “Example request”curl -X POST https://api.g1t.sh/workspaces/flagon-io/integrations \ -H "Authorization: Bearer $G1T_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "provider": "webhook", "config": { "repo": "flagon-io/hello", "label": "bug" } }'Example response
Section titled “Example response”A successful request answers 200 with:
{ "connection": { "id": "con_01kpx4n8r3g9s0v5w7x1z2a3bd", "workspace": "flagon-io", "provider": "webhook", "kind": "alerts", "name": "Webhook", "config": { "repo": "flagon-io/hello", "label": "bug", "assign": false, "write_back": true }, "secret_hint": null, "webhook_url": "https://api.g1t.sh/hooks/con_01kpx4n8r3g9s0v5w7x1z2a3bd", "created_by": "syntaqx", "created_at": "2026-10-04T15:42:07.318Z", "last_used_at": null, "last_error": null, "models": [] }, "signing_secret": "g1ts_9f2c4a7e1b0d3c6f8a2e5b7d9c1f4a6e8b0d2c4f6a8e1b3d"}Errors
Section titled “Errors”A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.
| Status | Code | When |
|---|---|---|
| 401 | unauthenticated |
A token is required, or the one sent is not valid. |
| 403 | forbidden |
The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository. |
| 404 | not_found |
It does not exist, or you cannot see it. |
| 409 | conflict |
The request conflicts with the current state. |
| 422 | invalid |
The input is not valid. message says which field and why. |