Wondercraft Jobs API

The Jobs API from Wondercraft — 2 operation(s) for jobs.

OpenAPI Specification

wondercraft-jobs-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Wondercraft Public Account Jobs API
  description: 'The Wondercraft Public API creates audio content - podcasts, audio ads, meditations, and audiobooks - from an AI-generated or user-supplied script. Generation is asynchronous: a create request returns a job_id, which is then polled for completion and an MP3 download URL. Voices and background music are referenced by IDs copied from the Wondercraft platform. API access requires a paid plan.'
  termsOfService: https://www.wondercraft.ai/terms
  contact:
    name: Wondercraft Support
    url: https://support.wondercraft.ai/
  version: 0.0.1
servers:
- url: https://api.wondercraft.ai/v1
security:
- APIKeyHeader: []
tags:
- name: Jobs
paths:
  /podcast/{job_id}:
    get:
      operationId: get_episode_status_podcast__job_id__get
      tags:
      - Jobs
      summary: Get audio content result and status
      description: Retrieves the status of an audio generation job. When finished, returns the generated script and an MP3 download URL. Errors are reported via the error and error_details fields.
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: The job_id returned by a generate request.
      responses:
        '200':
          description: Job status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEpisodeStatusResponse'
        '422':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /podcasts:
    get:
      operationId: get_podcasts_for_user_podcasts_get
      tags:
      - Jobs
      summary: Get podcasts for the authenticated user
      description: Returns the podcasts associated with the authenticated API key.
      responses:
        '200':
          description: List of podcasts for the user.
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    GetEpisodeStatusResponse:
      type: object
      required:
      - finished
      properties:
        finished:
          type: boolean
          description: Whether the job has completed.
        script:
          type: string
          description: The generated script, when available.
        url:
          type: string
          description: Download URL for the finished MP3, when available.
        error:
          type: boolean
          description: Whether the job failed.
        error_details:
          type: string
          description: Details about the failure, when present.
    ValidationError:
      type: object
      required:
      - loc
      - msg
      - type
      properties:
        loc:
          type: array
          items:
            type: string
        msg:
          type: string
        type:
          type: string
    HTTPValidationError:
      type: object
      properties:
        detail:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-KEY