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

> ## Agent Instructions
> Treat availability labels as authoritative. Do not present planned surfaces as live.
> The product MCP can act on Actual Jobs; the documentation MCP cannot.

# Join the waitlist

> Registers an email address for Actual early access. Repeated addresses return the same response and do not reveal prior membership.



## OpenAPI

````yaml /openapi/actual-v1.openapi.json post /v1/waitlist
openapi: 3.1.0
info:
  description: >-
    Actual coordinates requests toward verified physical outcomes. Availability
    in this contract is authoritative.
  license:
    name: Proprietary
    url: https://askactual.com/terms
  title: Actual API
  version: 1.0.0
servers:
  - description: Production
    url: https://api.askactual.com
security: []
tags:
  - description: Unauthenticated early-access registration.
    name: Waitlist
paths:
  /v1/waitlist:
    post:
      tags:
        - Waitlist
      summary: Join the early-access waitlist
      description: >-
        Registers an email address for Actual early access. Repeated addresses
        return the same response and do not reveal prior membership.
      operationId: joinWaitlist
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JoinWaitlistRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JoinWaitlistResponse'
          description: JoinWaitlistResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidJsonResponse'
          description: InvalidJsonResponse
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidEmailResponse'
          description: InvalidEmailResponse
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WaitlistUnavailableResponse'
          description: WaitlistUnavailableResponse
      security: []
components:
  schemas:
    JoinWaitlistRequest:
      additionalProperties: false
      properties:
        email:
          allOf:
            - minLength: 3
            - maxLength: 254
            - pattern: ^[^@\s]+@[^@\s.]+(\.[^@\s.]+)+$
          type: string
        source:
          anyOf:
            - enum:
                - landing
              type: string
      required:
        - email
        - source
      type: object
    JoinWaitlistResponse:
      additionalProperties: false
      properties:
        status:
          anyOf:
            - enum:
                - joined
              type: string
      required:
        - status
      type: object
    InvalidJsonResponse:
      additionalProperties: false
      properties:
        error:
          anyOf:
            - enum:
                - invalid_json
              type: string
      required:
        - error
      type: object
    InvalidEmailResponse:
      additionalProperties: false
      properties:
        error:
          anyOf:
            - enum:
                - invalid_email
              type: string
      required:
        - error
      type: object
    WaitlistUnavailableResponse:
      additionalProperties: false
      properties:
        error:
          anyOf:
            - enum:
                - unavailable
              type: string
      required:
        - error
      type: object

````