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

# Verify subdomain

> Trigger manual verification for a subdomain.

Triggers an on-demand DNS check instead of waiting for the next background check. Use it right after you add your DNS records to move the subdomain forward without waiting.

This endpoint is idempotent: if the check doesn't advance the subdomain, or the subdomain is already `active`, it still returns `200` with the current state. It's rate limited per subdomain, so call it sparingly rather than in a tight loop. To poll for status, use [Get subdomain](/reference/subdomainscontroller_findone) instead.


## OpenAPI

````yaml reference/management-api_2025-11-20.json POST /subdomains/{id}/verify
openapi: 3.0.0
info:
  title: Management API
  description: >-
    Managment API allows you to manage your Fingerprint account and applications
    programmatically from a server environment.
  version: '2025-11-20'
  contact: {}
servers:
  - url: https://management-api.fpjs.io
security:
  - Management-API-key: []
tags: []
paths:
  /subdomains/{id}/verify:
    post:
      tags:
        - subdomains
      summary: Verify subdomain
      description: Trigger manual verification for a subdomain.
      operationId: SubdomainsController_verify
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
        - name: X-API-Version
          in: header
          description: Management API version.
          example: '2025-11-20'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Subdomain object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/32c18b7e424f401c718c9'
        '401':
          description: 'Error: Invalid API key.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiExceptionDto'
        '404':
          description: Subdomain with the given ID was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiExceptionDto'
        '429':
          description: 'Error: API key has exceeded its rate limit.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiExceptionDto'
components:
  schemas:
    32c18b7e424f401c718c9:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/SubdomainResponseDto'
      required:
        - data
    ApiExceptionDto:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/BaseApiExceptionDto'
      required:
        - error
    SubdomainResponseDto:
      type: object
      properties:
        id:
          type: string
          description: Subdomain ID
          example: certv2_a1b2c3d4e5f6
        subdomain:
          type: string
          description: Subdomain hostname
          example: metrics.yourwebsite.com
        status:
          type: string
          enum:
            - pending
            - active
            - timed_out
            - failed
          description: >-
            Current subdomain status. `pending` = DNS/certificate setup in
            progress; `active` = live and serving traffic; `timed_out` = setup
            timed out (usually the required DNS records were never added) — safe
            to delete and recreate; `failed` = terminal failure.
        created_at:
          format: date-time
          type: string
          description: When the subdomain was created
          example: '2026-03-05T14:00:00.000Z'
        updated_at:
          format: date-time
          type: string
          description: When the subdomain was last updated
          example: '2026-03-05T14:35:00.000Z'
        webhook_url:
          type: string
          nullable: true
          description: >-
            HTTPS URL receiving a signed POST callback on every status change.
            Null when not configured. Set at creation only — subdomains are
            immutable.
          example: https://customer.com/hooks/fp-subdomain
        dns_records:
          $ref: '#/components/schemas/DnsRecordsDto'
      required:
        - id
        - subdomain
        - status
        - created_at
        - updated_at
        - dns_records
    BaseApiExceptionDto:
      type: object
      properties:
        message:
          type: string
          description: Verbal description of the error.
        code:
          type: string
          description: Error code.
      required:
        - message
        - code
    DnsRecordsDto:
      type: object
      properties:
        verification:
          $ref: '#/components/schemas/DnsRecordDto'
        routing:
          type: array
          items:
            $ref: '#/components/schemas/DnsRecordDto'
      required:
        - verification
        - routing
    DnsRecordDto:
      type: object
      properties:
        type:
          type: string
          description: DNS record type the customer must create.
          example: CNAME
        host:
          type: string
          description: Host/name of the DNS record.
          example: _acme-challenge.metrics.yourwebsite.com
        value:
          type: string
          description: Value the DNS record must point to.
          example: dcv.fpjs.io
        status:
          type: string
          enum:
            - pending_validation
            - validated
            - failed
          description: Whether this individual record has been detected and validated yet.
          example: pending_validation
      required:
        - type
        - host
        - value
        - status
  securitySchemes:
    Management-API-key:
      scheme: bearer
      bearerFormat: JWT
      type: http

````