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

# Retrieve a verification code or link

> Auto Apply is an invite-only beta.

BLOCKS while polling the mailbox for the verification email belonging
to the given application, using the application's apply host and
provider as context to pick the right email. Some providers send a
one-time code, others a confirmation link — the response's type says
which was found: type code carries the code; for type link Jobo
clicks the confirmation link server-side (https-only, SSRF-guarded)
and returns it with link_visited / link_http_status. Pass type to
constrain what is accepted (default any). Status timeout means no
verification email arrived within wait_seconds — an expected outcome,
not an error.

Optional. This endpoint only saves you reading the inbox yourself —
an integration that resolves the code or link its own way submits it
through the same answers call and never needs a connected mailbox.

Call this the moment an application pauses on a one_time_code step:
the step's answer window is 60 seconds, so keep wait_seconds at the
default 45 to leave time to submit the code through the answers
endpoint. Keep your HTTP client timeout above wait_seconds.

The extracted code or link is validated server-side: it must appear
verbatim in the selected email. Email contents never leave the
extraction — only the code or link, sender, and subject of the matched
email are returned.




## OpenAPI

````yaml /openapi.yaml post /api/auto-apply/mailboxes/{id}/verification
openapi: 3.0.3
info:
  title: Jobo Enterprise API
  description: >
    The Jobo Enterprise API provides programmatic access to job listings,
    intelligent search,

    real-time feeds, geocoding services, and callback-driven job applications.

    Auto Apply is an invite-only beta; accounts without access receive 403

    auto_apply_not_enabled from create.
  version: '2026-08-12'
  contact:
    name: Jobo Support
    url: https://jobo.world
    email: support@jobo.world
  license:
    name: Proprietary — see terms of service
    url: https://jobo.world/terms
  termsOfService: https://jobo.world/terms
servers:
  - url: https://connect.jobo.world
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Jobs
    description: Search and retrieve job listings
  - name: Feed
    description: Bulk job feeds and expiration tracking
  - name: Companies
    description: Company profiles and company-scoped job listings
  - name: Auto Apply
    description: >-
      Coming soon: profileless applications answered through signed, typed HTTPS
      callbacks
  - name: Locations
    description: Geocoding and location services
paths:
  /api/auto-apply/mailboxes/{id}/verification:
    post:
      tags:
        - Auto Apply
      summary: Retrieve a verification code or link
      description: |
        Auto Apply is an invite-only beta.

        BLOCKS while polling the mailbox for the verification email belonging
        to the given application, using the application's apply host and
        provider as context to pick the right email. Some providers send a
        one-time code, others a confirmation link — the response's type says
        which was found: type code carries the code; for type link Jobo
        clicks the confirmation link server-side (https-only, SSRF-guarded)
        and returns it with link_visited / link_http_status. Pass type to
        constrain what is accepted (default any). Status timeout means no
        verification email arrived within wait_seconds — an expected outcome,
        not an error.

        Optional. This endpoint only saves you reading the inbox yourself —
        an integration that resolves the code or link its own way submits it
        through the same answers call and never needs a connected mailbox.

        Call this the moment an application pauses on a one_time_code step:
        the step's answer window is 60 seconds, so keep wait_seconds at the
        default 45 to leave time to submit the code through the answers
        endpoint. Keep your HTTP client timeout above wait_seconds.

        The extracted code or link is validated server-side: it must appear
        verbatim in the selected email. Email contents never leave the
        extraction — only the code or link, sender, and subject of the matched
        email are returned.
      operationId: retrieveAutoApplyMailboxVerification
      parameters:
        - name: id
          in: path
          required: true
          description: Mailbox ID.
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MailboxVerificationRequest'
      responses:
        '200':
          description: 'The poll finished: status found with the code, or status timeout.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MailboxVerificationResult'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Mailbox or application not found, or owned by another account.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '409':
          description: >-
            The mailbox is not connected (mailbox_not_connected) or its
            credentials were rejected (mailbox_auth_failed) — reconnect the
            mailbox.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '422':
          description: application_id missing or invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-codeSamples:
        - lang: cURL
          source: >
            curl -X POST
            "https://connect.jobo.world/api/auto-apply/mailboxes/8b6c2f1a-1c9e-4b7f-9d2e-5a1b3c4d5e6f/verification"
            \
              -H "X-Api-Key: $JOBO_API_KEY" \
              -H "Content-Type: application/json" \
              --max-time 120 \
              -d '{"application_id": "6f9227f6-b704-4b58-a553-79773a041933", "wait_seconds": 45}'
components:
  schemas:
    MailboxVerificationRequest:
      type: object
      required:
        - application_id
      properties:
        application_id:
          type: string
          format: uuid
          description: >-
            The application whose verification email should be found. Its apply
            host and provider give the extraction its context.
        wait_seconds:
          type: integer
          nullable: true
          default: 45
          minimum: 5
          maximum: 75
          description: >-
            How long to keep polling before answering timeout. Values are
            clamped server-side.
        type:
          type: string
          enum:
            - code
            - link
            - any
          nullable: true
          default: any
          description: >-
            What the verification email is expected to carry. code = only a
            one-time code satisfies the request; link = only a confirmation link
            (clicked server-side); any = whichever the email carries.
    MailboxVerificationResult:
      type: object
      required:
        - api_version
        - status
        - waited_seconds
      properties:
        api_version:
          $ref: '#/components/schemas/AutoApplyApiVersion'
        status:
          type: string
          enum:
            - found
            - timeout
          description: >-
            timeout means no verification email arrived — an expected outcome,
            not an error.
        type:
          type: string
          enum:
            - code
            - link
          nullable: true
          description: >-
            What the verification email carried. Only present when status is
            found.
        code:
          type: string
          nullable: true
          description: The verification code. Only present when type is code.
        link:
          type: string
          format: uri
          nullable: true
          description: >-
            The confirmation link found in the email. Only present when type is
            link.
        link_visited:
          type: boolean
          nullable: true
          description: >-
            Whether Jobo successfully clicked the confirmation link server-side.
            When false, click the returned link yourself.
        link_http_status:
          type: integer
          nullable: true
          description: Final HTTP status of the server-side click, when one was made.
        email_from:
          type: string
          nullable: true
        email_subject:
          type: string
          nullable: true
        email_received_at:
          type: string
          format: date-time
          nullable: true
        waited_seconds:
          type: integer
      example:
        api_version: '2026-08-12'
        status: found
        type: code
        code: AB12CD34
        email_from: no-reply@greenhouse.io
        email_subject: Your verification code
        email_received_at: '2026-08-15T09:30:12Z'
        waited_seconds: 9
    ProblemDetails:
      type: object
      description: Problem Details object returned for error responses.
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
        code:
          type: string
          nullable: true
          description: Stable machine-readable code for Auto Apply domain errors.
        api_version:
          $ref: '#/components/schemas/AutoApplyApiVersion'
    AutoApplyApiVersion:
      type: string
      description: Version of the profileless Auto Apply API contract.
      enum:
        - '2026-08-12'
      example: '2026-08-12'
    ApiRateLimitError:
      type: object
      description: API-key request-window rejection returned by rate-limit middleware.
      required:
        - error
        - detail
        - group
        - retry_after_seconds
      properties:
        error:
          type: string
          example: Rate limit exceeded
        detail:
          type: string
        group:
          type: string
          example: AutoApply
        retry_after_seconds:
          type: integer
          minimum: 0
          nullable: true
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    TooManyRequests:
      description: Rate limit exceeded.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
            minimum: 0
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
        application/json:
          schema:
            $ref: '#/components/schemas/ApiRateLimitError'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: API key provided by Jobo

````