# Content

Content operations and usage information

## Get usage information

> Returns current usage statistics and remaining credits

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/Usage":{"get":{"summary":"Get usage information","description":"Returns current usage statistics and remaining credits","tags":["Content"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"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"}}}}}},"401":{"description":"Unauthorized"}}}}}}
```

## Get all podcasts

> Returns all podcasts created by the current client, optionally filtered by status

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/Podcasts":{"get":{"summary":"Get all podcasts","description":"Returns all podcasts created by the current client, optionally filtered by status","tags":["Content"],"parameters":[{"in":"query","name":"status","required":false,"schema":{"type":"string","enum":["all","queued","failed","succeeded","processed"],"default":"all"},"description":"Filter podcasts by status (all=all podcasts, queued=status=0 and no error, failed=has errorOn, succeeded=status=100, processed=has processingOn)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"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"}}}}}}},"400":{"description":"Invalid status parameter"},"401":{"description":"Unauthorized"}}}}}}
```

## Get all transcripts

> Returns all transcripts created by the current client, optionally filtered by status

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/Transcripts":{"get":{"summary":"Get all transcripts","description":"Returns all transcripts created by the current client, optionally filtered by status","tags":["Content"],"parameters":[{"in":"query","name":"status","required":false,"schema":{"type":"string","enum":["all","queued","failed","succeeded","processed"],"default":"all"},"description":"Filter transcripts by status (all=all transcripts, queued=status=0 and no error, failed=has errorOn, succeeded=status=100, processed=has processingOn)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"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"}}}}}}},"400":{"description":"Invalid status parameter"},"401":{"description":"Unauthorized"}}}}}}
```

## Create new content

> Generate new content based on resources, topic, or feeds. Either 'resources', 'topic', or 'feeds' must be provided.

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/Create":{"post":{"summary":"Create new content","description":"Generate new content based on resources, topic, or feeds. Either 'resources', 'topic', or 'feeds' must be provided.","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["outputType"],"properties":{"resources":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["text","youtube","website","pdf"]},"content":{"type":"string"}}},"description":"Resources for content generation (required if topic, feeds, or researches are not provided)"},"topic":{"type":"string","description":"Topic for content generation (alternative to resources, feeds, or researches)"},"feeds":{"type":"array","items":{"type":"integer"},"description":"Array of feed IDs for content generation (alternative to resources, topic, or researches, max 10)"},"researches":{"type":"array","items":{"type":"string"},"description":"Array of research IDs to include as text resources (max 10)"},"text":{"type":"string","description":"Instructions or query for content generation"},"outputType":{"type":"string","enum":["audio","text","faq","study_guide","timeline","briefing_doc"],"description":"Type of output content"},"duration":{"type":"string","enum":["short","long","default"],"description":"Duration preference for content generation"},"includeCitations":{"type":"boolean","description":"Whether to include citations (PRO only)"},"callbackData":{"type":"string","description":"Optional data to include in webhooks"},"notebookId":{"type":"string","description":"Notebook ID for enterprise clients"},"language":{"type":"string","description":"Language for content generation"},"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"}}}}}},"responses":{"200":{"description":"Request accepted","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","description":"Unique ID for tracking the request"},"status":{"type":"integer","description":"Initial status code (0)"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized"}}}}}}
```

## Check request status

> Get the status of a content generation request

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/Status/{id}":{"get":{"summary":"Check request status","description":"Get the status of a content generation request","tags":["Content"],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"},"description":"Request ID"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Request ID"},"audio_title":{"type":"string","description":"Title of the generated audio"},"status":{"type":"integer","description":"Status code (100 = completed)"},"audio_url":{"type":"string","description":"URL to the generated audio file"},"video_url":{"type":"string","description":"URL to the generated video file (if applicable)"},"image_url":{"type":"string","description":"URL to the generated image file (if applicable)"},"response_text":{"type":"string","description":"Generated text content"},"requested_on":{"type":"string","format":"date-time","description":"When the request was created"},"callback_data":{"type":"string","description":"User-provided callback data"},"updated_on":{"type":"string","format":"date-time","description":"When the request was last updated"},"request_type_id":{"type":"integer","description":"Type of request"},"error_code":{"type":"integer","description":"Error code (0 if no error)"},"citations":{"type":"array","items":{"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"}}},"description":"Citations if requested"},"file_size":{"type":"integer","description":"Size of the generated file in bytes"},"audio_duration":{"type":"number","description":"Duration of the audio in seconds"},"share_url":{"type":"string","description":"Public sharing URL for the content"}}},{"type":"object","properties":{"id":{"type":"string","description":"Request ID"},"status":{"type":"integer","description":"Status code (0 = pending, other values indicate processing stages)"},"updated_on":{"type":"string","format":"date-time","description":"When the request was last updated"},"error_code":{"type":"integer","description":"Error code (0 if no error)"},"error_message":{"type":"string","description":"Error message if any"},"requested_on":{"type":"string","format":"date-time","description":"When the request was created"},"callback_data":{"type":"string","description":"User-provided callback data"}}}]}}}},"401":{"description":"Unauthorized"},"404":{"description":"Request not found"}}}}}}
```

## List content requests

> Get a list of content generation requests

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/List":{"get":{"summary":"List content requests","description":"Get a list of content generation requests","tags":["Content"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Request ID"},"requestTypeId":{"type":"integer","description":"Type of content request"},"status":{"type":"integer","description":"Current status code"},"requestedOn":{"type":"string","format":"date-time","description":"Request creation timestamp"},"audioTitle":{"type":"string","description":"Title of the generated audio (if available)"}}}}}}},"401":{"description":"Unauthorized"}}}}}}
```

