Documentation Index Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
Use this file to discover all available pages before exploring further.
The Actions RPC endpoint is the unified way to execute any of StackOne’s 10,000+ actions. It’s the same layer used by MCP servers and AI Toolset, giving you consistent programmatic access to all integrations.
This guide covers the Platform API approach to executing actions. For direct REST access to provider data, see the Unified APIs .
The RPC endpoint routes your request to the appropriate end-user’s provider based on the x-account-id header, handles authentication, transforms requests to match provider APIs, and returns normalized data.
Execute an Action
TypeScript SDK
cURL
Python
import { StackOne } from "@stackone/stackone-client-ts" ;
const stackOne = new StackOne ({
security: {
username: process . env . STACKONE_API_KEY ! ,
password: "" ,
},
});
const result = await stackOne . actions . rpcAction ({
action: "bamboohr_list_employees" ,
query: {
pageSize: "25" ,
},
xAccountId: "customer-bamboohr" ,
});
// result.rpcActionResponse?.data = [{ id: "emp_123", ... }, ...]
curl -X POST "https://api.stackone.com/actions/rpc" \
-u " $STACKONE_API_KEY :" \
-H "x-account-id: customer-bamboohr" \
-H "Content-Type: application/json" \
-d '{
"action": "bamboohr_list_employees",
"query": { "page_size": 25 }
}'
import requests
import base64
import os
api_key = os.environ[ "STACKONE_API_KEY" ]
headers = {
"Authorization" : f "Basic { base64.b64encode( f ' { api_key } :' .encode()).decode() } " ,
"x-account-id" : "customer-bamboohr" ,
"Content-Type" : "application/json"
}
response = requests.post(
"https://api.stackone.com/actions/rpc" ,
headers = headers,
json = {
"action" : "bamboohr_list_employees" ,
"query" : { "page_size" : 25 }
}
)
employees = response.json()[ "data" ]
Request Parameters
Parameter Type Description actionstring The action identifier (e.g., bamboohr_list_employees, greenhouse_create_candidate) queryobject Query parameters for the action bodyobject Request body for write operations pathobject Path parameters (e.g., { "id": "emp_123" })
Header Required Description x-account-idYes The linked account to execute the action against AuthorizationYes Basic auth with your API key
Discover Available Actions
Use GET /actions to find what actions are available for a specific account or provider:
const result = await stackOne . actions . listActionsMeta ({
filter: {
connectors: "bamboohr" , // Filter by provider
},
});
const actions = result . actionsMetaPaginated ?. data ?.[ 0 ]?. actions ?? [];
// actions = [
// { id: "bamboohr_list_employees", label: "List Employees", ... },
// { id: "bamboohr_get_employee", label: "Get Employee", ... },
// ...
// ]
curl "https://api.stackone.com/actions?filter[connectors]=bamboohr" \
-u " $STACKONE_API_KEY :"
Build dynamic agent tooling by querying available actions first, then executing them via RPC. See Actions Metadata for a complete guide.
Common Action Patterns
Workday: List Employees
const result = await stackOne . actions . rpcAction ({
action: "workday_list_employees" ,
query: { pageSize: "50" },
xAccountId: "customer-workday" ,
});
Greenhouse: Create Candidate
const result = await stackOne . actions . rpcAction ({
action: "greenhouse_create_candidate" ,
body: {
first_name: "Jane" ,
last_name: "Doe" ,
email: "jane@example.com"
},
xAccountId: "customer-greenhouse" ,
});
const result = await stackOne . actions . rpcAction ({
action: "salesforce_get_contact" ,
path: { id: "contact_abc123" },
xAccountId: "customer-salesforce" ,
});
Actions RPC API Reference Full API reference with all parameters
Actions Metadata Discover available actions and build dynamic UIs
Multi-Tenant Accounts Manage accounts by owner for multi-tenant apps
Request Logs Monitor and debug action execution