AutoContent legacy Content API

The original AutoContent surface, served unversioned at https://api.autocontentapi.com with its own JWT credentials and monthly credit plans. 106 operations across 99 paths covering podcasts, explainer and short video, deep research, infographics, quizzes, slide decks, data tables, documents, files, X/Twitter and Reddit feeds, sharing and billing. The provider states it is not a compatibility alias for the Platform /v1 API and publishes a migration guide, but no sunset date.

Operations 106

GET /content/Usage Get usage information
GET /content/QueueStats Get queued and processing request counts
GET /content/QueueRequests Get queued or processing request IDs
GET /content/Podcasts Get all podcasts
GET /content/Transcripts Get all transcripts
POST /content/Create Create new content
POST /content/Repurpose Repurpose a completed request
GET /content/Status/{id} Check request status
GET /content/List List content requests
GET /content/GetVoices Get available voices
GET /content/Me Get current client info
POST /content/Webhook Register webhook
POST /content/RemoveWebhook Remove webhook
GET /content/Webhooks Get webhooks
POST /content/ModifyPodcast Modify podcast
POST /content/SeparateSpeakersAudio Separate speakers in audio
POST /content/CloneVoice Clone voice
POST /content/GetTranscript Get transcript
GET /content/GetTranscript/{episodeId} Get transcript by episode ID
POST /content/CreatePodcastCustomScript Create podcast from custom script
POST /content/CreatePodcastCustomVoices Create podcast with custom voices
POST /content/CreateGPT Create content via GPT
POST /content/RemoveVoice Remove cloned voice
POST /content/DeleteRequest Delete request
POST /content/Schedule Schedule multiple podcasts
GET /data-tables/get Get data tables
GET /data-tables/{dataTableId}/download Download data table
POST /deep-research/research Perform deep research on a given query #
GET /deep-research/research Get all deep research requests #
GET /deep-research/research/{id} Get a specific deep research request by ID #
GET /documents/get Get documents
GET /documents/{documentId} Get document
GET /documents/{documentId}/download Download document
GET /documents/{documentId}/preview Preview document
GET /infographics/get Get infographics
GET /infographics/{infographicId}/download Download infographic
GET /quizzes/get Get quizzes
GET /quizzes/{quizId}/download Download quiz
GET /share/podcast/{requestId}/{t} Get a shared podcast
GET /share/video/{requestId}/{t} Get a shared video
GET /share/infographic/{requestId}/{t} Get a shared infographic
GET /share/slide-deck/{requestId}/{t} Get a shared slide deck
GET /share/quiz/{requestId}/{t} Get a shared quiz
GET /slide-decks/get Get slide decks
GET /slide-decks/{slideDeckId}/download Download slide deck
GET /slide-decks/{slideDeckId}/preview Preview slide deck
GET /slide-decks/public/{slideDeckId}/preview Public preview slide deck
GET /slide-decks/public-preview Public preview slide deck by URL
GET /video/GetAvatars Get available avatars
GET /video/GetShorts Get shorts videos
POST /video/CreateShorts Create shorts
POST /video/CreateShortsFromContent Create shorts from text
POST /video/CreateShortsFromScript Create shorts from script
POST /video/CreateShortsFromDeepResearch Create shorts from deep research
POST /video/CreateAvatar Create avatar
POST /video/UpdateAvatarVoice Update avatar voice
GET /video/GetExplainerVideos Get explainer videos
POST /video/Transcribe Transcribe an explainer video
GET /video/Transcript/{videoId} Get an explainer transcript
GET /video/GenerateIntroImage Generate branded intro image
POST /x/post Create an X (Twitter) post or thread request #
POST /x/post/quick Quick-create an X (Twitter) post or thread #
POST /x/refine Refine an existing X (Twitter) post #
GET /x/posts Get generated X (Twitter) posts for the authenticated user #
GET /x/posts/{id} Get a single generated X (Twitter) post by ID #
GET /billing/invoices Get Stripe invoices for the authenticated client
GET /deep-research/recurring Get recurring deep research templates
POST /deep-research/recurring/{id} Update a recurring deep research template
GET /feeds Get all feeds (public + user's private feeds)
POST /feeds Create a new feed
GET /feeds/{id} Get a specific feed by ID
POST /feeds/delete Delete a feed
GET /feeds/subscriptions List feed subscriptions for the authenticated token
POST /feeds/subscriptions Create a feed subscription
DELETE /feeds/subscriptions/{subscriptionId} Remove a feed subscription
POST /files Upload a private file for later use as a content resource
GET /files List uploaded files for the authenticated token
DELETE /files/{id} Delete an uploaded file by id
GET /podcast/rss/{podcastId} Get iTunes-compatible RSS feed for podcast distribution
GET /podcast/shows Get all podcast shows for automated management
POST /podcast/shows Create a new podcast show for automated distribution
POST /podcast/shows/with-image Create a new podcast show with image upload for automated distribution
GET /podcast/episodes Get all podcast episodes for user (deprecated)
GET /podcast/episodes/unallocated Get unallocated podcast episodes for user
GET /podcast/shows/{podcastId}/episodes Get all episodes for automated podcast management
POST /podcast/shows/{podcastId}/episodes Add episode to podcast for automated distribution
POST /podcast/episodes/remove Remove episode from automated podcast distribution
POST /podcast/episodes/{episodeId} Update podcast episode title and description
POST /podcast/import-rss Import podcast from RSS feed URL
POST /podcast/remove Remove podcast from distribution
GET /podcast/episodes/csv Download all podcast episodes as CSV
GET /podcast/shows/{podcastId}/episodes/csv Download podcast show episodes as CSV
GET /podcast/episodes/audio-zip Download all podcast episode audio files as a ZIP archive
GET /podcast/shows/{podcastId}/episodes/audio-zip Download podcast show episode audio files as a ZIP archive
POST /podcast/ideas Generate podcast ideas (public, origin-restricted)
GET /projects Get all projects for the authenticated user
POST /projects Create a new project
GET /projects/{id} Get a specific project by ID
POST /projects/{id}/update Update a project
POST /projects/{id}/delete Delete a project
GET /public/podcasts Get all public podcasts
GET /public/podcasts/category/{categoryId} Get public podcasts by category
GET /public/podcasts/{id} Get a single public podcast with full details
GET /public/podcasts/slug/{slug} Get a single public podcast by slug with full details
GET /x/recurring Get recurring X (Twitter) templates
POST /x/recurring/{id} Update a recurring X (Twitter) template

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/legacy-content-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

autocontent-api-legacy-content-openapi.json Raw ↑
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0","description":"API documentation for the Content API"},"servers":[{"url":"https://api.autocontentapi.com"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"ContentRequest":{"type":"object","required":["outputType"],"properties":{"resources":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["text","youtube","website","pdf","file"]},"content":{"type":"string","description":"For type \"file\", provide an https URL or a file id returned by POST /files. For other types, provide the text or URL expected by that type."}}},"description":"Resources for content generation (required if topic, feedSelections, or researches are not provided)"},"topic":{"type":"string","description":"Topic for content generation (alternative to resources, feedSelections, or researches)"},"feedSelections":{"type":"array","description":"Cached feed items to include in the request (alternative to resources, topic, or researches)","items":{"$ref":"#/components/schemas/FeedSelection"}},"researches":{"type":"array","items":{"type":"string"},"description":"Array of research IDs to include as text resources (max 10)"},"projects":{"type":"array","items":{"type":"string"},"description":"Array of project IDs to use as context for generation (max 10)"},"logoUrl":{"type":"string","format":"uri","description":"Optional HTTP or HTTPS PNG/JPG image URL for video, infographic, and slide_deck requests. Any source dimensions are accepted, but the image must be fully opaque and no larger than 5 MB; it is normalized to an opaque 200x50 PNG using the same rules as a project image. When supplied, it overrides the project logo for this request while project context and branding colors still apply. When omitted, the project logo and then the default logo are used."},"youtubeChannels":{"type":"array","items":{"type":"string"},"description":"YouTube channel IDs already connected to the account to use as sources"},"podcastEpisodeIds":{"type":"array","items":{"type":"string"},"description":"Completed audio request IDs to reuse as podcast episode sources (max 10)"},"text":{"type":"string","maxLength":5000,"description":"Instructions or query for content generation. For video, this is the NotebookLM steering prompt and is limited to 5,000 characters."},"outputType":{"type":"string","enum":["audio","text","faq","study_guide","timeline","briefing_doc","quiz","video","infographic","slide_deck","datatable"],"description":"Type of output content to generate"},"duration":{"type":"string","enum":["short","default","long"],"description":"Duration preference for audio and slide deck generation. Ignored for video requests."},"format":{"type":"string","enum":["explainer","short","cinematic","text","html","pdf"],"description":"For `video`, accepted values are `explainer`, `short`, and `cinematic` (defaults to `explainer`). `cinematic` video requests cost 100 credits. For `briefing_doc`, accepted values are `text`, `html`, and `pdf` (defaults to `pdf`). Ignored for other output types."},"style":{"type":"string","maxLength":5000,"description":"Style of the generated content. For audio/text, use one of: deep dive, brief, critique, debate. For video, NotebookLM preset names (auto-select, classic, whiteboard, kawaii, anime, watercolour, retro print, heritage, or paper-craft) are selected directly; any other value is used as custom style text and is limited to 5,000 characters. Video defaults to classic when omitted.\n"},"introMusicUrl":{"type":"string","description":"HTTPS URL to optional intro music (.mp3, .wav, or .m4a) mixed at lower volume at the start of the podcast"},"includeCitations":{"type":"boolean","description":"Whether to include citations (PRO only)"},"ignorePaywalledResources":{"type":"boolean","description":"When true, continue processing even if some URL resources fail to import (paywall/restrictions). The request fails only if none of the provided resources are successfully imported."},"infographicOrientation":{"type":"string","enum":["landscape","portrait","square"],"description":"Infographic orientation (defaults to landscape)"},"infographicDetail":{"type":"string","enum":["concise","standard","detailed"],"description":"Infographic detail level (defaults to standard)"},"slideDeckFormat":{"type":"string","enum":["detailed","presenter"],"description":"Slide deck format (defaults to detailed). Length is controlled via the standard duration field (short, default, long). Slide deck prompt uses the main text field."},"quizDifficulty":{"type":"string","enum":["easy","medium","hard"],"description":"Difficulty level for quiz outputs (defaults to medium). Quiz prompt uses the main text field."},"callbackData":{"type":"string","maxLength":500,"description":"Optional data to include in webhooks (maximum 500 characters)"},"relatedId":{"type":"string","description":"Existing request ID to relate this request to (must belong to the same token)"},"notebookId":{"type":"string","description":"Owned Private Notebook ID. When present, generation uses that notebook's saved sources and its license's exact dedicated account, follows Private Notebooks capacity instead of content credits, and rejects additional request sources or generic topic/project inputs."},"language":{"type":"string","description":"Target language for generated content, using an exact value from the supported languages list (for example, Deutsch). For video at the base format price, set language and omit voice1 and voice2. Voice IDs select narration voices but do not translate the generated script."},"scheduledOn":{"type":"string","format":"date-time","description":"Schedule the content generation for a specific time"},"podcastId":{"type":"string","description":"Podcast show ID to associate this content with"},"episodeTitle":{"type":"string","description":"Optional episode title when attaching to a podcast show"},"title":{"type":"string","description":"Custom title to use for generated video outputs. When provided, overrides the automatically generated title."},"titlePrompt":{"type":"string","description":"Prompt to guide the generated video title"},"descriptionPrompt":{"type":"string","description":"Prompt to guide the generated video description"},"thumbnailImagePrompt":{"type":"string","description":"Prompt to control the generated thumbnail image for video outputs"},"introImagePrompt":{"type":"string","description":"Prompt to control the intro image for video outputs"},"voice1":{"type":"integer","description":"Primary explicit narration voice ID from /content/GetVoices. Use the numeric ID, not the voice name. For video, supplying any catalogue or client-cloned voice ID adds 200 credits once per request to the format base price (50 credits for explainer/short or 100 for cinematic). Omit voice1 and voice2 for base pricing. Voice selection does not translate the generated script."},"voice2":{"type":"integer","description":"Optional secondary explicit narration voice ID from /content/GetVoices. Requires voice1. The 200-credit video voice surcharge is per request, not per supplied voice."},"publishTargets":{"type":"array","description":"Targets to publish generated videos to (e.g., YouTube)","items":{"$ref":"#/components/schemas/PublishTarget"}},"templateMode":{"type":"object","description":"Create a reusable template instead of processing immediately","properties":{"type":{"type":"string","enum":["feed"]},"name":{"type":"string","description":"Optional display name for the template"}}},"isScheduled":{"type":"boolean","description":"Create a recurring schedule instead of a single request"},"dailyCount":{"type":"integer","minimum":1,"maximum":24,"description":"Number of times per day to run when isScheduled is true"},"scheduleEndDate":{"type":"string","format":"date-time","description":"Optional end date for recurring schedules (requires isScheduled true)"}}},"RepurposeRequest":{"type":"object","required":["requestId","outputType"],"properties":{"requestId":{"type":"string","description":"Identifier of the completed request to repurpose"},"outputType":{"type":"string","enum":["audio","video","infographic","slide_deck","datatable","quiz"],"description":"Output type for the new request"},"language":{"type":"string","description":"Optional language override for the new request (defaults to the original request language)"},"text":{"type":"string","maxLength":5000,"description":"Optional text instructions that replace the original TEXT parameter. For video, this is the NotebookLM steering prompt and is limited to 5,000 characters."},"callbackData":{"type":"string","description":"Optional callback data to associate with the new request"},"duration":{"type":"string","enum":["short","default","long"],"description":"Duration preference for audio and slide deck repurpose requests. Ignored for video requests."},"infographicOrientation":{"type":"string","enum":["landscape","portrait","square"],"description":"Orientation when repurposing to an infographic"},"infographicDetail":{"type":"string","enum":["concise","standard","detailed"],"description":"Detail level when repurposing to an infographic"},"slideDeckFormat":{"type":"string","enum":["detailed","presenter"],"description":"Format when repurposing to a slide deck"},"quizDifficulty":{"type":"string","enum":["easy","medium","hard"],"description":"Difficulty level when repurposing to a quiz"},"title":{"type":"string","description":"Override video title when repurposing to video"},"titlePrompt":{"type":"string","description":"Prompt to guide the generated title when repurposing to video"},"descriptionPrompt":{"type":"string","description":"Prompt to guide the generated description when repurposing to video"},"format":{"type":"string","enum":["explainer","short","cinematic"],"description":"Video format (defaults to explainer). Only applies when outputType is video. `cinematic` costs 100 credits."},"style":{"type":"string","maxLength":5000,"description":"NotebookLM preset name or custom style text for video outputs, limited to 5,000 characters"},"thumbnailImagePrompt":{"type":"string","description":"Prompt to control the generated thumbnail image for video outputs"},"introImagePrompt":{"type":"string","description":"Prompt to control the generated intro image for video outputs"},"avatarId":{"type":"integer","description":"Optional avatar identifier for explainer video generation. If omitted, inherits from the source request when available."},"audioLanguage":{"type":"string","description":"Optional audio language override for explainer video generation metadata. If omitted, inherits from the source request when available."},"textLanguage":{"type":"string","description":"Optional text language override for explainer video generation metadata. If omitted, inherits from the source request when available."},"backgroundImageUrl":{"type":"string","description":"Optional background image URL for explainer video generation metadata. If omitted, inherits from the source request when available."},"voiceId":{"type":"integer","description":"Optional voice id from /content/GetVoices for explainer video metadata. Use the numeric id value, not the voice name. If omitted, inherits from the source request when available."}}},"PublishTarget":{"type":"object","properties":{"channel":{"type":"string","description":"Target channel for publishing (e.g., youtube)"},"youtubeAccountId":{"type":"string","nullable":true,"description":"Connected YouTube account ID to publish to"},"youtubePlaylistId":{"type":"string","nullable":true,"description":"Optional playlist ID to publish into"}}},"FeedSelection":{"type":"object","required":["feedId","feedItemIds"],"properties":{"feedId":{"type":"integer","description":"Identifier of the feed containing the cached items"},"feedItemIds":{"type":"array","items":{"type":"string"},"description":"Identifiers of cached posts or videos to include from that feed"}}},"RecurringSchedule":{"type":"object","properties":{"id":{"type":"string"},"prompt":{"type":"string"},"outputType":{"type":"string"},"format":{"type":"string","nullable":true,"description":"Video format for recurring video schedules (`explainer`, `short`, or `cinematic`). `cinematic` costs 100 credits."},"language":{"type":"string"},"duration":{"type":"string","description":"Duration preference for audio and slide deck schedules. Video schedules do not use duration."},"style":{"type":"string"},"dailyCount":{"type":"integer"},"scheduleEndDate":{"type":"string","format":"date-time","nullable":true},"lastRunAt":{"type":"string","format":"date-time","nullable":true},"nextRunAt":{"type":"string","format":"date-time","nullable":true},"createdOn":{"type":"string","format":"date-time","nullable":true},"podcastId":{"type":"string","nullable":true},"episodeTitle":{"type":"string","nullable":true},"status":{"type":"string","enum":["active","paused","completed"]}}},"RecurringScheduleDetail":{"type":"object","allOf":[{"$ref":"#/components/schemas/RecurringSchedule"},{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"type":{"type":"string"},"content":{"type":"string"}}}}}}]},"WebsiteDiscoveryLink":{"type":"object","properties":{"url":{"type":"string"},"title":{"type":"string"}}},"Citation":{"type":"object","properties":{"text":{"type":"string","description":"Citation text"},"source":{"type":"string","description":"Source of the citation"},"page":{"type":"integer","description":"Page number for PDF sources"},"timeMs":{"type":"integer","description":"Timestamp in milliseconds for audio/video sources"}}},"Usage":{"type":"object","properties":{"allowed":{"type":"integer","description":"Total credits allowed"},"used":{"type":"integer","description":"Total credits used"},"allowedDailyPodcasts":{"type":"integer","description":"Daily podcast limit"},"usedDailyPodcasts":{"type":"integer","description":"Podcasts created today"}}},"QueueStats":{"type":"object","properties":{"success":{"type":"boolean"},"queued":{"type":"integer","description":"Requests waiting to be picked up for processing"},"processing":{"type":"integer","description":"Requests currently in progress"},"active":{"type":"integer","description":"queued + processing"}}},"QueueRequestSummary":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"integer"},"request_type_id":{"type":"integer"},"output_type":{"type":"string","nullable":true},"requested_on":{"type":"string","format":"date-time","nullable":true},"processing_on":{"type":"string","format":"date-time","nullable":true},"scheduled_on":{"type":"string","format":"date-time","nullable":true}}},"QueueRequestsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"state":{"type":"string","enum":["queued","processing","active"]},"ids":{"type":"array","items":{"type":"string"}},"items":{"type":"array","items":{"$ref":"#/components/schemas/QueueRequestSummary"}},"count":{"type":"integer","description":"Number of items in this page"},"total_count":{"type":"integer"},"page":{"type":"integer"},"page_size":{"type":"integer"},"total_pages":{"type":"integer"}}},"Podcast":{"type":"object","properties":{"id":{"type":"string","description":"Podcast ID"},"requestTypeId":{"type":"integer","description":"Type of podcast request"},"audioTitle":{"type":"string","description":"Title of the podcast"},"audioUrl":{"type":"string","description":"URL to the audio file"},"responseText":{"type":"string","description":"Podcast transcript/text"},"requestedOn":{"type":"string","format":"date-time","description":"When the podcast was requested"},"succeededOn":{"type":"string","format":"date-time","description":"When the podcast was completed"},"errorOn":{"type":"string","format":"date-time","description":"When the podcast failed (if applicable)"},"processingOn":{"type":"string","format":"date-time","description":"When the podcast started processing (if applicable)"},"errorMessage":{"type":"string","description":"Error message if the podcast failed"},"status":{"type":"integer","description":"Current status of the podcast"},"shareUrl":{"type":"string","description":"Public sharing URL for the podcast"}}},"Transcript":{"type":"object","properties":{"id":{"type":"string","description":"Transcript ID"},"audioTitle":{"type":"string","description":"Title of the original audio"},"audioUrl":{"type":"string","description":"URL to the original audio file"},"responseText":{"type":"string","description":"The transcript text content"},"requestedOn":{"type":"string","format":"date-time","description":"When the transcript was requested"},"succeededOn":{"type":"string","format":"date-time","description":"When the transcript was completed"},"errorOn":{"type":"string","format":"date-time","description":"When the transcript failed (if applicable)"},"processingOn":{"type":"string","format":"date-time","description":"When the transcript started processing (if applicable)"},"errorMessage":{"type":"string","description":"Error message if the transcript failed"},"status":{"type":"integer","description":"Current status of the transcript"},"language":{"type":"string","description":"Language of the transcript"},"callbackData":{"type":"string","description":"Optional callback data provided during request"},"scheduledOn":{"type":"string","format":"date-time","description":"When the transcript was scheduled"}}},"DataTable":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the data table (matches request id)"},"url":{"type":"string","format":"uri","nullable":true,"description":"URL of the generated data table file (null while processing)"},"status":{"type":"integer","description":"Current progress percentage (100 when completed)"},"createdOn":{"type":"string","format":"date-time","description":"UTC timestamp when the data table was created (or requested if still in progress)"}}},"Document":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the document (matches request id)"},"type":{"type":"string","description":"Document type"},"format":{"type":"string","enum":["text","html","pdf"],"description":"Stored result format"},"title":{"type":"string","nullable":true,"description":"Optional document title"},"status":{"type":"integer","description":"Current progress percentage (100 when completed)"},"createdOn":{"type":"string","format":"date-time","description":"UTC timestamp when the document row was created"},"content":{"type":"string","nullable":true,"description":"Text or HTML content when format is `text` or `html`"},"url":{"type":"string","nullable":true,"description":"Direct PDF URL when format is `pdf`"}}},"Infographic":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the infographic (matches request id)"},"imageUrl":{"type":"string","format":"uri","nullable":true,"description":"URL of the generated infographic image (null while processing)"},"title":{"type":"string","nullable":true,"description":"Optional title for the infographic"},"status":{"type":"integer","description":"Current progress percentage (100 when completed)"},"createdOn":{"type":"string","format":"date-time","description":"UTC timestamp when the infographic was created (or requested if still in progress)"}}},"Quiz":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the quiz (matches request id)"},"quizJson":{"type":"string","nullable":true,"description":"Quiz JSON content (null while processing)"},"status":{"type":"integer","description":"Current progress percentage (100 when completed)"},"createdOn":{"type":"string","format":"date-time","description":"UTC timestamp when the quiz was created (or requested if still in progress)"}}},"SlideDeck":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the slide deck (matches request id)"},"url":{"type":"string","format":"uri","nullable":true,"description":"URL of the generated slide deck (null while processing)"},"title":{"type":"string","nullable":true,"description":"Optional title for the slide deck"},"status":{"type":"integer","description":"Current progress percentage (100 when completed)"},"createdOn":{"type":"string","format":"date-time","description":"UTC timestamp when the slide deck was created (or requested if still in progress)"}}},"Avatar":{"type":"object","properties":{"id":{"type":"string","description":"Avatar identifier"},"name":{"type":"string","description":"Avatar display name"},"gender":{"type":"string","enum":["M","F"],"description":"Avatar gender (M = Male, F = Female)"}}},"Short":{"type":"object","properties":{"id":{"type":"string","description":"Short video identifier"},"status":{"type":"integer","description":"Status code (0 = pending, 10-90 = processing, 100 = completed, -1 = failed)"},"requestedOn":{"type":"string","format":"date-time","description":"Request creation date"},"processingOn":{"type":"string","format":"date-time","description":"Processing start date"},"succeededOn":{"type":"string","format":"date-time","description":"Completion date"},"requestTypeId":{"type":"integer","description":"Request type ID (4 = Short)"},"callbackData":{"type":"string","description":"Custom callback data"},"audioUrl":{"type":"string","description":"URL to the audio used for the short"},"videoUrl":{"type":"string","description":"URL to the generated short video (when completed)"},"imageUrl":{"type":"string","description":"URL to the thumbnail image (when completed)"},"audioTitle":{"type":"string","description":"Title of the short video"},"responseText":{"type":"string","description":"Text content used in the short"},"errorOn":{"type":"string","format":"date-time","description":"Error occurrence date (if applicable)"},"errorMessage":{"type":"string","description":"Error message (if applicable)"}}},"TranscriptLine":{"type":"object","properties":{"text":{"type":"string","description":"Transcript line text"},"speaker":{"type":"string","description":"Speaker label"},"timestamp":{"type":"array","description":"Start/end time in seconds","items":{"type":"number"}}}},"ExplainerTranscript":{"type":"object","properties":{"videoId":{"type":"string","description":"Explainer video identifier (request ID)"},"createdOn":{"type":"string","format":"date-time","description":"Transcript creation timestamp"},"transcript":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptLine"}}}},"Feed":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the feed","example":1},"name":{"type":"string","description":"Name of the feed","example":"Tech News Twitter Feed"},"token":{"type":"string","description":"Client token (null for public feeds)","example":"abc123-def456-ghi789"},"feedTypeId":{"type":"integer","description":"Type of feed (1 for X/Twitter, 2 for Reddit, 3 for YouTube channel, 4 for RSS, 5 for X News topic)","example":1},"internalId":{"type":"string","description":"Internal identifier for the feed source (username for X, subreddit for Reddit, channel source ID for YouTube)","example":"elonmusk"},"createdOn":{"type":"string","format":"date-time","description":"Creation timestamp","example":"2023-01-01T12:00:00Z"}}},"FeedSubscription":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the subscription","example":"123e4567-e89b-12d3-a456-426614174000"},"feedId":{"type":"integer","description":"Identifier of the subscribed feed","example":42},"token":{"type":"string","description":"Token that owns the subscription"},"requestId":{"type":"string","description":"ClientRequest template identifier used for automation"},"createdOn":{"type":"string","format":"date-time","description":"When the subscription was created"},"removedOn":{"type":"string","format":"date-time","nullable":true,"description":"When the subscription was removed, if applicable"},"lastProcessedItemId":{"type":"string","nullable":true,"description":"Identifier of the last feed item processed for this subscription"},"lastProcessedOn":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last processed feed item"},"request":{"type":"object","nullable":true,"description":"Snapshot of the underlying template request"}}},"CreateFeedRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Name of the feed","example":"Tech News Twitter Feed"},"feedTypeId":{"type":"integer","description":"Type of feed (1 for X/Twitter, 2 for Reddit, 3 for YouTube channel, 4 for RSS, 5 for X News topic)","example":1},"internalId":{"type":"string","description":"Internal identifier - Twitter username for X, subreddit name for Reddit (without r/ prefix), topic/search query for X News (feedTypeId=5), feed URL for RSS. For YouTube channels this is populated automatically.","example":"elonmusk"},"channel":{"type":"string","description":"(YouTube only) Channel handle, URL, or ID. Either `channel` or `url` may be provided.","example":"https://youtube.com/@AutoContentAPI"},"url":{"type":"string","description":"(YouTube only) Channel URL alternative field.","example":"https://youtube.com/@AutoContentAPI"}}},"DeleteFeedRequest":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"ID of the feed to delete","example":1}}},"CreatePodcastShowRequest":{"type":"object","required":["name","description","author","link","imageUrl","email"],"properties":{"name":{"type":"string","description":"Podcast show name (displayed on Spotify, Apple Music, etc.)","example":"AI-Generated Tech Talk"},"description":{"type":"string","description":"Show description for platform listings and RSS feed","example":"Weekly tech discussions generated by AI, covering the latest in technology and innovation."},"author":{"type":"string","description":"Host/author name displayed on podcast platforms","example":"AI Content Creator"},"link":{"type":"string","format":"uri","description":"Official website URL for the podcast show","example":"https://mywebsite.com/podcast"},"imageUrl":{"type":"string","format":"uri","description":"URL of the podcast show image/artwork","example":"https://mywebsite.com/podcast-artwork.jpg"},"email":{"type":"string","format":"email","description":"Owner email address for RSS feed and platform registration","example":"podcast@mywebsite.com"},"language":{"type":"string","description":"Primary language for generated podcast episodes (defaults to English)","example":"Italian"}}},"PodcastShow":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the podcast show"},"name":{"type":"string","description":"Name of the podcast show (displayed on Spotify, Apple Music, etc.)"},"description":{"type":"string","description":"Description of the podcast show (used in platform listings)"},"author":{"type":"string","description":"Author/host name (displayed on podcast platforms)"},"link":{"type":"string","description":"Website link for the podcast show"},"email":{"type":"string","format":"email","description":"Owner email address (used in RSS feed and platform settings)"},"token":{"type":"string","description":"Client token for authentication"},"createdOn":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedOn":{"type":"string","format":"date-time","description":"Last update timestamp"},"rssUrl":{"type":"string","description":"RSS feed URL for automated distribution to Spotify, Apple Music, and other podcast platforms","example":"https://autocontentapi.com/podcast/rss/abc123"}}},"PodcastEpisode":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the episode"},"podcastId":{"type":"string","description":"ID of the podcast show this episode belongs to"},"requestId":{"type":"string","description":"ID of the client request that created the source audio content"},"title":{"type":"string","description":"Episode title (displayed on podcast platforms)"},"description":{"type":"string","description":"Episode description (displayed on podcast platforms)"},"audioTitle":{"type":"string","description":"Original title from the generated audio content"},"audioUrl":{"type":"string","description":"Direct URL to the episode audio file (MP3 format for platform compatibility)"},"requestedOn":{"type":"string","format":"date-time","description":"When the episode was requested/created"},"succeededOn":{"type":"string","format":"date-time","description":"When the episode processing completed successfully"},"scheduledOn":{"type":"string","format":"date-time","description":"When the episode is scheduled to be published (if scheduled)"},"fileSize":{"type":"integer","description":"Audio file size in bytes (required for RSS enclosure tag)"},"durationSeconds":{"type":"integer","description":"Episode duration in seconds (displayed on podcast platforms)"}}},"Project":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the project (GUID)","example":"123e4567-e89b-12d3-a456-426614174000"},"name":{"type":"string","description":"Name of the project","example":"AI Startup Launch"},"description":{"type":"string","description":"Detailed description of the project","example":"Building an AI-powered SaaS tool for content creators. Focus on automation, efficiency, and user experience."},"url":{"type":"string","description":"Optional URL associated with the project","example":"https://example.com"},"token":{"type":"string","description":"Client token (owner of the project)","example":"abc123-def456-ghi789"},"createdOn":{"type":"string","format":"date-time","description":"Creation timestamp","example":"2024-01-01T12:00:00Z"},"updatedOn":{"type":"string","format":"date-time","description":"Last update timestamp","example":"2024-01-02T14:30:00Z"},"active":{"type":"boolean","description":"Whether the project is active","example":true},"imageUrl":{"type":"string","format":"uri","description":"Optional URL of the 200x50 brand image associated with the project"},"textColor":{"type":"string","nullable":true,"description":"Hex color (e.g.","example":"#111827"},"backgroundColor":{"type":"string","nullable":true,"description":"Hex color (e.g.","example":"#F9FAFB"},"brandColor":{"type":"string","nullable":true,"description":"Primary branding accent color applied to overlay shapes when branding is configured","example":"#4338CA"},"accentColor":{"type":"string","nullable":true,"description":"Secondary accent color applied to overlay highlights and subtitles when branding is configured","example":"#7C72EF"}}},"CreateProjectRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Name of the project (max 200 characters)","example":"AI Startup Launch"},"description":{"type":"string","description":"Detailed description of the project. Either description or url must be provided.","example":"Building an AI-powered SaaS tool for content creators. Focus on automation, efficiency, and user experience."},"url":{"type":"string","description":"Optional URL to fetch website content for auto-generating description. If provided without a description, AI will generate one.","example":"https://example.com"},"imageData":{"type":"string","description":"Optional base64 encoded PNG/JPG representing the project's brand image. The source image must be fully opaque; images containing any fully or partially transparent pixels are rejected. Any dimensions are accepted and the API resizes the image to 200x50 before storing the hosted copy as `imageUrl`."},"imageUrl":{"type":"string","format":"uri","description":"Optional HTTP/HTTPS URL to an existing PNG or JPG brand image. The source image must be fully opaque; images containing any fully or partially transparent pixels are rejected. The API downloads the source, resizes it to 200x50, and hosts the optimized copy. Cannot be combined with `imageData`."},"textColor":{"type":"string","description":"Optional hex color (format","example":"#111827","pattern":"^#[0-9A-Fa-f]{6}$"},"backgroundColor":{"type":"string","description":"Optional hex color (format","example":"#F9FAFB","pattern":"^#[0-9A-Fa-f]{6}$"},"brandColor":{"type":"string","description":"Optional primary accent hex color (format","example":"#4338CA","pattern":"^#[0-9A-Fa-f]{6}$"},"accentColor":{"type":"string","description":"Optional secondary accent hex color (format","example":"#7C72EF","pattern":"^#[0-9A-Fa-f]{6}$"}}},"UpdateProjectRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Updated name of the project (max 200 characters)","example":"AI SaaS Platform"},"description":{"type":"string",

# --- truncated at 32 KB (193 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/autocontent-api/refs/heads/main/openapi/autocontent-api-legacy-content-openapi.json