Connectors
Connectors store an external API credential — Slack, GitHub, OpenRouter, or any token-authenticated HTTP API — once in your organization, and let Sprites call that API through the Sprites gateway without ever holding the credential themselves.
The Connectors dashboard is currently behind the connected_services feature flag. Organizations without access don’t see the dashboard, but API access is controlled by bearer token authentication and connector access policies.
Access model
Every connector has an access policy that decides which Sprites may use it and which provider paths they may reach. A connector with no policy denies every Sprite. Grant access with allow_all, sprite_labels, or name_prefix, then optionally restrict provider paths with allowed_endpoints and blocked_endpoints. Endpoint patterns are exact paths or a trailing * wildcard (/chat.postMessage, /chat.*, /*). Block rules are checked before allow rules.
Calling a connector from a Sprite
Sprites call connectors through the gateway:
https://api.sprites.dev/v1/gateway/<provider>/<connection_id>/<path>
Gateway requests must originate from inside a running Sprite — Fly.io identity headers identify the calling Sprite, and the connector’s access policy is checked against it. The path after the connection ID is forwarded to the provider with the stored credential attached.
Coding agents
Every Sprite ships with the sprite-api-gateway skill for Claude Code, Cursor, Codex, and Gemini. Coding agents running inside a Sprite discover available connectors via GET /v1/gateway/list and call them by natural-language request — no manual URL building required.
For a walkthrough, provider list, agent-skill details, and policy examples, see the Connectors guide.
Complete OAuth Flow
/v1/oauth/{provider}/callback
Exchange an OAuth authorization code for an encrypted connector.
Path Parameters
provider*
string
The provider parameter
Request Body
application/jsoncode*
string
Authorization code returned by the provider.
redirect_uri
string
Redirect URI used to create the authorization URL.
state
string
State value from the authorize response.
access_policy
Initial access policy. Empty or missing policies deny sprite use until updated.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
Response
application/jsonconnection*
Sanitized connector. Secrets and encrypted token fields are never returned.
id*
string
Connector ID used in gateway URLs.
provider*
"slack" | "slack_bot" | "github" | "openrouter" | "custom_api"
Provider key.
provider_account_id*
string
Provider account, workspace, or key identifier.
provider_account_name
string
Human-readable provider account name.
scopes
string
Comma-separated OAuth scopes granted to the connector.
connection_type
"oauth" | "api_key" | "provisioned"
How the connector was created.
access_policy
Policy controlling which sprites and provider endpoints may use this connector.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
provider_info
map
Provider-specific metadata such as workspace URLs, custom API base URLs, or icon references.
user_id
string
Sprites user ID that created or owns the connector.
token_expires_at
string
When the stored token expires, if the provider issues expiring tokens.
inserted_at
string
When the connector was created.
updated_at
string
When the connector was last updated.
usage_snippet
string
Provider-specific curl snippet showing how to call the connector through the gateway.
Response Codes
Created
Invalid request parameters
Missing or invalid authentication
Create API-key Connector
/v1/oauth/connections/api_key
Create a connector from a user-provided API key for providers that support key validation.
Request Body
application/jsonprovider*
string
API-key provider.
api_key*
string
Provider API key. Stored encrypted and never returned by the API.
access_policy
Initial access policy. Empty or missing policies deny sprite use until updated.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
Response
application/jsonconnection*
Sanitized connector. Secrets and encrypted token fields are never returned.
id*
string
Connector ID used in gateway URLs.
provider*
"slack" | "slack_bot" | "github" | "openrouter" | "custom_api"
Provider key.
provider_account_id*
string
Provider account, workspace, or key identifier.
provider_account_name
string
Human-readable provider account name.
scopes
string
Comma-separated OAuth scopes granted to the connector.
connection_type
"oauth" | "api_key" | "provisioned"
How the connector was created.
access_policy
Policy controlling which sprites and provider endpoints may use this connector.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
provider_info
map
Provider-specific metadata such as workspace URLs, custom API base URLs, or icon references.
user_id
string
Sprites user ID that created or owns the connector.
token_expires_at
string
When the stored token expires, if the provider issues expiring tokens.
inserted_at
string
When the connector was created.
updated_at
string
When the connector was last updated.
usage_snippet
string
Provider-specific curl snippet showing how to call the connector through the gateway.
Response Codes
Created
Invalid request parameters
Missing or invalid authentication
Provision Connector
/v1/oauth/connections/provision
Provision a system-managed connector for providers that support platform-managed keys.
Request Body
application/jsonprovider*
string
Provider to provision.
Response
application/jsonconnection*
Sanitized connector. Secrets and encrypted token fields are never returned.
id*
string
Connector ID used in gateway URLs.
provider*
"slack" | "slack_bot" | "github" | "openrouter" | "custom_api"
Provider key.
provider_account_id*
string
Provider account, workspace, or key identifier.
provider_account_name
string
Human-readable provider account name.
scopes
string
Comma-separated OAuth scopes granted to the connector.
connection_type
"oauth" | "api_key" | "provisioned"
How the connector was created.
access_policy
Policy controlling which sprites and provider endpoints may use this connector.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
provider_info
map
Provider-specific metadata such as workspace URLs, custom API base URLs, or icon references.
user_id
string
Sprites user ID that created or owns the connector.
token_expires_at
string
When the stored token expires, if the provider issues expiring tokens.
inserted_at
string
When the connector was created.
updated_at
string
When the connector was last updated.
usage_snippet
string
Provider-specific curl snippet showing how to call the connector through the gateway.
Response Codes
Created
Invalid request parameters
Missing or invalid authentication
List Connectors
/v1/oauth/connections
List connectors configured for the authenticated organization.
Query Parameters
provider
string
Optional provider filter.
Response
application/jsonconnections*
Connection[]
Connectors configured for the organization.
id*
string
Connector ID used in gateway URLs.
provider*
"slack" | "slack_bot" | "github" | "openrouter" | "custom_api"
Provider key.
provider_account_id*
string
Provider account, workspace, or key identifier.
provider_account_name
string
Human-readable provider account name.
scopes
string
Comma-separated OAuth scopes granted to the connector.
connection_type
"oauth" | "api_key" | "provisioned"
How the connector was created.
access_policy
Policy controlling which sprites and provider endpoints may use this connector.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
provider_info
map
Provider-specific metadata such as workspace URLs, custom API base URLs, or icon references.
user_id
string
Sprites user ID that created or owns the connector.
token_expires_at
string
When the stored token expires, if the provider issues expiring tokens.
inserted_at
string
When the connector was created.
updated_at
string
When the connector was last updated.
usage_snippet
string
Provider-specific curl snippet showing how to call the connector through the gateway.
Response Codes
Success
Missing or invalid authentication
Get Connector
/v1/oauth/connections/{id}
Get a single connector by ID.
Path Parameters
id*
string
Resource identifier
Response
application/jsonconnection*
Sanitized connector. Secrets and encrypted token fields are never returned.
id*
string
Connector ID used in gateway URLs.
provider*
"slack" | "slack_bot" | "github" | "openrouter" | "custom_api"
Provider key.
provider_account_id*
string
Provider account, workspace, or key identifier.
provider_account_name
string
Human-readable provider account name.
scopes
string
Comma-separated OAuth scopes granted to the connector.
connection_type
"oauth" | "api_key" | "provisioned"
How the connector was created.
access_policy
Policy controlling which sprites and provider endpoints may use this connector.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
provider_info
map
Provider-specific metadata such as workspace URLs, custom API base URLs, or icon references.
user_id
string
Sprites user ID that created or owns the connector.
token_expires_at
string
When the stored token expires, if the provider issues expiring tokens.
inserted_at
string
When the connector was created.
updated_at
string
When the connector was last updated.
usage_snippet
string
Provider-specific curl snippet showing how to call the connector through the gateway.
Response Codes
Success
Missing or invalid authentication
Sprite not found
Update Connector Policy
/v1/oauth/connections/{id}
Update a connector access policy.
Path Parameters
id*
string
Resource identifier
Request Body
application/jsonaccess_policy*
Replacement access policy.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
Response
application/jsonconnection*
Sanitized connector. Secrets and encrypted token fields are never returned.
id*
string
Connector ID used in gateway URLs.
provider*
"slack" | "slack_bot" | "github" | "openrouter" | "custom_api"
Provider key.
provider_account_id*
string
Provider account, workspace, or key identifier.
provider_account_name
string
Human-readable provider account name.
scopes
string
Comma-separated OAuth scopes granted to the connector.
connection_type
"oauth" | "api_key" | "provisioned"
How the connector was created.
access_policy
Policy controlling which sprites and provider endpoints may use this connector.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
provider_info
map
Provider-specific metadata such as workspace URLs, custom API base URLs, or icon references.
user_id
string
Sprites user ID that created or owns the connector.
token_expires_at
string
When the stored token expires, if the provider issues expiring tokens.
inserted_at
string
When the connector was created.
updated_at
string
When the connector was last updated.
usage_snippet
string
Provider-specific curl snippet showing how to call the connector through the gateway.
Response Codes
Success
Invalid request parameters
Missing or invalid authentication
Sprite not found
/v1/oauth/connections/{id}
Update a connector access policy.
Path Parameters
id*
string
Resource identifier
Request Body
application/jsonaccess_policy*
Replacement access policy.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
Response
application/jsonconnection*
Sanitized connector. Secrets and encrypted token fields are never returned.
id*
string
Connector ID used in gateway URLs.
provider*
"slack" | "slack_bot" | "github" | "openrouter" | "custom_api"
Provider key.
provider_account_id*
string
Provider account, workspace, or key identifier.
provider_account_name
string
Human-readable provider account name.
scopes
string
Comma-separated OAuth scopes granted to the connector.
connection_type
"oauth" | "api_key" | "provisioned"
How the connector was created.
access_policy
Policy controlling which sprites and provider endpoints may use this connector.
allow_all
boolean
When true, all sprites in the organization may use this connector.
sprite_labels
string
Labels the calling sprite must have. All listed labels are required.
name_prefix
string
Sprite name prefix required to use this connector.
allowed_endpoints
string
Provider API paths the connector may call. Supports exact paths and trailing * prefix wildcards.
blocked_endpoints
string
Provider API paths the connector may not call. Block rules are checked before allow rules.
provider_info
map
Provider-specific metadata such as workspace URLs, custom API base URLs, or icon references.
user_id
string
Sprites user ID that created or owns the connector.
token_expires_at
string
When the stored token expires, if the provider issues expiring tokens.
inserted_at
string
When the connector was created.
updated_at
string
When the connector was last updated.
usage_snippet
string
Provider-specific curl snippet showing how to call the connector through the gateway.
Response Codes
Success
Invalid request parameters
Missing or invalid authentication
Sprite not found
Delete Connector
/v1/oauth/connections/{id}
Delete a connector and its encrypted credentials.
Path Parameters
id*
string
Resource identifier
Response
application/jsonResponse Codes
No content
Missing or invalid authentication
Sprite not found