---
title: "Exposé als PDF laden"
url: "https://maklerportal.apim.eu/apis/expose-erstellen/versions/68a05fe4-408a-4a77-bd68-eebadc995624/operations/exposePdfLaden"
---

> Full API specification: https://maklerportal.apim.eu/apis/expose-erstellen/versions/68a05fe4-408a-4a77-bd68-eebadc995624.md

# Exposé als PDF laden

`GET` `/exposes/{exposeId}/pdf`

Operation ID: `exposePdfLaden`

Liefert das gesetzte Dokument. Erst verfügbar, wenn `status` auf `fertig` steht – vorher antwortet die API mit `409`.

## Path parameters

- `exposeId` (string, required) - Kennung des Exposés.

## Responses

- `200` - PDF-Dokument
- `401` - Schlüssel fehlt, ist gesperrt oder ungültig
- `404` - Das Exposé existiert nicht
- `409` - Generierung noch nicht abgeschlossen

## OpenAPI definition

```yaml
openapi: 3.0.3
info:
  title: Exposé erstellen
  version: 1.0.0
servers:
  - url: https://api.maklerportal.example/v1
    description: Produktion
  - url: https://sandbox.api.maklerportal.example/v1
    description: Sandbox – Bestand wird nächtlich zurückgesetzt
paths:
  /exposes/{exposeId}/pdf:
    parameters:
      - $ref: "#/components/parameters/ExposeId"
    get:
      tags:
        - Exposés
      summary: Exposé als PDF laden
      description: >
        Liefert das gesetzte Dokument. Erst verfügbar, wenn `status` auf
        `fertig` steht –

        vorher antwortet die API mit `409`.
      operationId: exposePdfLaden
      responses:
        "200":
          description: PDF-Dokument
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        "401":
          $ref: "#/components/responses/NichtAuthentifiziert"
        "404":
          $ref: "#/components/responses/NichtGefunden"
        "409":
          description: Generierung noch nicht abgeschlossen
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Fehler"
              example:
                code: konflikt
                nachricht: Das Exposé wird noch erzeugt.
                details:
                  - feld: status
                    grund: in_arbeit
security:
  - apiKey: []
components:
  parameters:
    ExposeId:
      name: exposeId
      in: path
      required: true
      description: Kennung des Exposés.
      schema:
        type: string
        example: exp_4d9b2e
  responses:
    NichtAuthentifiziert:
      description: Schlüssel fehlt, ist gesperrt oder ungültig
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/Fehler"
          example:
            code: nicht_authentifiziert
            nachricht: Der API-Schlüssel ist ungültig oder wurde zurückgezogen.
            details: []
    NichtGefunden:
      description: Das Exposé existiert nicht
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/Fehler"
  schemas:
    Fehler:
      type: object
      description: Einheitliches Fehlerformat aller Maklerportal-APIs.
      required:
        - code
        - nachricht
      properties:
        code:
          type: string
          example: pflichtangabe_fehlt
        nachricht:
          type: string
          example: Für die Veröffentlichung fehlen Pflichtangaben aus dem Energieausweis.
        details:
          type: array
          items:
            $ref: "#/components/schemas/Fehlerdetail"
    Fehlerdetail:
      type: object
      properties:
        feld:
          type: string
          example: energieausweis.endenergiebedarf_kwh
        grund:
          type: string
          example: fehlt
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: apikey
      description: >
        Jeder Aufruf trägt einen API-Schlüssel im Header `apikey`. Den Schlüssel

        erzeugen Sie im Maklerportal unter "Meine Anwendungen"; er wird genau
        einmal

        angezeigt.


        An jedem Schlüssel hängen die Scopes, die er nutzen darf. Fehlt einer,

        antwortet die API mit `403` und `code: "scope_fehlt"`; der fehlende
        Scope

        steht in `details[].feld`.
```