## Get available voices

> List all available voices for audio generation

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/GetVoices":{"get":{"summary":"Get available voices","description":"List all available voices for audio generation","tags":["Content"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Voice ID"},"name":{"type":"string","description":"Voice name"},"clientId":{"type":"string","description":"ID of the client that owns this voice (for custom voices)"}}}}}}},"401":{"description":"Unauthorized"}}}}}}
```

## Get current client info

> Returns current client ID

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/Me":{"get":{"summary":"Get current client info","description":"Returns current client ID","tags":["Content"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"type":"string","description":"Current authenticated client ID"}}}}}},"401":{"description":"Unauthorized"}}}}}}
```

## Register webhook

> Register a webhook URL for notifications

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/Webhook":{"post":{"summary":"Register webhook","description":"Register a webhook URL for notifications","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Webhook URL to register"}}}}}},"responses":{"200":{"description":"Webhook registered","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Webhook ID"},"url":{"type":"string","description":"Registered webhook URL"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized"}}}}}}
```

## Remove webhook

> Remove a registered webhook

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/RemoveWebhook":{"post":{"summary":"Remove webhook","description":"Remove a registered webhook","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"ID of the webhook to remove"}}}}}},"responses":{"200":{"description":"Webhook removed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the operation was successful"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized"}}}}}}
```

## Get webhooks

> List all registered webhooks

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/Webhooks":{"get":{"summary":"Get webhooks","description":"List all registered webhooks","tags":["Content"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Webhook ID"},"url":{"type":"string","description":"Registered webhook URL"}}}}}}},"401":{"description":"Unauthorized"}}}}}}
```

## Modify podcast

> Modify an existing podcast with new voices and background music

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/ModifyPodcast":{"post":{"summary":"Modify podcast","description":"Modify an existing podcast with new voices and background music","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["audioUrl","voice1","voice2"],"properties":{"audioUrl":{"type":"string","description":"URL to the audio file to modify"},"voice1":{"type":"string","description":"ID of first voice to use"},"voice2":{"type":"string","description":"ID of second voice to use"},"instructions":{"type":"string","description":"Additional instructions"},"backgroundMusicUrl":{"type":"string","description":"Optional URL to background music file"},"callbackData":{"type":"string","description":"Optional data for webhook callbacks"}}}}}},"responses":{"200":{"description":"Request accepted","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","description":"Unique ID for tracking the request"},"status":{"type":"integer","description":"Initial status code (0)"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized"}}}}}}
```

## Separate speakers in audio

