> ## Documentation Index
> Fetch the complete documentation index at: https://help.withallo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create account

> Creates an Allo account for one of your customers, provisions a phone number, and returns a scoped API key for the account. Requires the `PARTNER` scope. The account is billed as one seat on your subscription.

<Note>
  **Required scope:** `PARTNER`
</Note>

Creates an Allo account for one of your customers and provisions a phone number for it. The response returns a **scoped API key** for the new account (shown only once) alongside the provisioned number(s) and status.

* `number_preference.country` is required (ISO country code, e.g. `FR`); `number_preference.prefix` is optional (e.g. `+337`).
* A phone number is secured **before** the account is created — if none can be assigned or purchased, the request fails with `NO_NUMBER_AVAILABLE` and nothing is created.
* The account is billed as one seat on your subscription; no charge is made to your customer.
* If the email or personal mobile already belongs to an Allo account, the request fails with `PARTNER_ACCOUNT_ALREADY_EXISTS`.


## OpenAPI

````yaml POST /v2/api/partner/accounts
openapi: 3.0.3
info:
  title: Allo API
  description: >-
    Allo API provides programmatic access to your Allo account, allowing you to
    manage webhooks, retrieve calls and contacts, and send SMS messages.


    All requests to `/v1/api/**` endpoints automatically go through quota
    checking and scope validation.
  version: 1.0.0
  contact:
    name: Allo Support
servers:
  - url: https://api.withallo.com
    description: Production server
security: []
tags:
  - name: Summary Templates
    description: >-
      Manage call summary templates that control how AI-generated call summaries
      are structured for your team.
  - name: Webhooks
    description: >-
      Manage webhook endpoints to receive real-time notifications about events
      in your Allo account. Each endpoint subscribes to one or more event topics
      and is verified with a signing secret.
  - name: Calls
    description: >-
      Retrieve and search call records with filtering and pagination. Filter
      calls by your Allo phone number.
  - name: Contacts
    description: >-
      Search and retrieve contact information with sorting and pagination.
      Includes engagement level tracking.
  - name: SMS
    description: Send SMS messages to phone numbers using your Allo numbers.
  - name: Phone Numbers
    description: Retrieve information about your Allo phone numbers.
  - name: Analytics
    description: Pre-computed call metrics, team performance, and outbound dial funnel
  - name: CRM
    description: Manage people, companies, and deals in your CRM.
paths:
  /v2/api/partner/accounts:
    post:
      tags:
        - Partner
      summary: Create account
      description: >-
        Creates an Allo account for one of your customers, provisions a phone
        number, and returns a scoped API key for the account. Requires the
        `PARTNER` scope. The account is billed as one seat on your subscription.
      operationId: createPartnerAccount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - email
                - name
                - personal_mobile
                - number_preference
              properties:
                email:
                  type: string
                  description: Becomes the account's login.
                  example: client@example.com
                name:
                  type: string
                  example: Jane Doe
                personal_mobile:
                  type: string
                  description: >-
                    Mandatory — an existing mobile the secondary number attaches
                    to.
                  example: '+33612345678'
                partner_client_ref:
                  type: string
                  description: >-
                    Your own reference for this customer. Echoed back and on the
                    activation webhook.
                  example: crm-12345
                number_preference:
                  type: object
                  required:
                    - country
                  properties:
                    country:
                      type: string
                      description: ISO country code.
                      example: FR
                    prefix:
                      type: string
                      nullable: true
                      example: '+337'
            example:
              email: client@example.com
              name: Jane Doe
              personal_mobile: '+33612345678'
              partner_client_ref: crm-12345
              number_preference:
                country: FR
                prefix: '+337'
      responses:
        '201':
          description: Account created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: usr_2Nf...
                      api_key:
                        type: string
                        nullable: true
                        description: >-
                          Scoped API key for the new account. Returned only on
                          create.
                        example: b1c2...
                      phone_numbers:
                        type: array
                        items:
                          type: string
                        example:
                          - '+33712345678'
                      status:
                        type: string
                        example: ACTIVE
                      activated:
                        type: boolean
                        description: True once the customer has signed in on a device.
                        example: false
                      partner_client_ref:
                        type: string
                        nullable: true
                        example: crm-12345
              example:
                data:
                  id: usr_2Nf...
                  api_key: b1c2...
                  phone_numbers:
                    - '+33712345678'
                  status: ACTIVE
                  activated: false
                  partner_client_ref: crm-12345
        '400':
          $ref: '#/components/responses/ApiValidationError'
        '401':
          $ref: '#/components/responses/ApiUnauthorized'
        '402':
          description: >-
            Billing error — could not add a seat to your subscription
            (PARTNER_SUBSCRIPTION_NOT_BILLABLE / PARTNER_BILLING_FAILED).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
        '403':
          description: The API key lacks the PARTNER scope.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
        '409':
          description: >-
            An account already exists (PARTNER_ACCOUNT_ALREADY_EXISTS) or no
            number is available (NO_NUMBER_AVAILABLE).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
        '429':
          $ref: '#/components/responses/ApiRateLimited'
      security:
        - ApiKeyAuth: []
components:
  responses:
    ApiValidationError:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiUnauthorized:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiRateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  schemas:
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
            code:
              type: string
            message:
              type: string
            retryable:
              type: boolean
            request_id:
              type: string
            retry_after_seconds:
              type: integer
              nullable: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization

````