> ## 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.

# Platform API Reference

> Manage accounts, execute actions, and control integrations with the Platform API

The Platform API is the **control plane** for StackOne. It powers [MCP servers](/embed/call-actions/mcp) and the [Agent SDK](/embed/call-actions/agent-sdk). Use it to execute actions, manage end-user accounts, and build custom integrations.

## Base URL

All endpoints are served from the same base URL:

```
https://api.stackone.com
```

<Note>
  v1 endpoints that are no longer listed here can still be found in the [v1 OpenAPI spec](/platform/api-reference/platform.json).
</Note>

## Execute actions

The RPC endpoint runs any action enabled on a linked account. It's the same layer MCP and the Agent SDK call, so anything your agent can do, your backend can do directly. See [RPC/HTTP](/embed/call-actions/rpc-http) for the call shape and the discover-then-call flow.

<CardGroup cols={2}>
  <Card title="POST /actions/rpc" icon="play" href="/platform/api-reference/actions/make-an-rpc-call-to-an-action">
    Execute any action.
  </Card>

  <Card title="POST /actions/search" icon="magnifying-glass" href="/platform/api-reference/actions/search-connector-actions-by-semantic-similarity">
    Search actions by natural language.
  </Card>

  <Card title="POST /actions/rpc/synced" icon="database" href="/platform/api-reference/actions/read-synced-action-data-from-the-datasync-index">
    Read the copy Data Sync stores instead of calling the provider.
  </Card>

  <Card title="POST /unified/check_permissions" icon="user-check" href="/platform/api-reference/actions/check-user-permissions-on-a-resource">
    Check what a user can access before acting on their behalf.
  </Card>
</CardGroup>

## Manage accounts

Linked accounts are your end-users' connections to their systems. The Accounts API covers the full lifecycle. The `origin_owner_id` you set on the connect session comes back as `owner_id`, which is how you filter accounts per customer. See [Multi-Tenant Accounts](/features/multi-tenant-accounts).

<CardGroup cols={2}>
  <Card title="GET /v2/accounts" icon="list-ul" href="/platform/api-reference/v2/accounts/list-accounts">
    List linked accounts with status, connector, and metadata.
  </Card>

  <Card title="GET /v2/accounts/{id}" icon="magnifying-glass" href="/platform/api-reference/v2/accounts/get-an-account">
    Get details for a specific account.
  </Card>

  <Card title="PATCH /v2/accounts/{id}" icon="pen" href="/platform/api-reference/v2/accounts/patch-an-account">
    Change an account's status and status reasons.
  </Card>

  <Card title="DELETE /v2/accounts/{id}" icon="trash" href="/platform/api-reference/v2/accounts/delete-an-account">
    Remove an account and its stored credentials.
  </Card>
</CardGroup>

## Onboard end-users

Connect sessions generate the short-lived token that opens the account-linking flow, either the [StackOne Hub](/embed/account-linking/stackone-hub) or an [Auth Link](/embed/account-linking/auth-link). See [Connect Session](/embed/connect-session) for the request fields and account behavior.

<CardGroup cols={3}>
  <Card title="POST /connect_sessions" icon="plus" href="/platform/api-reference/connect-sessions/create-connect-session">
    Generate a connect URL for your end-user.
  </Card>

  <Card title="GET /connect_sessions/{id}" icon="magnifying-glass" href="/platform/api-reference/connect-sessions/get-connect-session">
    Check a session and its most recent connection attempt.
  </Card>

  <Card title="POST /connect_sessions/authenticate" icon="key" href="/platform/api-reference/connect-sessions/authenticate-connect-session">
    Exchange a session token for the session it belongs to.
  </Card>
</CardGroup>

## Browse connectors

A connector is the definition StackOne uses to talk to a provider. Read the catalog to discover what is available, what actions a connector exposes, and which versions a [connector profile](/gateway/concepts/connector-profiles) can pin to.

<CardGroup cols={3}>
  <Card title="GET /v2/connectors" icon="list-ul" href="/platform/api-reference/v2/connectors/list-connectors">
    List the connectors available to the project.
  </Card>

  <Card title="GET /v2/connectors/{id}" icon="cube" href="/platform/api-reference/v2/connectors/get-connector">
    Get one connector, with `expand=actions` for its actions and their parameters.
  </Card>

  <Card title="GET /v2/connectors/{id}/versions" icon="clock-rotate-left" href="/platform/api-reference/v2/connectors/list-connector-versions">
    List the versions a profile can pin to.
  </Card>