> Separate speakers in an audio file

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/SeparateSpeakersAudio":{"post":{"summary":"Separate speakers in audio","description":"Separate speakers in an audio file","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["audioUrl"],"properties":{"audioUrl":{"type":"string","description":"URL to the audio file"},"callbackData":{"type":"string","description":"Optional data for webhook callbacks"}}}}}},"responses":{"200":{"description":"Request accepted","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","description":"Unique ID for tracking the request"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized"}}}}}}
```

## Clone voice

> Clone a voice from an audio file (PRO only)

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/CloneVoice":{"post":{"summary":"Clone voice","description":"Clone a voice from an audio file (PRO only)","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["audioUrl","name"],"properties":{"audioUrl":{"type":"string","description":"URL to the audio file for voice cloning"},"name":{"type":"string","description":"Name for the cloned voice"}}}}}},"responses":{"200":{"description":"Request accepted","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","description":"Unique ID for tracking the request"},"status":{"type":"integer","description":"Initial status code (0)"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized"}}}}}}
```

## Get transcript

> Generate transcript from an audio file or episode. Either 'audioUrl' or 'episodeId' must be provided, but not both.

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/GetTranscript":{"post":{"summary":"Get transcript","description":"Generate transcript from an audio file or episode. Either 'audioUrl' or 'episodeId' must be provided, but not both.","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","oneOf":[{"required":["audioUrl"]},{"required":["episodeId"]}],"properties":{"audioUrl":{"type":"string","description":"URL to the audio file (.mp3 or .wav format). Cannot be used with episodeId."},"episodeId":{"type":"string","description":"ID of an existing episode to transcribe. Cannot be used with audioUrl."},"callbackData":{"type":"string","description":"Optional data for webhook callbacks"}}}}}},"responses":{"200":{"description":"Request accepted","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","description":"Unique ID for tracking the request"},"status":{"type":"integer","description":"Initial status code (0)"}}}}}},"400":{"description":"Invalid request (missing parameters, both parameters provided, or invalid audio format)"},"401":{"description":"Unauthorized"}}}}}}
```

## Get transcript by episode ID

> Retrieve an existing transcript for a specific episode

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/GetTranscript/{episodeId}":{"get":{"summary":"Get transcript by episode ID","description":"Retrieve an existing transcript for a specific episode","tags":["Content"],"parameters":[{"in":"path","name":"episodeId","required":true,"schema":{"type":"string"},"description":"The ID of the episode to get the transcript for"}],"responses":{"200":{"description":"Transcript retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the operation was successful"},"episodeId":{"type":"string","description":"The episode ID that was requested"},"requestId":{"type":"string","description":"The original request ID used to generate this transcript"},"transcript":{"type":"string","description":"The transcript content (JSON string format)"},"createdOn":{"type":"string","format":"date-time","description":"When the transcript was created"}}}}}},"400":{"description":"Invalid request (missing episode ID)"},"401":{"description":"Unauthorized"},"404":{"description":"Transcript not found for the specified episode ID"},"500":{"description":"Internal server error"}}}}}}
```

## Create podcast from custom script

> Create a podcast using a custom script

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/CreatePodcastCustomScript":{"post":{"summary":"Create podcast from custom script","description":"Create a podcast using a custom script","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["script","voice1","voice2"],"properties":{"script":{"type":"string","description":"Script with SPEAKER_00/SPEAKER_01 prefixes"},"voice1":{"type":"string","description":"ID of first voice to use (SPEAKER_00)"},"voice2":{"type":"string","description":"ID of second voice to use (SPEAKER_01)"},"callbackData":{"type":"string","description":"Optional data for webhook callbacks"}}}}}},"responses":{"200":{"description":"Request accepted","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","description":"Unique ID for tracking the request"},"status":{"type":"integer","description":"Initial status code (0)"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized"}}}}}}
```

## Create podcast with custom voices

> Create a podcast with specified voices based on resources, topic, or feeds. Either 'resources', 'topic', or 'feeds' must be provided.

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/CreatePodcastCustomVoices":{"post":{"summary":"Create podcast with custom voices","description":"Create a podcast with specified voices based on resources, topic, or feeds. Either 'resources', 'topic', or 'feeds' must be provided.","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["voice1","voice2"],"properties":{"resources":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["text","youtube","website","pdf"]},"content":{"type":"string"}}},"description":"Resources for content generation (required if topic or feeds are not provided)"},"topic":{"type":"string","description":"Topic for content generation (alternative to resources or feeds)"},"feeds":{"type":"array","items":{"type":"integer"},"description":"Array of feed IDs for content generation (alternative to resources or topic, max 10)"},"text":{"type":"string","description":"Instructions or query for content generation"},"voice1":{"type":"string","description":"ID of first voice to use"},"voice2":{"type":"string","description":"ID of second voice to use"},"duration":{"type":"string","enum":["short","long","default"],"description":"Duration preference for content generation"},"notebookId":{"type":"string","description":"Notebook ID for enterprise clients"},"callbackData":{"type":"string","description":"Optional data for webhook callbacks"}}}}}},"responses":{"200":{"description":"Request accepted","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","description":"Unique ID for tracking the request"},"status":{"type":"integer","description":"Initial status code (0)"}}}}}},"400":{"description":"Invalid request"},"401":{"description":"Unauthorized"}}}}}}
```

## Remove cloned voice

> Remove a cloned voice owned by the current user

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/RemoveVoice":{"post":{"summary":"Remove cloned voice","description":"Remove a cloned voice owned by the current user","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"ID of the voice to remove"}}}}}},"responses":{"200":{"description":"Voice removed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the operation was successful"},"message":{"type":"string","description":"Success message"}}}}}},"400":{"description":"Invalid request or missing voice ID"},"401":{"description":"Unauthorized"},"404":{"description":"Voice not found or cannot be deleted"}}}}}}
```

## Delete request

> Mark a content request as deleted

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/DeleteRequest":{"post":{"summary":"Delete request","description":"Mark a content request as deleted","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"ID of the request to delete"}}}}}},"responses":{"200":{"description":"Request deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the operation was successful"},"message":{"type":"string","description":"Success message"}}}}}},"400":{"description":"Invalid request or missing request ID"},"401":{"description":"Unauthorized"},"404":{"description":"Request not found or not owned by user"},"500":{"description":"Failed to delete request"}}}}}}
```

