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

# Create an account



## OpenAPI

````yaml /customer-openapi.json post /auth/register
openapi: 3.1.0
info:
  title: WazobiaMail API
  version: 1.0.0
  description: >-
    Customer-facing WazobiaMail API. Base URL
    https://app.wazobiamail.com/api/v1. Every response uses the {success,
    message, data} envelope. This specification covers only the public customer
    endpoints.
  contact:
    name: WazobiaMail Support
    url: https://wazobiamail.com/contact
servers:
  - url: https://app.wazobiamail.com/api/v1
security:
  - bearerAuth: []
tags:
  - name: Auth
    description: >-
      Sign up, sign in, tokens and sessions. No credentials needed except where
      a token is exchanged.
  - name: Account
    description: Profile, password, two-factor, notifications and account data.
  - name: Sending
    description: Sending API keys, messages, domains, SMTP access and engagement.
  - name: Mailboxes
    description: Hosted mailboxes and their credentials.
  - name: Relays
    description: Customer SMTP relay configurations.
  - name: Billing
    description: Plans, subscriptions, invoices, payments and email credits.
  - name: Support
    description: Support tickets.
  - name: Dashboard
    description: Usage overview and onboarding state.
paths:
  /auth/register:
    post:
      tags:
        - Auth
      summary: Create an account
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - email
                - password
              properties:
                email:
                  type: string
                  format: email
                  example: you@example.com
                password:
                  type: string
                  minLength: 12
                  example: CorrectHorse!Battery9Staple
                username:
                  type: string
                  example: you
                planId:
                  type: string
                  example: starter
                  description: >-
                    Selected plan id (free, starter, pro, business, enterprise,
                    custom, payg). The account starts active on Free.
      responses:
        '201':
          description: Account created; returns tokens and the account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthPayload'
      security: []
components:
  schemas:
    AuthPayload:
      type: object
      description: >-
        {success, message, data} where data holds accessToken, refreshToken and
        the account.
      properties:
        success:
          type: boolean
          example: true
        message:
          type: string
          example: Login successful
        data:
          type: object
          properties:
            accessToken:
              type: string
              example: ACCESS_TOKEN
            refreshToken:
              type: string
              example: REFRESH_TOKEN
            account:
              $ref: '#/components/schemas/Account'
    Account:
      type: object
      properties:
        accountId:
          type: integer
          example: 1
        email:
          type: string
          example: you@example.com
        name:
          type: string
          example: Ada
        planId:
          type: string
          example: starter
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      x-default: ACCESS_TOKEN

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.