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

# Get a job

> A long task a call started: whether it is still running, how far it got, what it produced and what it was charged. Any key of the organization that started it can read it. Its status is refreshed at most every 15 seconds, so poll no faster. Free, with its own limit, so polling never spends the account calls'.



## OpenAPI

````yaml /openapi.json get /v1/jobs/{jobId}
openapi: 3.1.0
info:
  title: outbound.dev API
  version: v1
  description: Find people and companies, and see what every call costs, with one API key.
servers:
  - url: https://api.outbound.dev
security: []
tags:
  - name: People
    description: >-
      Search people with filters, a saved search or a plain-language query,
      count matches and look up filter values.
  - name: Companies
    description: >-
      Search companies, count matches, name one company by its name, domain or
      LinkedIn page, and list its people.
  - name: Saved searches
    description: Keep a search under a title and run it again, for people or for companies.
  - name: Jobs
    description: >-
      Long tasks a call started: their progress, what they produced and what
      they were charged.
  - name: Account
    description: >-
      The calling key and its organization, its rate limits, and revoking the
      key.
  - name: Billing
    description: The balance, the ledger of every change to it, and the price list.
  - name: Usage and requests
    description: >-
      Calls and spend by day, and the record of every request of the last 30
      days.
paths:
  /v1/jobs/{jobId}:
    get:
      tags:
        - Jobs
      summary: Get a job
      description: >-
        A long task a call started: whether it is still running, how far it got,
        what it produced and what it was charged. Any key of the organization
        that started it can read it. Its status is refreshed at most every 15
        seconds, so poll no faster. Free, with its own limit, so polling never
        spends the account calls'.
      operationId: getJobsJobId
      parameters:
        - name: jobId
          in: path
          required: true
          description: The job's id, as the call that started it answered.
          schema:
            type: string
            minLength: 24
            maxLength: 24
            pattern: ^[0-9a-fA-F]+$
      responses:
        '200':
          description: The job.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
            X-Charged-Usd:
              $ref: '#/components/headers/ChargedUsd'
            X-Balance-Usd:
              $ref: '#/components/headers/BalanceUsd'
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
          content:
            application/json:
              schema:
                type: object
                required:
                  - id
                  - type
                  - status
                  - units
                  - createdAt
                properties:
                  id:
                    type: string
                  type:
                    type: string
                    enum:
                      - email_verification
                    description: What the job does.
                  status:
                    type: string
                    enum:
                      - running
                      - succeeded
                      - failed
                      - cancelled
                    description: >-
                      `running` until the job ends as `succeeded`, `failed` or
                      `cancelled`.
                  progress:
                    type: object
                    description: How far the job got. Absent until it reports progress.
                    properties:
                      done:
                        type: integer
                      total:
                        type: integer
                  units:
                    type: array
                    description: What the job produced so far, by price item.
                    items:
                      type: object
                      properties:
                        item:
                          type: string
                        units:
                          type: integer
                  chargedUsd:
                    type: string
                    description: >-
                      What the job was charged, in US dollars as an exact
                      six-decimal string. Present once it ended.
                  createdAt:
                    type: string
                    format: date-time
                  finishedAt:
                    type: string
                    format: date-time
                    description: When the job ended. Absent while it runs.
              example:
                id: 6a1f0c2b9d4e8a7f3c5b2e14
                type: email_verification
                status: running
                progress:
                  done: 120
                  total: 500
                units:
                  - item: email_verification
                    units: 118
                createdAt: '2026-11-14T10:00:00.000Z'
        '429':
          $ref: '#/components/responses/RateLimited'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/ServerError'
      security:
        - apiKey: []
components:
  headers:
    RequestId:
      description: The request's id. Quote it when you write to support.
      schema:
        type: string
        example: req_6a1f0c2b9d4e8a7f3c5b2e10
    ChargedUsd:
      description: What this call cost, in US dollars as an exact six-decimal string.
      schema:
        type: string
        example: '0.000500'
    BalanceUsd:
      description: >-
        The organization's balance after this call, in US dollars as an exact
        six-decimal string.
      schema:
        type: string
        example: '9.999500'
    RateLimitLimit:
      description: >-
        The calls allowed in the window of the route's limit with the fewest
        calls left.
      schema:
        type: integer
        example: 20
    RateLimitRemaining:
      description: The calls left in that window.
      schema:
        type: integer
        example: 19
    RateLimitReset:
      description: Seconds until that window resets.
      schema:
        type: integer
        example: 42
    RetryAfter:
      description: Seconds to wait before calling again.
      schema:
        type: integer
        example: 42
  responses:
    RateLimited:
      description: >-
        Too many calls. Wait the seconds in Retry-After, then call again. The
        body is empty.
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        RateLimit-Limit:
          $ref: '#/components/headers/RateLimitLimit'
        RateLimit-Remaining:
          $ref: '#/components/headers/RateLimitRemaining'
        RateLimit-Reset:
          $ref: '#/components/headers/RateLimitReset'
    Error:
      description: The request was refused. The body names the reason in `error.code`.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: >-
        Something failed on our side and nothing was charged. Retry with
        backoff; quote X-Request-Id if it persists. The body is empty.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - doc_url
          properties:
            code:
              type: string
              description: >-
                Stable and machine-readable: branch on it. It never changes
                meaning.
            message:
              type: string
              description: >-
                A human-readable explanation for logs. It may be reworded at any
                time.
            param:
              type: string
              description: The request field the error is about, when there is one.
            doc_url:
              type: string
              description: The code's entry in the errors reference.
            request_id:
              type: string
              description: >-
                The request's id, as in the X-Request-Id header. Quote it to
                support.
      example:
        error:
          code: insufficient_balance
          message: Your balance cannot cover this call. Add funds and try again.
          doc_url: https://docs.outbound.dev/errors#insufficient_balance
          request_id: req_6a1f0c2b9d4e8a7f3c5b2e10
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        An API key from the console, starting `ob_live_`, sent as
        `Authorization: Bearer <key>`.

````

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