---
title: "Provision Reseller Workspace"
method: POST
path: "/v1/smb/reseller/workspaces"
tags: ["smb"]
---

# Provision Reseller Workspace

`POST /v1/smb/reseller/workspaces`

## Request

- Base URL: `https://api.elevenlabs.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.elevenlabs.io/v1/smb/reseller/workspaces`
- Auth: none declared

## Headers

- `xi-api-key` string, nullable: Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

## Request body

- ProvisionResellerWorkspaceRequest
  - `business_name` string, required
  - `subscription` ProvisionResellerWorkspaceSubscription
    - `tier_id` string, required
    - `billing_period` 'monthly_period' | 'annual_period'
  - `phone_number` string, nullable: A free number from the reseller's phone pool, reserved for the workspace until onboarding binds it to the receptionist.
  - `members` TeamInviteRequest[]: People to invite once the workspace exists, capped by the tier's team size. Best-effort: each outcome is in `member_results`.
    - `email` string, required
    - `role` 'workspace_admin' | 'workspace_member'

## Response `200`

Successful Response

- ProvisionResellerWorkspaceResponse
  - `workspace_id` string, required
  - `business_name` string, required
  - `billing_tier` string, nullable, required
  - `receptionist_count` integer, required
  - `calls_last_30_days` integer, required
  - `created_at_unix` integer, required
  - `subscription` ResellerWorkspaceSubscription: A reseller-managed paid subscription, as the reseller can act on it. Present only for a workspace the reseller actually sells to: untiered and trial workspaces have no subscription to change or end, and are assigned to instead. Projected from ``SMBBillingState`` rather than read from Stripe, so it is the same state the grant path wrote.
    - `tier_id` string, required
    - `billing_period` 'monthly_period' | 'annual_period', nullable, required: Cadence being billed. None only for a subscription mid-provisioning.
    - `billing_period_end_unix` integer, required: When the current period ends, and so when a deferred change lands.
    - `cancel_at_unix` integer, nullable: When Stripe will end the subscription. Set means a pending unassignment the reseller can still undo.
    - `pending_downgrade_tier` string, nullable: Tier this workspace drops to at the period boundary, if a downgrade is already scheduled.
    - `pending_downgrade_at_unix` integer, nullable: When that scheduled downgrade takes effect.
  - `has_payment_issue` boolean: A charge for this workspace is unpaid. Assigning or changing a tier is refused until it clears, so surface it rather than letting it fail.
  - `member_results` TeamInviteResult[]
    - `email` string, required
    - `outcome` 'invited' | 'failed', required
    - `error_status` string, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-28** `0e2bfc751634`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/changes/v1/smb/reseller/workspaces/post.md)

---

[API](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation.md) - [All operations](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/revisions/0e2bfc751634?raw)
