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

# Get a job

> One read for the whole lifecycle: state while the job runs, the transcript in `result` once it completes, the reason in `error` once it fails. Jobs are retained for seven days.



## OpenAPI

````yaml openapi.json GET /v1/jobs/{id}
openapi: 3.1.0
info:
  title: Helve API
  version: 1.0.0
  description: >-
    One key, one request shape, one bill for the tools your software calls: web
    search across eleven engines, page extraction across nine, and transcription
    across three. Every response says which provider served it, how the request
    was adjusted for that provider, and what it cost.
servers:
  - url: https://helve.dev
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Search
    description: >-
      Web search with one schema across Exa, Parallel, Tavily, Brave, Serper,
      Firecrawl, Linkup, Valyu, Jina, Octen, Perplexity, and the `fusion` panel.
  - name: Extract
    description: Fetch and clean pages by URL.
  - name: Transcription
    description: >-
      Durable speech-to-text jobs across AssemblyAI, Deepgram, and ElevenLabs.
      Submit a recording, poll the job.
paths:
  /v1/jobs/{id}:
    get:
      tags:
        - Transcription
      summary: Get a job
      description: >-
        One read for the whole lifecycle: state while the job runs, the
        transcript in `result` once it completes, the reason in `error` once it
        fails. Jobs are retained for seven days.
      operationId: getJob
      parameters:
        - schema:
            type: string
            pattern: ^job_[0-9a-f-]{36}$
            description: The job id returned when the recording was submitted.
          required: true
          description: The job id returned when the recording was submitted.
          name: id
          in: path
      responses:
        '200':
          description: >-
            Job state, with the transcript once completed or the error once
            failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    pattern: ^job_[0-9a-f-]{36}$
                  tool:
                    type: string
                    enum:
                      - transcription
                  status:
                    type: string
                    enum:
                      - queued
                      - running
                      - completed
                      - failed
                    description: >-
                      `queued` and `running` are in progress; `completed`
                      carries `result`; `failed` carries `error`.
                  provider:
                    type: string
                    enum:
                      - assemblyai
                      - deepgram
                      - elevenlabs
                  model:
                    type: string
                    nullable: true
                  attempt_status:
                    type: string
                    enum:
                      - queued
                      - submitting
                      - waiting
                      - unknown
                      - completed
                      - failed
                    description: >-
                      Where the current provider attempt is: `waiting` means the
                      provider accepted the audio and Helve is polling or
                      awaiting its callback; `unknown` means Helve is
                      reconciling an uncertain submission rather than re-sending
                      it.
                  created_at:
                    type: string
                    format: date-time
                  updated_at:
                    type: string
                    format: date-time
                  finished_at:
                    type: string
                    nullable: true
                    format: date-time
                    description: Set once the job is `completed` or `failed`.
                  result:
                    type: object
                    nullable: true
                    properties:
                      text:
                        type: string
                        description: >-
                          The complete transcript with punctuation, as the
                          provider produced it. Empty is valid for silence.
                      language:
                        type: string
                        pattern: ^[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8})*$
                        description: Detected or requested language tag.
                      duration_seconds:
                        type: number
                        minimum: 0
                        description: >-
                          Recording length when the provider reports it.
                          Transcription is billed on this.
                      words:
                        type: array
                        items:
                          type: object
                          properties:
                            text:
                              type: string
                            start:
                              type: number
                              minimum: 0
                              description: Seconds from the start of the recording.
                            end:
                              type: number
                              minimum: 0
                              description: Seconds from the start of the recording.
                            speaker_id:
                              type: string
                              pattern: ^speaker_(0|[1-9]\d*)$
                              description: >-
                                Present when `diarize` was set. Speaker ids are
                                local to this transcript.
                            confidence:
                              type: number
                              minimum: 0
                              maximum: 1
                              description: >-
                                Provider-reported 0–1 confidence. Not comparable
                                across providers.
                          required:
                            - text
                            - start
                            - end
                          additionalProperties: false
                        description: Per-word timings, omitted when `timestamps` is `none`.
                      provider:
                        type: string
                        enum:
                          - assemblyai
                          - deepgram
                          - elevenlabs
                      model:
                        type: string
                        nullable: true
                      usage:
                        type: object
                        properties:
                          cost_usd:
                            type: number
                            minimum: 0
                            description: What this transcription debited from your balance.
                          credits:
                            type: integer
                            minimum: 0
                        required:
                          - cost_usd
                          - credits
                        additionalProperties: false
                        description: >-
                          Present once the provider reported a duration: the
                          charge for this transcription.
                    required:
                      - text
                      - provider
                      - model
                    additionalProperties: false
                    description: The transcript, present only when `status` is `completed`.
                  error:
                    type: object
                    nullable: true
                    properties:
                      type:
                        type: string
                      message:
                        type: string
                    required:
                      - type
                      - message
                    additionalProperties:
                      nullable: true
                    description: >-
                      Why the job failed, present only when `status` is
                      `failed`.
                required:
                  - id
                  - tool
                  - status
                  - provider
                  - model
                  - attempt_status
                  - created_at
                  - updated_at
                  - finished_at
                  - result
                  - error
                additionalProperties: false
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - unauthorized
                          - invalid_request
                          - provider_not_available
                          - provider_not_configured
                          - provider_error
                          - not_found
                          - insufficient_credits
                        description: >-
                          Stable machine-readable category. `invalid_request`
                          carries validation issues in `detail`;
                          `provider_error` carries the provider's own error
                          body.
                      message:
                        type: string
                        description: Human-readable explanation.
                      detail:
                        nullable: true
                        description: >-
                          Validation issues for `invalid_request`; the
                          provider's error body for `provider_error`.
                    required:
                      - type
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - unauthorized
                          - invalid_request
                          - provider_not_available
                          - provider_not_configured
                          - provider_error
                          - not_found
                          - insufficient_credits
                        description: >-
                          Stable machine-readable category. `invalid_request`
                          carries validation issues in `detail`;
                          `provider_error` carries the provider's own error
                          body.
                      message:
                        type: string
                        description: Human-readable explanation.
                      detail:
                        nullable: true
                        description: >-
                          Validation issues for `invalid_request`; the
                          provider's error body for `provider_error`.
                    required:
                      - type
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - unauthorized
                          - invalid_request
                          - provider_not_available
                          - provider_not_configured
                          - provider_error
                          - not_found
                          - insufficient_credits
                        description: >-
                          Stable machine-readable category. `invalid_request`
                          carries validation issues in `detail`;
                          `provider_error` carries the provider's own error
                          body.
                      message:
                        type: string
                        description: Human-readable explanation.
                      detail:
                        nullable: true
                        description: >-
                          Validation issues for `invalid_request`; the
                          provider's error body for `provider_error`.
                    required:
                      - type
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '404':
          description: Job not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - unauthorized
                          - invalid_request
                          - provider_not_available
                          - provider_not_configured
                          - provider_error
                          - not_found
                          - insufficient_credits
                        description: >-
                          Stable machine-readable category. `invalid_request`
                          carries validation issues in `detail`;
                          `provider_error` carries the provider's own error
                          body.
                      message:
                        type: string
                        description: Human-readable explanation.
                      detail:
                        nullable: true
                        description: >-
                          Validation issues for `invalid_request`; the
                          provider's error body for `provider_error`.
                    required:
                      - type
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '503':
          description: Durable execution or provider unavailable
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - unauthorized
                          - invalid_request
                          - provider_not_available
                          - provider_not_configured
                          - provider_error
                          - not_found
                          - insufficient_credits
                        description: >-
                          Stable machine-readable category. `invalid_request`
                          carries validation issues in `detail`;
                          `provider_error` carries the provider's own error
                          body.
                      message:
                        type: string
                        description: Human-readable explanation.
                      detail:
                        nullable: true
                        description: >-
                          Validation issues for `invalid_request`; the
                          provider's error body for `provider_error`.
                    required:
                      - type
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An API key from the dashboard, `sk_live_…`, sent as `Authorization:
        Bearer sk_live_…`.

````