---
title: "Submit Transparenzregister extract request"
method: POST
path: "/v1/transparenzregister/extracts"
tags: ["v1"]
---

# Submit Transparenzregister extract request

`POST /v1/transparenzregister/extracts`

Submit a Transparenzregister extract request and return an extract resource with processing status.

Sandbox integration testing (recommended for all non-production testing):
- Send `X-Credential-Name: sandbox`.
- Do not send `company_id` (an empty body `{}` is valid).
- OpenRegister uses the Transparenzregister test environment and built-in test authentication.
- The request is submitted with the fixed test EKRN `DE727032388716`.
- The response has `company_id: null`.

Production usage:
- Always set `X-Credential-Name` to `default` or another stored credential name.
- `company_id` is required and must resolve to exactly one Transparenzregister legal entity.

## Headers

- `X-Credential-Name` string

## Request body

- TransparenzregisterExtractCreate — Request body for creating a Transparenzregister extract.
  - `company_id` string — Unique company identifier. Required unless `X-Credential-Name` is set to `sandbox`. In sandbox mode this field should be omitted. Example: DE-HRB-F1103-267645

## Response `201`

Extract request submitted successfully

- TransparenzregisterExtractCreated — Response from creating a Transparenzregister extract. Only fields known at creation time are present. Poll `GET /v1/transparenzregister/extracts/{extract_id}` to retrieve report and documents.
  - `id` string, required — Stable extract identifier. Use this to poll the get-extract endpoint. Example: "tre_12345678"
  - `status` 'processing', required — Always `processing` on create. Poll the get-extract endpoint for terminal state.
  - `company_id` string, nullable, required — Company identifier associated with this extract request. May be null when using sandbox credentials.
  - `ekrn` string, nullable, required — EKRN used to request this extract.
  - `submitted_at` string, date-time, required — Timestamp when extract submission started.

## Other responses

- `400` — Bad Request - Invalid company ID or parameters
- `401` — Unauthorized - Authentication required
- `402` — Payment Required - Transparenzregister API access requires a paid API plan
- `403` — Forbidden - Transparenzregister rejected authentication for the selected credential mode
- `404` — Not Found - Company not found, credentials not found, or no Transparenzregister match for the company
- `409` — Conflict - Multiple Transparenzregister companies matched and the request cannot be disambiguated
- `429` — Too Many Requests - Production extract quota exceeded for the rolling 30-day window
- `500` — Internal Server Error - An error occurred while processing the request

---

[API](https://skmtc.net/oregister/apis/openregister-api.md) · [All operations](https://skmtc.net/oregister/apis/openregister-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oregister/openregister-api/revisions/d1fcaf6d6ca0/schema)
