# Getting started

You can do everything except receive live requests while your application is reviewed. Provider payouts are not yet available.

## Apply

Sign in to the [Canopy web app](https://app.canopyx.ai/providers), choose **Start your application**, and submit it with your inference engine and at least one model.

## Describe your setup

Your provider setup uses one inference engine for your model offerings. On **Setup**, review the engine and models. If you already publish a model document for OpenRouter, choose **Import from OpenRouter** to add its models with their precision, context window and supported parameters. Before an offering can serve traffic, it also needs:

* **The engine model ID**, matching what your engine reports in `/v1/models`. Set it with `--served-model-name` for vLLM and SGLang, or `--alias` for llama.cpp. The installer can fill this in for you.
* **A public endpoint** under **Connection setup**. See [Public endpoint](/providers/reachability).

### Configure upstream inference authentication

Under **Connection setup**, choose **Bearer token** to send `Authorization: Bearer <credential>`, or **Custom header** to send a header such as `x-api-key`. Canopy uses this credential for inference and endpoint checks.

There are three separate credentials:

* The **connector credential** authenticates the connector's WebSocket to Canopy.
* The **engine API key** (`engineApiKey()` in `provider.ts`) authenticates the connector's health, model and metrics collection.
* The **upstream inference credential** authenticates Canopy's requests to your public endpoint.

## Price your offerings

On **Pricing**, set **Concurrent requests**, adjust your prices, and save your starter settings. Use a limit tested with your workload. See [Pricing strategies](/providers/strategies) for the model's assumptions and how to customize it.

## Install the connector

On **Install**, copy the install command and run it on the machine beside your engine:

```sh
curl -fsSL https://get.canopyx.ai/provider | sh -s -- --enroll K7QF-29XM-...
```

The installer writes starter TypeScript to `~/.canopy-provider/app/provider.ts`, checks your engine, and optionally installs a service. Review the generated policy before starting live traffic. See [Install the connector](/providers/installer) for options and an inspect-first path. If you skip the service, start the connector yourself:

```sh
~/.canopy-provider/bin/canopy-provider start
```

Until approval the connector runs in **staging**: it reports health but receives no requests. When Canopy approves your account, it goes **live** within a minute without a restart. The readiness checklist on **Overview** shows anything else an offering needs before it receives traffic.

Run `~/.canopy-provider/bin/canopy-provider doctor` at any time to diagnose the engine, credential, connection and endpoint checks.

## Send a test request

After approval, create an API key in the web app. Use `https://api.canopyx.ai/v1` as the base URL and your canonical model ID, such as `openai/gpt-oss-20b`, as `model`. Follow the [user guide](/consumers) for a request example.

A request can be routed to another provider, so a successful response does not prove that your provider won. **Overview** shows RFQs received, quoted and won for each offering.

## Set up without the installer

To embed the connector in your own Bun project, install Bun 1.3.14 or later, then:

```bash
$ bun init -y
$ bun add @canopyx/provider
$ bunx canopy-provider init
```

`init` asks for a connector token from **Create token** on the Install page. It saves the token to an ignored `.env` file and generates `provider.ts` from your saved starter settings. Review and edit that code before running it.

Check the engine, then start the connector. Use `--verbose` the first time to see prices, RFQs and quotes:

```sh
$ bunx canopy-provider check ./provider.ts
$ bunx canopy-provider start ./provider.ts --verbose
```

## Use a coding agent

Give your agent the [Canopy provider pricing skill](https://docs.canopyx.ai/skills/canopy-provider/SKILL.md)
to inspect your environment and write or review pricing code in `provider.ts`. For reuse, save that
file as `canopy-provider/SKILL.md` inside your agent's skill directory.

Tell the agent what to change. For example:

> Use the Canopy provider skill to review my provider.ts and raise prices by 20%
> between 18:00 and 22:00 local time. Keep the admission and cache rules. Test it offline without
> starting the connector.

Agents can read any documentation page as Markdown by appending `.md` to its URL, such as
`https://docs.canopyx.ai/providers/strategies.md`.