</CardGroup>

## Configure connector profiles

A [connector profile](/gateway/concepts/connector-profiles) holds a provider's authentication and the actions it exposes. Manage them from your own code instead of the dashboard, and pin a [connector version](/connector-building/connector-versioning) so profile behavior stays fixed as connectors evolve.

<CardGroup cols={2}>
  <Card title="GET /v2/connector_profiles" icon="list-ul" href="/platform/api-reference/v2/connector-profiles/list-connector-profiles">
    List profiles with their connector key and environment. Add `expand=version` for the resolved
    connector version.
  </Card>

  <Card title="POST /v2/connector_profiles" icon="plus" href="/platform/api-reference/v2/connector-profiles/create-a-connector-profile">
    Create a profile with its authentication, actions, and events.
  </Card>

  <Card title="PATCH /v2/connector_profiles/{id}" icon="pen" href="/platform/api-reference/v2/connector-profiles/patch-a-connector-profile">
    Update a profile, including the version it is pinned to.
  </Card>

  <Card title="DELETE /v2/connector_profiles/{id}" icon="trash" href="/platform/api-reference/v2/connector-profiles/delete-a-connector-profile">
    Remove a profile and everything configured on it.
  </Card>
</CardGroup>

## Sync provider data

[Data Sync](/optimize/data-sync) polls a provider on a schedule and stores the records so [Deep Query](/optimize/deep-query) can search them without a provider call. A sync config binds one action to a connector profile, a schedule runs that action for one linked account, and the sync engine produces the runs.

<CardGroup cols={2}>
  <Card title="GET /v2/data_sync/sync_configs" icon="list-ul" href="/platform/api-reference/v2/data-sync/list-sync-configs">
    List the actions set up to sync, by connector profile.
  </Card>

  <Card title="POST /v2/data_sync/sync_configs" icon="plus" href="/platform/api-reference/v2/data-sync/create-a-sync-config">
    Bind an action to a connector profile.
  </Card>

  <Card title="POST /v2/data_sync/schedules" icon="calendar" href="/platform/api-reference/v2/data-sync/create-a-schedule">
    Sync one action for one linked account on a schedule.
  </Card>

  <Card title="GET /v2/data_sync/runs" icon="clock-rotate-left" href="/platform/api-reference/v2/data-sync/list-runs">
    Read run history and status. Runs are read-only.
  </Card>
</CardGroup>

## Serve actions over MCP

The MCP endpoint exposes a linked account's enabled actions as tools to any MCP client. Most setups point their client at the hosted server rather than calling these endpoints directly, so start with [MCP](/embed/call-actions/mcp) for the endpoint URL, authentication headers, and tool modes.

<Card title="POST /mcp" icon="plug" href="/platform/api-reference/mcp/send-mcp-json-rpc-message">
  Send a JSON-RPC message.
</Card>

## Inspect webhooks

A [webhook](/connect/webhooks) is the HTTPS endpoint your project's events are delivered to. Create and edit them in the dashboard. These endpoints read back what is registered, including the signing secret you verify payload signatures against.

<CardGroup cols={2}>
  <Card title="GET /v2/webhooks" icon="list-ul" href="/platform/api-reference/v2/webhooks/list-webhooks">
    List registered webhooks and their status.
  </Card>

  <Card title="GET /v2/webhooks/{id}" icon="key" href="/platform/api-reference/v2/webhooks/get-a-webhook">
    Get one webhook with its signing secret.
  </Card>
</CardGroup>

## Monitor and debug

Every request StackOne makes is logged, including the underlying provider calls. See [Troubleshooting](/connect/troubleshooting) for the dashboard view and [Observability & Log Sync](/features/observability/observability-and-log-sync) to export logs into Grafana, Datadog, or a warehouse.

<CardGroup cols={2}>
  <Card title="POST /logs" icon="scroll" href="/platform/api-reference/logs/list-logs">
    Query logs, filtered by account, status, and time.
  </Card>

  <Card title="POST /logs/steps" icon="stairs" href="/platform/api-reference/logs/list-step-logs">
    See execution steps: authentication, transformation, provider calls.
  </Card>

  <Card title="POST /logs/provider" icon="cloud-arrow-down" href="/platform/api-reference/logs/list-provider-logs">
    Read the raw calls StackOne made to the provider.
  </Card>

  <Card title="POST /logs/stats/aggregate" icon="chart-line" href="/platform/api-reference/logs/get-logs-stats-aggregate">
    Aggregate volume, errors, and latency for dashboards.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.