## Schedule multiple podcasts

> Create multiple podcasts at once, scheduled at intervals from a start time. Supports two modes - URLs mode (one podcast per episode, with each episode containing multiple URLs) or feeds mode (multiple podcasts from specified feeds). Either 'urls' or 'feeds' must be provided, but not both.

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Content API","version":"1.0.0"},"tags":[{"name":"Content","description":"Content operations and usage information"}],"servers":[{"url":"https://api.autocontentapi.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/content/Schedule":{"post":{"summary":"Schedule multiple podcasts","description":"Create multiple podcasts at once, scheduled at intervals from a start time. Supports two modes - URLs mode (one podcast per episode, with each episode containing multiple URLs) or feeds mode (multiple podcasts from specified feeds). Either 'urls' or 'feeds' must be provided, but not both.","tags":["Content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["frequency"],"oneOf":[{"required":["urls"]},{"required":["feeds","numberOfEpisodes"]}],"properties":{"urls":{"type":"array","items":{"type":"array","items":{"type":"string","format":"uri"}},"description":"Array of episodes, where each episode is an array of URLs to create a podcast from (URLs mode - cannot be used with feeds)"},"feeds":{"type":"array","items":{"type":"integer"},"description":"Array of feed IDs for content generation (feeds mode - cannot be used with urls, max 10)"},"numberOfEpisodes":{"type":"integer","minimum":1,"maximum":100,"description":"Number of episodes to create (required when using feeds mode)"},"frequency":{"type":"integer","minimum":1,"description":"Frequency in minutes between scheduled podcasts"},"instructions":{"type":"string","maxLength":500,"description":"Optional instructions for podcast generation"},"brandUrl":{"type":"string","format":"uri","description":"Optional brand/service URL to include in each podcast (URLs mode only)"},"duration":{"type":"string","enum":["short","long","default"],"description":"Duration preference for podcasts"},"language":{"type":"string","description":"Language for podcast generation"},"podcastId":{"type":"string","description":"Podcast show ID to associate episodes with"},"voice1":{"type":"string","description":"ID of first voice (if provided, will use custom voices mode)"},"voice2":{"type":"string","description":"ID of second voice (required if voice1 is provided)"},"startOn":{"type":"string","format":"date-time","description":"Start time for scheduling (defaults to current time, cannot be more than 24 hours in the past)"},"callbackData":{"type":"string","description":"Optional data for webhook callbacks"},"notebookId":{"type":"string","description":"Notebook ID for enterprise clients"}}}}}},"responses":{"200":{"description":"Podcasts scheduled successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the operation was successful"},"scheduled_requests":{"type":"array","items":{"oneOf":[{"type":"object","description":"Response for URLs mode","properties":{"request_id":{"type":"string","description":"ID of the scheduled request"},"urls":{"type":"array","items":{"type":"string"},"description":"Array of URLs this request was created from"},"scheduled_on":{"type":"string","format":"date-time","description":"When this request is scheduled to run"},"status":{"type":"integer","description":"Initial status (0)"}}},{"type":"object","description":"Response for feeds mode","properties":{"request_id":{"type":"string","description":"ID of the scheduled request"},"feed_ids":{"type":"array","items":{"type":"integer"},"description":"Feed IDs used for this episode"},"episode_number":{"type":"integer","description":"Episode number in the series"},"scheduled_on":{"type":"string","format":"date-time","description":"When this request is scheduled to run"},"status":{"type":"integer","description":"Initial status (0)"}}}]}},"total_created":{"type":"integer","description":"Total number of requests created"},"start_time":{"type":"string","format":"date-time","description":"Start time used for scheduling"},"frequency_minutes":{"type":"integer","description":"Frequency in minutes between requests"},"mode":{"type":"string","enum":["URLs","feeds"],"description":"Mode used for scheduling"},"total_feeds_per_episode":{"type":"integer","description":"Number of feeds per episode (feeds mode only)"},"total_urls":{"type":"integer","description":"Total number of URLs across all episodes (URLs mode only)"}}}}}},"400":{"description":"Invalid request parameters or insufficient credits"},"401":{"description":"Unauthorized"}}}}}}
```
