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

# Poll or delete a visual-reading job



## OpenAPI

````yaml /openapi.public.json get /api/v3/visual-readings/jobs/{jobId}
openapi: 3.1.0
info:
  title: AstroM8 Public API
  version: 1.1.0
  description: >-
    Astrology calculations, reports, customer delivery, and enterprise
    workflows. Each operation declares whether it uses an API key or a customer
    session bearer token.
servers:
  - url: https://api.astrom8.com
    description: Production
security: []
tags:
  - name: Western
    description: Natal, relationship, return, progression, and transit calculations.
  - name: Vedic
    description: Lahiri sidereal Vedic calculations, matching, timing, and remedies.
  - name: Thai Astrology
    description: Thai calendar, auspicious timing, lunar, festival, and wheel tools.
  - name: Chinese & Korean
    description: BaZi, Qi Men Dun Jia, and Saju calculations.
  - name: Horoscopes
    description: Published daily and range horoscope content.
  - name: Reports
    description: Branded report generation and asynchronous job polling.
  - name: Tarot & Numerology
    description: Tarot spreads and Pythagorean numerology.
  - name: Uranian
    description: Uranian charts, midpoints, and planetary pictures.
  - name: Developer workflow
    description: Preflight capability eligibility and credit estimates.
  - name: Visual readings
    description: >-
      Private Palm and Face Reading upload, preflight, and asynchronous job
      workflows.
  - name: Customer reports
    description: Session-authenticated report jobs and reusable brand profiles.
  - name: Customer delivery
    description: Session-authenticated webhooks and scheduled horoscope delivery.
  - name: Customer visual readings
    description: >-
      Session-authenticated visual reading jobs, economics, and delivery
      subscriptions.
  - name: Cultural Intelligence
    description: >-
      Enterprise API-key workflows for encrypted profiles, teams, and campaign
      content.
paths:
  /api/v3/visual-readings/jobs/{jobId}:
    get:
      tags:
        - Visual readings
      summary: Poll or delete a visual-reading job
      operationId: getVisualReadingJob
      parameters:
        - name: jobId
          in: path
          required: true
          schema:
            type: string
            pattern: ^vrj_[a-f0-9]{24}$
            description: Visual-reading job id.
      responses:
        '200':
          description: >-
            Job status and signed JSON, hosted HTML, or PDF artifacts where
            purchased and ready.
          content:
            application/json:
              schema:
                type: object
                properties:
                  job:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: ^vrj_[a-f0-9]{24}$
                        description: Visual-reading job id.
                      family:
                        type: string
                        enum:
                          - face
                          - palm
                      sku:
                        type: string
                        enum:
                          - json
                          - branded
                          - premium
                      locale:
                        type: string
                        enum:
                          - th
                          - en
                      status:
                        type: string
                        enum:
                          - queued
                          - running
                          - succeeded
                          - failed
                          - deleted
                      stage:
                        type:
                          - string
                          - 'null'
                        enum:
                          - validating
                          - analyzing
                          - rules
                          - generating
                          - rendering
                          - null
                      credits:
                        type: integer
                      credits_refunded:
                        type: integer
                      error_code:
                        type:
                          - string
                          - 'null'
                      created_at:
                        type:
                          - string
                          - 'null'
                        format: date-time
                      started_at:
                        type:
                          - string
                          - 'null'
                        format: date-time
                      finished_at:
                        type:
                          - string
                          - 'null'
                        format: date-time
                    required:
                      - id
                      - family
                      - sku
                      - locale
                      - status
                      - credits
                      - credits_refunded
                  artifacts:
                    type: object
                    properties:
                      json:
                        type: object
                        properties:
                          status:
                            type: string
                          url:
                            type: string
                            format: uri
                          valid_for_seconds:
                            type: integer
                        required:
                          - status
                      hosted:
                        type: object
                        properties:
                          status:
                            type: string
                          url:
                            type: string
                            format: uri
                          valid_for_seconds:
                            type: integer
                        required:
                          - status
                      pdf:
                        type: object
                        properties:
                          status:
                            type: string
                          url:
                            type: string
                            format: uri
                          valid_for_seconds:
                            type: integer
                        required:
                          - status
                    required:
                      - json
                      - hosted
                      - pdf
                required:
                  - job
                  - artifacts
        '404':
          description: Job not owned by the API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    JsonError:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          description: >-
            Stable slug (e.g. unauthorized, payment_required,
            internal_server_error).
        message:
          type: string
          description: Human-readable message safe for clients.
        code:
          type: string
          description: Optional provider-specific code.
        request_id:
          type: string
          description: Correlation id when middleware sets it.
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      description: Use the raw API key as the Bearer token, or send X-API-Key instead.

````