---
title: "Self-service product onboarding (Supabase-authed): activate the free tier + mint the first API key"
method: POST
path: "/v1/products/{product}/onboard"
tags: ["Account"]
---

# Self-service product onboarding (Supabase-authed): activate the free tier + mint the first API key

`POST /v1/products/{product}/onboard`

## Request

- Base URL: `https://api.algenta.ai`
- URL: `https://api.algenta.ai/v1/products/{product}/onboard`
- Auth: none declared

Called by `<product> login` with a Supabase access_token. The product comes from the URL path (validated against the product registry — an unknown product 404s), never a request body. Verifies the token, resolves-or-creates the caller's org on that product's free tier (so the device license carries `products.<product>`), and returns a freshly minted API key bound to the caller's own membership. Idempotent per identity at the org level; never downgrades a paid plan.

## Path parameters

- `product` string, required

## Headers

- `authorization` string, nullable

## Request body

- TelysOnboardRequest
  - `name` string, nullable
  - `product` string, nullable
  - `plan` string, nullable

## Response `201`

Successful Response

- APIKeyCreated: Returned once at key creation — raw key shown here only.
  - `id` string, uuid, required
  - `label` string, required
  - `key_prefix` string, required
  - `device_limit` integer, required: Max registered devices for this key on the local runtime path. 0 preserves the plan's unlimited or no-local-runtime behavior.
  - `raw_key` string, required: The full API key — shown ONCE, store it securely.
  - `created_at` string, date-time, required
  - `expires_at` string, date-time, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/codna/apis/algenta-api.md) · [All operations](https://skmtc.dev/codna/apis/algenta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/codna/apis/algenta-api/revisions/35d30f84a5df?raw)
