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

# Download Company Extract as PDF

> Render the result of a company data request as a one-file PDF extract: company profile, legal representatives, shareholders, ultimate beneficial owners, other key persons, establishments and the ownership graph, whichever of those the request asked for and received.

This endpoint is free and is never billed. It renders data the request already paid for, so a PDF can be re-downloaded as often as needed and never triggers a new fetch.

Completeness: by default the extract renders whatever has arrived, matching `GET /v2/company/{requestId}`, which also returns partial results while a request runs. A partial extract says so on its own face: a "Data completeness" section at the end of the extract lists every requested datapoint and whether it was included, is still being retrieved, or failed, and the `X-Topograph-Data-Status` response header carries `complete` or `partial`. Pass `requireComplete=true` to get a 409 instead of a partial file, for an archival export that must not be a snapshot of a half-finished request.

Only datapoints decide completeness. Documents are delivered as separate files and never appear in the extract, so a document still downloading does not hold the PDF back.



## OpenAPI

````yaml get /v2/company/{requestId}/pdf
openapi: 3.0.0
info:
  title: Topograph
  description: The Topograph API
  version: '0.1'
  contact: {}
servers:
  - url: https://api.topograph.co
security:
  - x-api-key: []
tags: []
paths:
  /v2/company/{requestId}/pdf:
    get:
      tags:
        - Data
      summary: Download Company Extract as PDF
      description: >-
        Render the result of a company data request as a one-file PDF extract:
        company profile, legal representatives, shareholders, ultimate
        beneficial owners, other key persons, establishments and the ownership
        graph, whichever of those the request asked for and received.


        This endpoint is free and is never billed. It renders data the request
        already paid for, so a PDF can be re-downloaded as often as needed and
        never triggers a new fetch.


        Completeness: by default the extract renders whatever has arrived,
        matching `GET /v2/company/{requestId}`, which also returns partial
        results while a request runs. A partial extract says so on its own face:
        a "Data completeness" section at the end of the extract lists every
        requested datapoint and whether it was included, is still being
        retrieved, or failed, and the `X-Topograph-Data-Status` response header
        carries `complete` or `partial`. Pass `requireComplete=true` to get a
        409 instead of a partial file, for an archival export that must not be a
        snapshot of a half-finished request.


        Only datapoints decide completeness. Documents are delivered as separate
        files and never appear in the extract, so a document still downloading
        does not hold the PDF back.
      operationId: CompanyController_getCompanyRequestPdf_v2
      parameters:
        - name: x-topograph-workspace-id
          in: header
          description: >-
            Selects the workspace for this request: usage is attributed to it,
            and register credentials resolve from it. Takes the workspace `name`
            (the value you sent to `POST /v2/workspaces`), not the UUID `id`
            returned on creation. Omit to use the account's `default` workspace.
            Unknown name returns 404; a name outside `^[a-zA-Z0-9_-]+$` or over
            64 characters returns 400.
          required: false
          schema:
            type: string
            pattern: ^[a-zA-Z0-9_-]+$
            maxLength: 64
            example: acme-paris
        - name: requestId
          required: true
          in: path
          description: The request ID returned by the initial POST /v2/company call
          schema:
            example: 253299d1-e8d0-4268-945b-f175f98bc114
            type: string
        - name: requireComplete
          required: false
          in: query
          description: >-
            If true, respond 409 rather than render an extract while any
            requested datapoint is still in progress. Accepts true/false/1/0;
            any other value is rejected with 400. Defaults to false.
          schema:
            type: boolean
        - name: disposition
          required: false
          in: query
          description: >-
            Controls `Content-Disposition`. `attachment` (default) prompts a
            download; `inline` lets a browser or viewer render the PDF in place.
          schema:
            enum:
              - attachment
              - inline
            type: string
      responses:
        '200':
          description: >-
            The PDF extract. `X-Topograph-Data-Status` is `complete` when every
            requested datapoint reached a terminal state, `partial` otherwise.
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '400':
          description: A query parameter could not be parsed, e.g. `requireComplete=yes`.
        '404':
          description: Request not found or does not belong to this account
        '409':
          description: >-
            The request cannot be rendered in its current state. Body carries
            `code` — `extract_data_incomplete` (the request is still running:
            either `requireComplete=true` was passed, or no company data has
            arrived yet; `pendingDataPoints` lists what it is waiting on) or
            `extract_no_data` (the request settled without any company data).
      security:
        - x-api-key: []
components:
  securitySchemes:
    x-api-key:
      type: apiKey
      in: header
      name: x-api-key

````