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

# Videostatus abrufen

> Ruft den Status einer Videoerstellungsanfrage ab. Alle 20 Sekunden abfragen, sofern keine Webhooks verwendet werden.

Erfordert Zugriff auf die Vorschau im Arbeitsbereich. Informationen zu Einrichtung, Webhooks und Ergebnisverarbeitung findest du unter [Video- und Stapelaufträge](../../guides/async-video-and-batch.mdx).


## OpenAPI

````yaml de/openapi/v1/openapi.localized.yaml GET /videos/{video_id}
openapi: 3.0.3
info:
  title: Phaseo Gateway API
  description: >-
    Eine Gateway-API für den Zugriff auf verschiedene KI-Modelle über
    OpenAI-kompatible Endpunkte.
  version: 1.0.0
  contact:
    name: Phaseo
    url: https://phaseo.app
    email: danielbutler500@gmail.com
servers:
  - url: https://api.phaseo.app/v1
    description: Globales Routing
security:
  - BearerAuth: []
tags:
  - name: Gateway
    description: Core Phaseo Gateway operations.
paths:
  /videos/{video_id}:
    get:
      tags:
        - Gateway
      summary: Videostatus abrufen
      description: >-
        Ruft den Status einer Videoerstellungsanfrage ab. Alle 20 Sekunden
        abfragen, sofern keine Webhooks verwendet werden.
      operationId: getVideo
      parameters:
        - name: video_id
          in: path
          required: true
          description: ID der Videoerstellungsanfrage.
          schema:
            type: string
      responses:
        '200':
          description: Videostatusantwort
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoGenerationResponse'
components:
  schemas:
    VideoGenerationResponse:
      type: object
      properties:
        id:
          type: string
        polling_url:
          type: string
        websocket_url:
          type: string
          format: uri
          description: >-
            WebSocket-URL zum Abonnieren normalisierter
            Lebenszyklusaktualisierungen asynchroner Aufträge.
        model:
          type: string
        request_id:
          type: string
        session_id:
          type: string
        status:
          type: string
          enum:
            - queued
            - processing
            - completed
            - failed
            - cancelled
            - expired
        lifecycle_status:
          type: string
          enum:
            - pending
            - running
            - completed
            - failed
            - cancelled
            - expired
          description: >-
            Normalisierter asynchroner Lebenszyklusstatus für Polling-,
            WebSocket- und Webhook-Empfänger.
        cancel_url:
          type: string
          format: uri
          nullable: true
          description: Für Kompatibilität reserviert; derzeit immer null.
        output_access:
          type: string
          enum:
            - bytes
            - signed_url
            - both
        generation_id:
          type: string
          nullable: true
        native_video_id:
          type: string
          nullable: true
          description: >-
            Anbietereigene Video-/Auftrags-ID, wenn sie von der Gateway-ID
            abweicht.
        created_at:
          oneOf:
            - type: integer
            - type: string
        started_at:
          nullable: true
          oneOf:
            - type: integer
            - type: string
        completed_at:
          nullable: true
          oneOf:
            - type: integer
            - type: string
        object:
          type: string
          example: video
        poll_after_seconds:
          type: integer
          example: 20
        provider:
          type: string
        seconds:
          type: number
        size:
          type: string
        audio:
          type: boolean
        content_url:
          type: string
          description: >-
            Vorhanden, wenn output_access bytes einschließt (authentifizierter
            Endpunkt).
        download_url:
          type: string
          nullable: true
          description: >-
            Signierte Erstanbieter-URL zum direkten Download bei Status
            completed.
        expires_at:
          type: integer
          nullable: true
          description: >-
            Unix-Zeitstempel (Sekunden), zu dem die signierte download_url
            abläuft.
        progress:
          type: integer
          nullable: true
        progress_source:
          type: string
        asset:
          type: object
          nullable: true
          properties:
            id:
              type: string
            mime_type:
              type: string
            bytes:
              type: integer
            sha256:
              type: string
            width:
              type: integer
            height:
              type: integer
            duration_seconds:
              type: number
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/VideoOutput'
        billing:
          $ref: '#/components/schemas/VideoBillingSummary'
        webhook:
          $ref: '#/components/schemas/AsyncWebhookPublicState'
        next_webhook_retry_at:
          type: string
          nullable: true
          description: >-
            ISO-Zeitstempel des nächsten geplanten
            Benutzer-Webhook-Wiederholungsversuchs, sofern eingereiht.
        last_webhook_progress:
          type: number
          nullable: true
          description: Letzte an Webhook-Empfänger gesendete grobe Fortschrittsstufe.
        last_webhook_progress_at:
          type: string
          nullable: true
          description: ISO-Zeitstempel des Versands der letzten Webhook-Fortschrittsstufe.
        last_webhook_dispatched_at:
          type: string
          nullable: true
          description: ISO-Zeitstempel des letzten Webhook-Versandversuchs.
        usage:
          type: object
          properties:
            cost:
              type: number
            is_byok:
              type: boolean
          additionalProperties: true
        error:
          nullable: true
    VideoOutput:
      type: object
      properties:
        index:
          type: integer
        mime_type:
          type: string
        bytes_available:
          type: boolean
        content_url:
          type: string
          description: Vorhanden, wenn output_access bytes einschließt.
        download_url:
          type: string
          description: Signierte Erstanbieter-URL für diese Ausgabe.
        expires_at:
          type: integer
          description: Unix-Zeitstempel (Sekunden), zu dem diese Ausgabe-URL abläuft.
    VideoBillingSummary:
      type: object
      properties:
        currency:
          type: string
        estimated_provider_cost:
          type: string
          nullable: true
        estimated_user_cost:
          type: string
          nullable: true
        settled_provider_cost:
          type: string
          nullable: true
        settled_user_cost:
          type: string
          nullable: true
        state:
          type: string
          enum:
            - pending
            - estimated
            - settled
            - void
        billable:
          type: boolean
        total_nanos:
          type: integer
          nullable: true
        estimated_nanos:
          type: integer
          nullable: true
        reserved_nanos:
          type: integer
          nullable: true
        reservation_id:
          type: string
          nullable: true
        reservation_status:
          type: string
          nullable: true
        charge_reason:
          type: string
          nullable: true
        charged:
          type: boolean
          nullable: true
        billed_at:
          type: string
      additionalProperties: true
    AsyncWebhookPublicState:
      type: object
      description: >-
        Bereinigte asynchrone Webhook-Konfiguration und Zustellstatus.
        Geheimnisse werden nie zurückgegeben; `has_secret` zeigt an, ob
        signierte Zustellungen aktiviert sind. Signierte Zustellungen enthalten
        die Header x-phaseo-signature, x-phaseo-timestamp, x-phaseo-event-id,
        x-phaseo-event-type, x-phaseo-delivery-key, x-phaseo-attempt und
        x-phaseo-max-attempts.
      properties:
        url:
          type: string
          format: uri
          nullable: true
        events:
          type: array
          items:
            type: string
        has_secret:
          type: boolean
        delivery:
          $ref: '#/components/schemas/AsyncWebhookDeliverySummary'
        attempts:
          type: array
          items:
            $ref: '#/components/schemas/AsyncWebhookDeliveryAttempt'
    AsyncWebhookDeliverySummary:
      type: object
      description: >-
        Öffentliche Zustellübersicht für vom Gateway verwaltete asynchrone
        Webhooks. Damit lässt sich der Ausführungsstatus des Auftrags vom
        Zustellzustand des Webhooks unterscheiden.
      properties:
        total_attempts:
          type: integer
          description: Gesamtzahl erfasster Zustellversuche für diesen Auftrag.
        delivered_events:
          type: integer
          description: >-
            Anzahl der Zustellschlüssel, die den Status zugestellt erreicht
            haben.
        delivered_event_types:
          type: array
          description: Mindestens einmal zugestellte Zustellschlüssel.
          items:
            type: string
          example:
            - video.completed
        pending_retries:
          type: integer
          description: >-
            Anzahl der Zustellschlüssel, für die derzeit ein
            Wiederholungsversuch geplant ist.
        next_retry_at:
          type: string
          nullable: true
          description: >-
            ISO-Zeitstempel des nächsten geplanten Wiederholungsversuchs, sofern
            vorhanden.
        last_attempt_at:
          type: string
          nullable: true
          description: ISO-Zeitstempel des letzten Zustellversuchs.
        last_attempt_status:
          type: string
          nullable: true
          enum:
            - delivered
            - scheduled_retry
            - failed_permanently
          description: Ergebnis des letzten Zustellversuchs.
        last_response_status:
          type: integer
          nullable: true
          description: Vom Webhook-Ziel zurückgegebener HTTP-Status, sofern verfügbar.
        last_delivered_at:
          type: string
          nullable: true
          description: ISO-Zeitstempel der letzten erfolgreichen Zustellung.
        last_failure_at:
          type: string
          nullable: true
          description: >-
            ISO-Zeitstempel des letzten fehlgeschlagenen oder erneut versuchten
            Zustellversuchs.
        last_error_message:
          type: string
          nullable: true
          description: Letzte Zustellfehlermeldung, sofern verfügbar.
    AsyncWebhookDeliveryAttempt:
      type: object
      description: >-
        Letzter Zustellversuch eines vom Gateway verwalteten asynchronen
        Webhooks.
      properties:
        id:
          type: string
          description: Stabile Versuchskennung für Audit und Fehlersuche.
        delivery_key:
          type: string
          description: Idempotenzschlüssel für die Zustellung dieses Ereignisses.
          example: video.completed
        event_type:
          type: string
          description: An das Webhook-Ziel zugestellter Ereignistyp.
          example: video.completed
        status:
          type: string
          enum:
            - delivered
            - scheduled_retry
            - failed_permanently
        attempt_number:
          type: integer
          description: Bei eins beginnende Versuchsnummer für diesen Zustellschlüssel.
        max_attempts:
          type: integer
          description: >-
            Maximale Anzahl an Versuchen, bevor die Zustellung als dauerhaft
            fehlgeschlagen markiert wird.
        tried_at:
          type: string
          description: ISO-Zeitstempel dieses Versuchs.
        delivered_at:
          type: string
          nullable: true
          description: ISO-Zeitstempel der erfolgreichen Zustellung dieses Versuchs.
        next_retry_at:
          type: string
          nullable: true
          description: >-
            ISO-Zeitstempel des nächsten Wiederholungsversuchs nach diesem
            Versuch, sofern geplant.
        response_status:
          type: integer
          nullable: true
          description: Vom Webhook-Ziel zurückgegebener HTTP-Status, sofern verfügbar.
        error_message:
          type: string
          nullable: true
          description: Zustellfehlermeldung, sofern verfügbar.
        response_body_preview:
          type: string
          nullable: true
          description: >-
            Vorschau des Antworttexts des Webhook-Ziels mit unkenntlich
            gemachten sensiblen Daten.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Authentifizierung mit Bearer-Token

````

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