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

# Check CV processing status

> Check the processing status of one or more CVs by their IDs. Use this endpoint to poll for completion after submitting CVs for analysis. Each requested ID is returned with a per-item status (`PENDING`, `COMPLETED`, `FAILED`, or `NOT_FOUND`).



## OpenAPI

````yaml /api-reference/openapi.json post /cvs/status
openapi: 3.1.0
info:
  title: Fribl API
  description: >-
    The Fribl API enables intelligent talent matching powered by AI. Analyze CVs
    and job descriptions from text or file uploads, search and manage skills,
    match candidates to positions with configurable scoring weights, and source
    candidate profiles from external databases. All document processing is
    asynchronous — submit documents for analysis, poll for status, and retrieve
    structured results when ready.
  version: 1.0.0
  contact:
    name: Fribl Support
    url: https://fribl.co
servers:
  - url: https://api-service.fribl.co/api/v1
    description: Production
security:
  - apiKey: []
tags:
  - name: CVs
    description: >-
      Upload, analyze, retrieve, update, and delete candidate CVs. CVs can be
      submitted as raw text or as PDF file uploads. Processing is asynchronous —
      use the status endpoint to track progress.
  - name: Jobs
    description: >-
      Upload, analyze, retrieve, update, and delete job descriptions. Jobs can
      be submitted as raw text or as PDF file uploads. Processing is
      asynchronous — use the status endpoint to track progress.
  - name: Matching
    description: >-
      Match analyzed CVs against job descriptions using AI-powered scoring.
      Configure weights across experience, hard skills, soft skills, and
      education dimensions to tailor match results to your hiring priorities.
  - name: Sourcing
    description: >-
      Search for candidate profiles from external sources, retrieve cached
      search results, and ingest selected profiles into your Fribl workspace for
      matching.
  - name: Skills
    description: >-
      Search the Fribl skills taxonomy and retrieve available languages for
      skill translation. These endpoints are publicly accessible and do not
      require authentication.
  - name: Tokens
    description: >-
      Inspect your workspace's usage-based token balance, review the ledger of
      every charge and refund, and read the live per-action price list. Billable
      endpoints deduct tokens and return 402 when the balance is insufficient.
      Tokens are purchased and managed in the Fribl Console
      (https://console.fribl.co).
paths:
  /cvs/status:
    post:
      tags:
        - CVs
      summary: Check CV processing status
      description: >-
        Check the processing status of one or more CVs by their IDs. Use this
        endpoint to poll for completion after submitting CVs for analysis. Each
        requested ID is returned with a per-item status (`PENDING`, `COMPLETED`,
        `FAILED`, or `NOT_FOUND`).
      operationId: checkCvStatus
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatusCheckBody'
      responses:
        '200':
          description: Status of the requested CVs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  length:
                    type: integer
                    description: Number of status items returned.
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/StatusItem'
                required:
                  - message
                  - length
                  - data
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    StatusCheckBody:
      type: object
      description: >-
        Request body for checking processing status. The `ids` array must
        contain at least one identifier — empty arrays are rejected with 400.
      properties:
        ids:
          type: array
          minItems: 1
          items:
            type: string
            format: uuid
          description: List of document identifiers to check status for. Must be non-empty.
      required:
        - ids
    StatusItem:
      type: object
      description: Processing status of an individual document.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the document.
        original_id:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            Cached source identifier for completed deduplicated results. `null`
            for active, failed, and not_found items.
        status:
          type: string
          enum:
            - PENDING
            - COMPLETED
            - FAILED
            - NOT_FOUND
          description: >-
            Current per-item processing status. `PENDING` covers queued,
            in-progress, and retrying tasks; `COMPLETED` indicates the entity is
            ready to retrieve; `FAILED` means processing errored out;
            `NOT_FOUND` means no record exists for that ID in the requested
            resource type.
      required:
        - id
        - status
    ErrorResponse:
      type: object
      description: Standard error response.
      properties:
        error:
          type: string
          description: Human-readable error message.
      required:
        - error
  responses:
    BadRequest:
      description: The request was malformed or contained invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: >-
        Authentication failed. Provide a valid API key in the `x-api-key`
        header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key in UUID format. Include this header with every authenticated
        request.

````