Skip to content

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.

POST/workspaces/{workspace}/integrations

For 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.

Name Type Required Description
workspace string Yes The workspace’s slug, e.g. “flagon-io”.

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.
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"
}
}'

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"
}

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.