Skip to main content
Integrations are the connections between RCB Automation and your external applications — Google Sheets, Slack, Stripe, Airtable, and more. Once an integration is connected, your workflows can read from and write to those apps. The Integrations API lets you list what’s already connected and programmatically initiate new connections for integrations that use API-key authentication.
Most integrations in RCB Automation use OAuth 2.0, which requires a user to authenticate through a browser. The POST /integrations/connect endpoint handles both API-key integrations (fully programmable) and OAuth integrations (returns a redirect URL for the browser flow). See the connect endpoint for details.

List integrations

Retrieve all integrations connected to your account.
GET /integrations

Query parameters

status
string
Filter by connection status. Accepted values: connected, expired, disconnected.
type
string
Filter by integration type (app name). For example: google_sheets, slack, stripe, airtable.

Response fields

data
object[]
Array of integration objects.
meta
object
Pagination metadata.

Example

curl --request GET \
  --url 'https://api.rcbautomation.com/v1/integrations?status=connected' \
  --header 'Authorization: Bearer rcb_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6'
Response
{
  "data": [
    {
      "id": "int_7hJkLmNoPqRs",
      "type": "google_sheets",
      "name": "Marketing team Sheets",
      "status": "connected",
      "connected_at": "2026-01-10T14:00:00Z",
      "expires_at": "2026-07-10T14:00:00Z"
    },
    {
      "id": "int_1tUvWxYzAbCd",
      "type": "stripe",
      "name": "Stripe production",
      "status": "connected",
      "connected_at": "2025-11-03T09:20:00Z",
      "expires_at": null
    },
    {
      "id": "int_5eEfGgHhIiJj",
      "type": "slack",
      "name": "Company Slack",
      "status": "expired",
      "connected_at": "2025-08-01T08:00:00Z",
      "expires_at": "2026-02-01T08:00:00Z"
    }
  ],
  "meta": {
    "total": 3,
    "page": 1,
    "per_page": 20
  }
}

Connect an integration

Initiate a new integration connection. The behavior of this endpoint differs depending on whether the target integration uses API-key authentication or OAuth 2.0.
POST /integrations/connect

Body parameters

type
string
required
The integration type to connect. Examples: google_sheets, slack, stripe, airtable, hubspot. See your dashboard’s Integrations catalog for the full list of supported types.
label
string
Optional human-readable label for this connection. Useful when you have multiple connections to the same app (for example, “Stripe staging” and “Stripe production”). Defaults to the integration type name if not provided.
credentials
object
Required for API-key integrations. Pass the credentials needed to authenticate. For integrations that use API keys, provide:Omit this field for OAuth integrations — the authentication happens through the browser redirect flow.

Response: API-key integration

For integrations that use an API key (such as stripe), the endpoint validates the key and returns a connected integration object immediately:
id
string
Unique identifier for the new integration.
type
string
Integration type.
name
string
Display label for the integration.
status
string
Connection status. Returns connected when the credentials are valid.
connected_at
string
ISO 8601 timestamp of the connection.
expires_at
string
null for API-key integrations, which do not have token expiry.

Response: OAuth integration

For integrations that use OAuth 2.0 (such as google_sheets or slack), the endpoint returns a redirect URL. Direct the user’s browser to this URL to complete the authorization flow. After the user grants access, RCB Automation exchanges the authorization code for a token and marks the integration as connected.
redirect_url
string
The OAuth authorization URL. Open this URL in the user’s browser to start the OAuth flow.
integration_id
string
The ID of the pending integration. You can poll GET /integrations/{integration_id} to check when the status changes to connected.

Examples

curl --request POST \
  --url https://api.rcbautomation.com/v1/integrations/connect \
  --header 'Authorization: Bearer rcb_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6' \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "stripe",
    "label": "Stripe production",
    "credentials": {
      "api_key": "sk_live_51NxYzAbCdEfGhIjKlMnOpQrStUvWx"
    }
  }'
API key response (201 Created)
{
  "id": "int_1tUvWxYzAbCd",
  "type": "stripe",
  "name": "Stripe production",
  "status": "connected",
  "connected_at": "2026-04-20T11:00:00Z",
  "expires_at": null
}
OAuth response (200 OK)
{
  "redirect_url": "https://accounts.google.com/o/oauth2/v2/auth?client_id=rcb_automation&redirect_uri=https%3A%2F%2Fapi.rcbautomation.com%2Fv1%2Foauth%2Fcallback&scope=spreadsheets&state=int_9oPqRsStUvWx",
  "integration_id": "int_9oPqRsStUvWx"
}

OAuth connection flow

For OAuth integrations, follow these steps to complete the connection:
1

Initiate the connection

Send POST /integrations/connect with the integration type and optional label. Do not include credentials.
2

Redirect the user

Open the redirect_url from the response in the user’s browser. The user logs in to the third-party app and grants RCB Automation the requested permissions.
3

Wait for callback

After the user approves access, the third-party app redirects to RCB Automation’s callback URL. RCB Automation completes the token exchange automatically.
4

Confirm connection

The integration’s status changes to connected. You can verify this by listing integrations and checking for "status": "connected" on the entry with the integration_id returned in step 1.
If the expires_at timestamp on an OAuth integration is approaching, prompt the user to reconnect by repeating the OAuth flow. RCB Automation sends an email notification 7 days before a token expires.