API REFERENCE
Execute Connector Action
On this page
/api/connectors/actionsExecute a connector action with the given parameters. The actionSlug must come from a prior call to GET /api/connectors/actions, and parameters must match the parameters JSON Schema returned for that action. The action's parent connector must be currently connected (isConnected: true in the catalog) — otherwise this endpoint returns 409. The result field passes through whatever the underlying connector returns; its shape is action-specific. To attach an image to a file_uploadable parameter (e.g. images), first stage it with Upload Connector File and pass the returned descriptor.
Authentication
x-api-key in header
bearerAuth bearer
Request
curl --request POST \
--url 'https://api.recoupable.dev/api/connectors/actions' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"actionSlug": "string",
"parameters": {}
}'Try it
Fill in the fields, send the request from your browser, and read the live response. The curl below updates as you type.
Kept in this browser tab only and cleared when it closes.
curl --request POST \
--url 'https://recoup-api.vercel.app/api/connectors/actions' \
--header 'Content-Type: application/json' \
--data '{
"actionSlug": "string",
"parameters": {}
}'Request body required
Action to execute and the parameters for it
application/json
actionSlugstringrequiredAction slug from GET /api/connectors/actions. Always UPPERCASE_SNAKE_CASE (e.g. GOOGLESHEETS_WRITE_SPREADSHEET). Required.
parametersobjectrequiredAction-specific parameters matching the parameters JSON Schema returned by GET /api/connectors/actions for this actionSlug. The connector validates these against the cached schema before executing — invalid shapes return 400. Required.
account_idstringOptional account ID to execute the action on a different account (e.g., an artist). The authenticated account must have access. Omit to execute on your own account.
format: uuid
Responses
200Action executed successfully+
application/json
successbooleanrequiredresultobjectrequiredPass-through of the underlying connector's response payload. Shape is action-specific — consult the action's parameters schema and the third-party service's own documentation for what to expect. The server-side wrapper does not transform this field.
executedAtstringISO 8601 timestamp of when the action was executed server-side.
format: date-time
400Bad request — missing or invalid parameters (e.g. parameters does not match the action's schema)+
application/json
errorintegerrequiredformat: int32
messagestringrequired401Unauthorized — invalid or missing API key+
application/json
errorintegerrequiredformat: int32
messagestringrequired403Forbidden — no access to the specified account+
application/json
errorintegerrequiredformat: int32
messagestringrequired404Action slug not found in any of the account's connectors+
application/json
errorintegerrequiredformat: int32
messagestringrequired409The action's parent connector is not currently connected. Authorize it via POST /api/connectors before retrying.+
application/json
errorintegerrequiredformat: int32
messagestringrequired502Upstream connector failure (the third-party service errored or timed out)+
application/json
errorintegerrequiredformat: int32
messagestringrequiredFull specification
Download the OpenAPI file for complete schemas, constraints, and examples.
Download social.jsonView operation source
{
"security": [
{
"apiKeyAuth": []
},
{
"bearerAuth": []
}
],
"description": "Execute a connector action with the given parameters. The `actionSlug` must come from a prior call to GET /api/connectors/actions, and `parameters` must match the `parameters` JSON Schema returned for that action. The action's parent connector must be currently connected (`isConnected: true` in the catalog) — otherwise this endpoint returns 409. The `result` field passes through whatever the underlying connector returns; its shape is action-specific. To attach an image to a `file_uploadable` parameter (e.g. `images`), first stage it with [Upload Connector File](/api-reference/connectors/upload-file) and pass the returned descriptor.",
"requestBody": {
"description": "Action to execute and the parameters for it",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExecuteConnectorActionRequest"
}
}
}
},
"responses": {
"200": {
"description": "Action executed successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExecuteConnectorActionResponse"
}
}
}
},
"400": {
"description": "Bad request — missing or invalid parameters (e.g. `parameters` does not match the action's schema)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Unauthorized — invalid or missing API key",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Forbidden — no access to the specified account",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Action slug not found in any of the account's connectors",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "The action's parent connector is not currently connected. Authorize it via POST /api/connectors before retrying.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"502": {
"description": "Upstream connector failure (the third-party service errored or timed out)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}