> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://partner.docs.trychannel3.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://partner.docs.trychannel3.com/_mcp/server.

# API Overview

The Partner API is how you **onboard merchants and orchestrate connect flows** from your backend. It covers merchant lifecycle and connection state — not catalog editing, feed management, or credential handling. Channel3 runs those pipelines; the API is the control plane for getting merchants in and reading status out.

Use it server-side only. For day-to-day ops — browsing catalogs, debugging sync issues, reporting performance — use the [Observability dashboard](/observability).

## What you can do

Register a merchant when they sign up or link a store. Channel3 assigns a stable `customer_id`, attaches them to your partner account, and starts baseline ingestion immediately — no connect flow required.

Mint a short-lived, co-branded connect URL when a merchant is ready to link import sources (Shopify, WooCommerce, Akeneo, etc.) or distribution destinations (Google, Microsoft, OpenAI).

After a merchant returns from connect — or any time you need status — fetch import sources, destinations, and per-connection sync state for that customer.

Paginate through every merchant you have provisioned, with `customer_id`, name, and logo — useful for reconciliation, support tooling, or syncing your own customer records.

## Endpoints

Each maps to one job in the integration. See the [Quickstart](/quickstart) for the full four-step flow.

| Endpoint                                                                                    | When to call it                                                                                                                                                   |
| ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Create merchant](api:POST/v0/partner/merchants)                                            | Customer signs up or you learn their storefront domain. Idempotent on domain — safe to retry. Returns `customer_id`.                                              |
| [Create connect session](api:POST/v0/partner/merchants/\{customer_id}/connections/sessions) | Merchant clicks Connect in your product. Returns a single-use hosted page URL (expires in **30 minutes**). Mint a fresh session for every attempt.                |
| [List connections](api:GET/v0/partner/merchants/\{customer_id}/connections)                 | After redirect to your `redirect_uri`, or when polling sync progress. Source of truth for connection and sync state — do not rely on callback query params alone. |
| [List merchants](api:GET/v0/partner/merchants)                                              | Audit or sync your managed merchant list. Paginated (`page`, `size`).                                                                                             |

### What happens on provision

Calling [Create merchant](api:POST/v0/partner/merchants) is enough to start work: Channel3 activates a `web_crawl` connection automatically and begins crawling the storefront with no merchant action.

Connect sessions are for **additional** import sources and distribution destinations beyond that baseline.

## Authentication

Authenticate with your partner secret key (`c3_sk_...`) in the `x-api-key` header on every request.

```bash
curl https://partners.trychannel3.com/v0/partner/merchants \
  -H "x-api-key: c3_sk_..."
```

**Base URL:** `https://partners.trychannel3.com/v0`

Never expose the key in a browser, mobile app, or client-side code. All Partner API calls belong on your server.

Your key is issued once during partner onboarding. Contact [support@trychannel3.com](mailto:support@trychannel3.com) to rotate keys or register additional redirect URIs.

## What the API does not cover

The API is intentionally small. These stay on Channel3:

* **Connect UI** — OAuth, app installs, credential collection, and multi-step platform flows run on the hosted connect page.
* **Catalog data** — product records, attributes, and normalization are in the pipeline and [Observability dashboard](/observability), not exposed as partner API resources.
* **Feed delivery** — Channel3 generates and syncs feeds to each destination; you read status via [List connections](api:GET/v0/partner/merchants/\{customer_id}/connections).

If you need hands-on visibility for white-glove support, use the dashboard. If you need programmatic status for your own UI, use [List connections](api:GET/v0/partner/merchants/\{customer_id}/connections).

## Next steps

Walk through provision → connect session → redirect → callback with example calls.

Schemas, error responses, and try-it-now requests on each endpoint in the reference below.