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

# Poll an acquisition

> Acquisition state (queued → acquiring → normalizing → validating → publishing → ready, or failed), attempts, sanitized tool and validation events, payments, and the published datasetVersion once ready. Failed paid acquisitions are refunded. Polling never charges.



## OpenAPI

````yaml /openapi.json get /api/v1/data/requests/{id}
openapi: 3.1.0
info:
  title: Verdant Climate Data API
  version: 1.0.0
  description: >-
    Versioned climate data with preserved meaning. Discover → inspect → resolve
    → query. Small published-data queries return values directly, with explicit
    units, spatial support, missingness and provenance. Reading published data
    requires no credentials. Missing coverage is acquired from the source on
    request through /api/v1/data/requests, paid per acquisition with MPP.
    Consult capabilities before planning a workflow.
servers:
  - url: https://api.verdant-ai.com
    description: Production
security: []
tags:
  - name: Discovery
  - name: Queries
  - name: Observations
  - name: Raster
  - name: Service
paths:
  /api/v1/data/requests/{id}:
    get:
      tags:
        - Queries
      summary: Poll an acquisition
      description: >-
        Acquisition state (queued → acquiring → normalizing → validating →
        publishing → ready, or failed), attempts, sanitized tool and validation
        events, payments, and the published datasetVersion once ready. Failed
        paid acquisitions are refunded. Polling never charges.
      operationId: getDataRequest
      parameters:
        - name: id
          in: path
          required: true
          description: Request ID from POST /api/v1/data/requests.
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Current acquisition state.
          headers:
            Retry-After:
              description: Present while processing.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataRequestStatus'
        '404':
          description: request_not_found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Data service unavailable. Retry with exponential backoff.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    DataRequestStatus:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        status:
          type: string
          enum:
            - queued
            - acquiring
            - normalizing
            - validating
            - publishing
            - ready
            - failed
        cache:
          type: string
          const: miss
        created:
          description: False when an identical in-flight or recent acquisition was reused.
          type: boolean
        coverageDigest:
          type: string
          pattern: ^[a-f0-9]{64}$
        target:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        datasetVersion:
          anyOf:
            - type: string
              pattern: ^[a-zA-Z0-9_-]{1,128}$
            - type: 'null'
        error:
          anyOf:
            - type: object
              properties:
                reason:
                  type: string
              required:
                - reason
              additionalProperties: {}
            - type: 'null'
        createdAt:
          type: string
        updatedAt:
          type: string
        job:
          anyOf:
            - type: object
              properties:
                status:
                  type: string
                attempts:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                maxAttempts:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
              required:
                - status
                - attempts
                - maxAttempts
              additionalProperties: false
            - type: 'null'
        events:
          type: array
          items:
            type: object
            properties:
              event:
                type: string
              details:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              at:
                type: string
            required:
              - event
              - details
              - at
            additionalProperties: false
        links:
          type: object
          properties:
            self:
              type: string
            query:
              type: string
            dataset:
              type: string
          additionalProperties: false
      required:
        - id
        - status
        - coverageDigest
        - target
        - datasetVersion
        - error
        - createdAt
        - updatedAt
        - links
      additionalProperties: false
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        issues:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              path:
                type: array
                items:
                  type:
                    - string
                    - number
              message:
                type: string
            required:
              - code
              - path
              - message
            additionalProperties: {}
      required:
        - error
      additionalProperties: {}

````

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