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

# Initiate contact email verification

> Looks up an email address against your org's contact database. If a match is found,
generates a cryptographically strong 6-digit code, sends it to the address, and
returns a `requestId` and `verifyUrl` to complete the verification.

The code expires after 10 minutes and can only be used once.




## OpenAPI

````yaml /openapi.yaml post /api/contacts/verify-email
openapi: 3.0.3
info:
  title: Aptly API
  version: '1.0'
  description: >
    The Aptly API lets you read and write cards on any Aptly board from external
    systems.


    All requests require an API key passed as the `x-token` header.

    API keys are scoped to your company and work across all boards.
servers:
  - url: https://core-api.getaptly.com
    description: Production
security:
  - ApiKeyHeader: []
paths:
  /api/contacts/verify-email:
    post:
      tags:
        - Contacts
      summary: Initiate contact email verification
      description: >
        Looks up an email address against your org's contact database. If a
        match is found,

        generates a cryptographically strong 6-digit code, sends it to the
        address, and

        returns a `requestId` and `verifyUrl` to complete the verification.


        The code expires after 10 minutes and can only be used once.
      operationId: initiateContactVerification
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - email
              properties:
                email:
                  type: string
                  description: The email address to verify.
                emailSubject:
                  type: string
                  description: >-
                    Subject line for the verification email. Defaults to "Your
                    verification code".
                replyTo:
                  type: string
                  description: Reply-To address for the verification email.
                emailHtml:
                  type: string
                  description: >
                    Custom HTML body for the verification email. Supports two
                    placeholders:

                    `{{ verificationCode }}` — replaced with the 6-digit code.

                    `{{ expirationTime }}` — replaced with the expiry duration
                    (e.g. "10 minutes").
            example:
              email: jane@example.com
              emailSubject: Your access code
              replyTo: support@example.com
              emailHtml: >-
                <p>Your code is <strong>{{ verificationCode }}</strong>. It
                expires in {{ expirationTime }}.</p>
      responses:
        '200':
          description: Verification initiated — code sent to the email address.
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    type: string
                    description: Opaque ID used to complete the verification.
                  verifyUrl:
                    type: string
                    description: API path to POST the code to (relative URL).
              example:
                requestId: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
                verifyUrl: >-
                  /api/contacts/verify-email/a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4/confirm
        '400':
          description: Missing or invalid email field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No contact found with that email address.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: >-
            Verification request was created but the email could not be
            delivered (EMAIL_SEND_FAILURE).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - ApiKeyHeader: []
        - DelegateToken: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: x-token
    DelegateToken:
      type: apiKey
      in: header
      name: Authorization
      description: 'Delegate token issued by the platform. Format: `DelegateToken <token>`'

````