Skip to main content
Integrations connect your Varo Cloud organization to the external tools your team already uses. Once an integration is in place, Varo Cloud can automatically trigger deployments from Git pushes, post deployment status updates to Slack, forward metrics and alerts to Datadog, or communicate with any custom HTTPS endpoint you specify. You can manage all integrations programmatically through the Integrations API. Base URL: https://inference.varo.cloud/v1 All requests require an Authorization: Bearer YOUR_API_KEY header.

GET /integrations

Returns a list of all integrations configured in your organization.
curl -X GET "https://inference.varo.cloud/v1/integrations" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "data": [
    {
      "id": "int_aaa111",
      "type": "github",
      "name": "GitHub — acme-corp/storefront-api",
      "status": "active",
      "created_at": "2024-01-10T09:00:00Z"
    },
    {
      "id": "int_bbb222",
      "type": "slack",
      "name": "Slack — #deployments",
      "status": "active",
      "created_at": "2024-01-11T14:00:00Z"
    },
    {
      "id": "int_ccc333",
      "type": "datadog",
      "name": "Datadog — production metrics",
      "status": "inactive",
      "created_at": "2023-12-01T10:30:00Z"
    }
  ]
}
data[].id
string
Unique identifier for the integration, prefixed with int_.
data[].type
string
The integration type. One of github, slack, datadog, or custom.
data[].name
string
A human-readable display name for the integration, typically auto-generated from the configuration.
data[].status
string
The current state of the integration. One of active or inactive.
data[].created_at
string
ISO 8601 datetime string for when the integration was created.

POST /integrations

Creates a new integration. The structure of the config object varies by integration type — see Integration Types below for type-specific fields.
type
string
required
The integration type to create. One of github, slack, datadog, or custom.
config
object
required
A type-specific configuration object. Refer to the Integration Types section for the required and optional fields for each type.
The example below creates a GitHub integration that watches the main branch of a repository and triggers deployments to the production environment:
curl -X POST "https://inference.varo.cloud/v1/integrations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "github",
    "config": {
      "repo": "acme-corp/storefront-api",
      "branch": "main",
      "environment": "production"
    }
  }'
{
  "id": "int_ddd444",
  "type": "github",
  "name": "GitHub — acme-corp/storefront-api",
  "status": "active",
  "config": {
    "repo": "acme-corp/storefront-api",
    "branch": "main",
    "environment": "production"
  },
  "created_at": "2024-01-15T10:00:00Z"
}
id
string
Unique identifier for the newly created integration.
type
string
The integration type as provided in the request.
name
string
Auto-generated display name for the integration.
status
string
Initial status of the integration. active if the configuration was validated successfully.
config
object
The configuration object as stored. Sensitive values such as tokens are redacted in responses.
created_at
string
ISO 8601 datetime string for when the integration was created.

GET /integrations/

Retrieves the full details of a single integration, including its configuration.
id
string
required
The unique identifier of the integration to retrieve.
curl -X GET "https://inference.varo.cloud/v1/integrations/int_aaa111" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "id": "int_aaa111",
  "type": "github",
  "name": "GitHub — acme-corp/storefront-api",
  "status": "active",
  "config": {
    "repo": "acme-corp/storefront-api",
    "branch": "main",
    "environment": "production"
  },
  "created_at": "2024-01-10T09:00:00Z"
}

DELETE /integrations/

Permanently removes an integration from your organization. Varo Cloud will immediately stop sending events to or receiving events from the external service.
id
string
required
The unique identifier of the integration to remove.
curl -X DELETE "https://inference.varo.cloud/v1/integrations/int_ccc333" \
  -H "Authorization: Bearer YOUR_API_KEY"
A successful deletion returns 204 No Content with an empty response body.

Integration Object

id
string
Unique identifier for the integration, prefixed with int_.
type
string
The integration type. One of github, slack, datadog, or custom.
name
string
Human-readable display name, typically derived from the config fields.
status
string
Current operational status of the integration. One of active or inactive.
config
object
The integration’s configuration object. Sensitive credentials are redacted in all API responses.
created_at
string
ISO 8601 datetime string for when the integration was created.

Integration Types

The following integration types are supported. Each type has its own config schema.
TypeDescriptionKey config fields
githubTriggers automatic deployments when commits or tags are pushed to a specified repository branch. Requires a connected GitHub App installation.repo (string), branch (string), environment (string)
slackPosts deployment and project event notifications to a Slack channel via an incoming webhook URL.webhook_url (string), channel (string), events (array of event names)
datadogForwards deployment events and performance metrics to your Datadog account for monitoring and alerting.api_key (string), site (string, e.g. datadoghq.com), service (string)
customSends signed HTTP POST payloads to any HTTPS endpoint you control. Useful for integrating with internal tools or services not natively supported.url (string), secret (string, for signature verification), events (array of event names)