Welcome to the StoryTime Africa Developer API! This API allows you to programmatically generate videos based on story text, voice selection, background music, and story type.
The API follows REST principles and uses JSON for request and response bodies. Authentication is handled via Bearer tokens using your unique API key.
All API requests must be authenticated using an API key provided in the `Authorization` header as a Bearer token.
You can find your API key in the Account Settings modal under the 'API' tab. The key is prefixed with `sk_`.
Authorization: Bearer sk_YOUR_USER_IDThis endpoint initiates the video generation process.
storytime.ericfranzee.com/api/v1/generate-video| Parameter | Type | Required | Description |
|---|---|---|---|
story | string | Yes | The main text content/summary for the video. Max 1500 characters. Note: For processing, the following characters will be replaced with spaces: newlines (\\n), double quotes ("), colons (:), hyphens (-), underscores (_), and periods (.). |
voice | string | Yes | The voice identifier for text-to-speech generation. See the full list below. |
music | string | Yes | Identifier for the background music. Options: '1' (Joyful), '2' (Horror), '3' (Piano), '4' (Natural), '5' (Love), or 'others'. |
musicUrl | string | If `music` is 'others' | A publicly accessible URL to an audio file (e.g., MP3) to use as background music. Required only when `music` is set to 'others'. |
storyType | string | Yes | The type of story. Options: "African Folktales", "History", "News", "Bedtime Stories". |
isVertical | boolean | No | Specifies video orientation. `true` for vertical (9:16), `false` (default) for landscape (16:9). |
video_length | string | No | Desired video length. Options: 'default' (~2 min, 1 credit), 'medium' (2-5 min, 2 credits), 'long' (5+ min, 3 credits). Only available for Pro/Elite plans. Defaults to 'default'. |
{
"story": "The wise owl shared its knowledge with the forest animals.",
"voice": "en-NG-Ezinne",
"music": "4",
"storyType": "Bedtime Stories",
"isVertical": true,
"video_length": "medium" // Optional: Request medium length video
}Indicates the video generation process has been successfully initiated.
{
"success": true,
"message": "Video generation started. If connection drops, check the provided URL after ~10 minutes.",
"videoUrl": "https://storage.googleapis.com/..." // or null if not immediately available
}400 Bad Request: Invalid input data (e.g., missing fields, story too long). Response body includes details.401 Unauthorized: Missing, invalid, or unknown API key.403 Forbidden: User subscription not found or video generation limit reached.500 Internal Server Error: An unexpected error occurred on the server.502 Bad Gateway: Error communicating with the backend video generation service (n8n).// Example 400 Bad Request
{
"success": false,
"error": "Invalid input.",
"details": {
"story": "Story content is required."
}
}
// Example 403 Forbidden
{
"success": false,
"error": "Video generation limit reached for your current plan."
}curl -X POST storytime.ericfranzee.com/api/v1/generate-video \
-H "Authorization: Bearer sk_YOUR_USER_ID" \
-H "Content-Type: application/json" \
-d '{
"story": "A brave tortoise decided to race the hare...",
"music": "1",
"voice": "en-US-Andrew",
"storyType": "African Folktales",
"isVertical": false
}'1: Joyful2: Horror3: Piano4: Natural5: Loveothers: Custom URL provided via `musicUrl`If you select 'others', you must also provide a valid, publicly accessible URL in the musicUrl parameter.
African FolktalesHistoryNewsBedtime StoriesChoose one of the following identifiers for the desired voice:
en-US-Ana - English (United States) - Anaen-US-AndrewMultilingual - English (United States) - AndrewMultilingualen-US-Andrew - English (United States) - Andrewen-US-Aria - English (United States) - Ariaen-US-AvaMultilingual - English (United States) - AvaMultilingualen-US-Ava - English (United States) - Avaen-US-BrianMultilingual - English (United States) - BrianMultilingualen-US-Brian - English (United States) - Brianen-US-Christopher - English (United States) - Christopheren-US-EmmaMultilingual - English (United States) - EmmaMultilingualen-US-Emma - English (United States) - Emmaen-US-Eric - English (United States) - Ericen-US-Guy - English (United States) - Guyen-US-Jenny - English (United States) - Jennyen-US-Michelle - English (United States) - Michelleen-US-Roger - English (United States) - Rogeren-US-Steffan - English (United States) - Steffanaf-ZA-Adri - Afrikaans (South Africa) - Adriaf-ZA-Willem - Afrikaans (South Africa) - Willemam-ET-Ameha - Amharic (Ethiopia) - Amehaam-ET-Mekdes - Amharic (Ethiopia) - Mekdesar-AE-Fatima - Arabic (United Arab Emirates) - Fatimaar-AE-Hamdan - Arabic (United Arab Emirates) - Hamdanar-BH-Ali - Arabic (Bahrain) - Aliar-BH-Laila - Arabic (Bahrain) - Lailaar-DZ-Amina - Arabic (Algeria) - Aminaar-DZ-Ismael - Arabic (Algeria) - Ismaelar-EG-Salma - Arabic (Egypt) - Salmaar-EG-Shakir - Arabic (Egypt) - Shakirar-IQ-Bassel - Arabic (Iraq) - Basselar-IQ-Rana - Arabic (Iraq) - Ranaar-JO-Sana - Arabic (Jordan) - Sanaar-JO-Taim - Arabic (Jordan) - Taimar-KW-Fahed - Arabic (Kuwait) - Fahedar-KW-Noura - Arabic (Kuwait) - Nouraar-LB-Layla - Arabic (Lebanon) - Laylaar-LB-Rami - Arabic (Lebanon) - Ramiar-LY-Iman - Arabic (Libya) - Imanar-LY-Omar - Arabic (Libya) - Omarar-MA-Jamal - Arabic (Morocco) - Jamalar-MA-Mouna - Arabic (Morocco) - Mounaar-OM-Abdullah - Arabic (Oman) - Abdullahar-OM-Aysha - Arabic (Oman) - Ayshaar-QA-Amal - Arabic (Qatar) - Amalar-QA-Moaz - Arabic (Qatar) - Moazar-SA-Hamed - Arabic (Saudi Arabia) - Hamedar-SA-Zariyah - Arabic (Saudi Arabia) - Zariyahar-SY-Amany - Arabic (Syria) - Amanyar-SY-Laith - Arabic (Syria) - Laithar-TN-Hedi - Arabic (Tunisia) - Hediar-TN-Reem - Arabic (Tunisia) - Reemar-YE-Maryam - Arabic (Yemen) - Maryamar-YE-Saleh - Arabic (Yemen) - Salehaz-AZ-Babek - Azerbaijani (Azerbaijan) - Babekaz-AZ-Banu - Azerbaijani (Azerbaijan) - Banubg-BG-Borislav - Bulgarian (Bulgaria) - Borislavbg-BG-Kalina - Bulgarian (Bulgaria) - Kalinabn-BD-Nabanita - Bangla (Bangladesh) - Nabanitabn-BD-Pradeep - Bangla (Bangladesh) - Pradeepbn-IN-Bashkar - Bangla (India) - Bashkarbn-IN-Tanishaa - Bangla (India) - Tanishaabs-BA-Goran - Bosnian (Bosnia and Herzegovina) - Goranbs-BA-Vesna - Bosnian (Bosnia and Herzegovina) - Vesnaca-ES-Enric - Catalan (Spain) - Enricca-ES-Joana - Catalan (Spain) - Joanacs-CZ-Antonin - Czech (Czech Republic) - Antonincs-CZ-Vlasta - Czech (Czech Republic) - Vlastacy-GB-Aled - Welsh (United Kingdom) - Aledcy-GB-Nia - Welsh (United Kingdom) - Niada-DK-Christel - Danish (Denmark) - Christelda-DK-Jeppe - Danish (Denmark) - Jeppede-AT-Ingrid - German (Austria) - Ingridde-AT-Jonas - German (Austria) - Jonasde-CH-Jan - German (Switzerland) - Jande-CH-Leni - German (Switzerland) - Lenide-DE-Amala - German (Germany) - Amalade-DE-Conrad - German (Germany) - Conradde-DE-FlorianMultilingual - German (Germany) - FlorianMultilingualde-DE-Katja - German (Germany) - Katjade-DE-Killian - German (Germany) - Killiande-DE-SeraphinaMultilingual - German (Germany) - SeraphinaMultilingualel-GR-Athina - Greek (Greece) - Athinael-GR-Nestoras - Greek (Greece) - Nestorasen-AU-Natasha - English (Australia) - Natashaen-AU-William - English (Australia) - Williamen-CA-Clara - English (Canada) - Claraen-CA-Liam - English (Canada) - Liamen-GB-Libby - English (United Kingdom) - Libbyen-GB-Maisie - English (United Kingdom) - Maisieen-GB-Ryan - English (United Kingdom) - Ryanen-GB-Sonia - English (United Kingdom) - Soniaen-GB-Thomas - English (United Kingdom) - Thomasen-HK-Sam - English (Hong Kong) - Samen-HK-Yan - English (Hong Kong) - Yanen-IE-Connor - English (Ireland) - Connoren-IE-Emily - English (Ireland) - Emilyen-IN-NeerjaExpressive - English (India) - NeerjaExpressiveen-IN-Neerja - English (India) - Neerjaen-IN-Prabhat - English (India) - Prabhaten-KE-Asilia - English (Kenya) - Asiliaen-KE-Chilemba - English (Kenya) - Chilembaen-NG-Abeo - English (Nigeria) - Abeoen-NG-Ezinne - English (Nigeria) - Ezinneen-NZ-Mitchell - English (New Zealand) - Mitchellen-NZ-Molly - English (New Zealand) - Mollyen-PH-James - English (Philippines) - Jamesen-PH-Rosa - English (Philippines) - Rosaen-SG-Luna - English (Singapore) - Lunaen-SG-Wayne - English (Singapore) - Wayneen-TZ-Elimu - English (Tanzania) - Elimuen-TZ-Imani - English (Tanzania) - Imanien-ZA-Leah - English (South Africa) - Leahen-ZA-Luke - English (South Africa) - Lukees-AR-Elena - Spanish (Argentina) - Elenaes-AR-Tomas - Spanish (Argentina) - Tomases-BO-Marcelo - Spanish (Bolivia) - Marceloes-BO-Sofia - Spanish (Bolivia) - Sofiaes-CL-Catalina - Spanish (Chile) - Catalinaes-CL-Lorenzo - Spanish (Chile) - Lorenzoes-CO-Gonzalo - Spanish (Colombia) - Gonzaloes-CO-Salome - Spanish (Colombia) - Salomees-CR-Juan - Spanish (Costa Rica) - Juanes-CR-Maria - Spanish (Costa Rica) - Mariaes-CU-Belkys - Spanish (Cuba) - Belkyses-CU-Manuel - Spanish (Cuba) - Manueles-DO-Emilio - Spanish (Dominican Republic) - Emilioes-DO-Ramona - Spanish (Dominican Republic) - Ramonaes-EC-Andrea - Spanish (Ecuador) - Andreaes-EC-Luis - Spanish (Ecuador) - Luises-ES-Alvaro - Spanish (Spain) - Alvaroes-ES-Elvira - Spanish (Spain) - Elviraes-ES-Ximena - Spanish (Spain) - Ximenaes-GQ-Javier - Spanish (Equatorial Guinea) - Javieres-GQ-Teresa - Spanish (Equatorial Guinea) - Teresaes-GT-Andres - Spanish (Guatemala) - Andreses-GT-Marta - Spanish (Guatemala) - Martaes-HN-Carlos - Spanish (Honduras) - Carloses-HN-Karla - Spanish (Honduras) - Karlaes-MX-Dalia - Spanish (Mexico) - Daliaes-MX-Jorge - Spanish (Mexico) - Jorgees-NI-Federico - Spanish (Nicaragua) - Federicoes-NI-Yolanda - Spanish (Nicaragua) - Yolandaes-PA-Margarita - Spanish (Panama) - Margaritaes-PA-Roberto - Spanish (Panama) - Robertoes-PE-Alex - Spanish (Peru) - Alexes-PE-Camila - Spanish (Peru) - Camilaes-PR-Karina - Spanish (Puerto Rico) - Karinaes-PR-Victor - Spanish (Puerto Rico) - Victores-PY-Mario - Spanish (Paraguay) - Marioes-PY-Tania - Spanish (Paraguay) - Taniaes-SV-Lorena - Spanish (El Salvador) - Lorenaes-SV-Rodrigo - Spanish (El Salvador) - Rodrigoes-US-Alonso - Spanish (United States) - Alonsoes-US-Paloma - Spanish (United States) - Palomaes-UY-Mateo - Spanish (Uruguay) - Mateoes-UY-Valentina - Spanish (Uruguay) - Valentinaes-VE-Paola - Spanish (Venezuela) - Paolaes-VE-Sebastian - Spanish (Venezuela) - Sebastianet-EE-Anu - Estonian (Estonia) - Anuet-EE-Kert - Estonian (Estonia) - Kertfa-IR-Dilara - Persian (Iran) - Dilarafa-IR-Farid - Persian (Iran) - Faridfi-FI-Harri - Finnish (Finland) - Harrifi-FI-Noora - Finnish (Finland) - Noorafil-PH-Angelo - Filipino (Philippines) - Angelofil-PH-Blessica - Filipino (Philippines) - Blessicafr-BE-Charline - French (Belgium) - Charlinefr-BE-Gerard - French (Belgium) - Gerardfr-CA-Antoine - French (Canada) - Antoinefr-CA-Jean - French (Canada) - Jeanfr-CA-Sylvie - French (Canada) - Sylviefr-CA-Thierry - French (Canada) - Thierryfr-CH-Ariane - French (Switzerland) - Arianefr-CH-Fabrice - French (Switzerland) - Fabricefr-FR-Denise - French (France) - Denisefr-FR-Eloise - French (France) - Eloisefr-FR-Henri - French (France) - Henrifr-FR-RemyMultilingual - French (France) - RemyMultilingualfr-FR-VivienneMultilingual - French (France) - VivienneMultilingualga-IE-Colm - Irish (Ireland) - Colmga-IE-Orla - Irish (Ireland) - Orlagl-ES-Roi - Galician (Spain) - Roigl-ES-Sabela - Galician (Spain) - Sabelagu-IN-Dhwani - Gujarati (India) - Dhwanigu-IN-Niranjan - Gujarati (India) - Niranjanhe-IL-Avri - Hebrew (Israel) - Avrihe-IL-Hila - Hebrew (Israel) - Hilahi-IN-Madhur - Hindi (India) - Madhurhi-IN-Swara - Hindi (India) - Swarahr-HR-Gabrijela - Croatian (Croatia) - Gabrijelahr-HR-Srecko - Croatian (Croatia) - Sreckohu-HU-Noemi - Hungarian (Hungary) - Noemihu-HU-Tamas - Hungarian (Hungary) - Tamasid-ID-Ardi - Indonesian (Indonesia) - Ardiid-ID-Gadis - Indonesian (Indonesia) - Gadisis-IS-Gudrun - Icelandic (Iceland) - Gudrunis-IS-Gunnar - Icelandic (Iceland) - Gunnarit-IT-Diego - Italian (Italy) - Diegoit-IT-Elsa - Italian (Italy) - Elsait-IT-Giuseppe - Italian (Italy) - Giuseppeit-IT-Isabella - Italian (Italy) - Isabellaja-JP-Keita - Japanese (Japan) - Keitaja-JP-Nanami - Japanese (Japan) - Nanamijv-ID-Dimas - Javanese (Indonesia) - Dimasjv-ID-Siti - Javanese (Indonesia) - Sitika-GE-Eka - Georgian (Georgia) - Ekaka-GE-Giorgi - Georgian (Georgia) - Giorgikk-KZ-Aigul - Kazakh (Kazakhstan) - Aigulkk-KZ-Daulet - Kazakh (Kazakhstan) - Dauletkm-KH-Piseth - Khmer (Cambodia) - Pisethkm-KH-Sreymom - Khmer (Cambodia) - Sreymomkn-IN-Gagan - Kannada (India) - Gagankn-IN-Sapna - Kannada (India) - Sapnako-KR-Hyunsu - Korean (Korea) - Hyunsuko-KR-InJoon - Korean (Korea) - InJoonko-KR-SunHi - Korean (Korea) - SunHilo-LA-Chanthavong - Lao (Laos) - Chanthavonglo-LA-Keomany - Lao (Laos) - Keomanylt-LT-Leonas - Lithuanian (Lithuania) - Leonaslt-LT-Ona - Lithuanian (Lithuania) - Onalv-LV-Everita - Latvian (Latvia) - Everitalv-LV-Nils - Latvian (Latvia) - Nilsmk-MK-Aleksandar - Macedonian (North Macedonia) - Aleksandarmk-MK-Marija - Macedonian (North Macedonia) - Marijaml-IN-Midhun - Malayalam (India) - Midhunml-IN-Sobhana - Malayalam (India) - Sobhanamn-MN-Bataa - Mongolian (Mongolia) - Bataamn-MN-Yesui - Mongolian (Mongolia) - Yesuimr-IN-Aarohi - Marathi (India) - Aarohimr-IN-Manohar - Marathi (India) - Manoharms-MY-Osman - Malay (Malaysia) - Osmanms-MY-Yasmin - Malay (Malaysia) - Yasminmt-MT-Grace - Maltese (Malta) - Gracemt-MT-Joseph - Maltese (Malta) - Josephmy-MM-Nilar - Burmese (Myanmar) - Nilarmy-MM-Thiha - Burmese (Myanmar) - Thihanb-NO-Finn - Norwegian Bokmål (Norway) - Finnnb-NO-Pernille - Norwegian Bokmål (Norway) - Pernillene-NP-Hemkala - Nepali (Nepal) - Hemkalane-NP-Sagar - Nepali (Nepal) - Sagarnl-BE-Arnaud - Dutch (Belgium) - Arnaudnl-BE-Dena - Dutch (Belgium) - Denanl-NL-Colette - Dutch (Netherlands) - Colettenl-NL-Fenna - Dutch (Netherlands) - Fennanl-NL-Maarten - Dutch (Netherlands) - Maartenpl-PL-Marek - Polish (Poland) - Marekpl-PL-Zofia - Polish (Poland) - Zofiaps-AF-GulNawaz - Pashto (Afghanistan) - GulNawazps-AF-Latifa - Pashto (Afghanistan) - Latifapt-BR-Antonio - Portuguese (Brazil) - Antoniopt-BR-Francisca - Portuguese (Brazil) - Franciscapt-BR-Thalita - Portuguese (Brazil) - Thalitapt-PT-Duarte - Portuguese (Portugal) - Duartept-PT-Raquel - Portuguese (Portugal) - Raquelro-RO-Alina - Romanian (Romania) - Alinaro-RO-Emil - Romanian (Romania) - Emilru-RU-Dmitry - Russian (Russia) - Dmitryru-RU-Svetlana - Russian (Russia) - Svetlanasi-LK-Sameera - Sinhala (Sri Lanka) - Sameerasi-LK-Thilini - Sinhala (Sri Lanka) - Thilinisk-SK-Lukas - Slovak (Slovakia) - Lukassk-SK-Viktoria - Slovak (Slovakia) - Viktoriasl-SI-Petra - Slovenian (Slovenia) - Petrasl-SI-Rok - Slovenian (Slovenia) - Rokso-SO-Muuse - Somali (Somalia) - Muuseso-SO-Ubax - Somali (Somalia) - Ubaxsq-AL-Anila - Albanian (Albania) - Anilasq-AL-Ilir - Albanian (Albania) - Ilirsr-RS-Nicholas - Serbian (Serbia) - Nicholassr-RS-Sophie - Serbian (Serbia) - Sophiesu-ID-Jajang - Sundanese (Indonesia) - Jajangsu-ID-Tuti - Sundanese (Indonesia) - Tutisv-SE-Mattias - Swedish (Sweden) - Mattiassv-SE-Sofie - Swedish (Sweden) - Sofiesw-KE-Rafiki - Swahili (Kenya) - Rafikisw-KE-Zuri - Swahili (Kenya) - Zurisw-TZ-Daudi - Swahili (Tanzania) - Daudisw-TZ-Rehema - Swahili (Tanzania) - Rehemata-IN-Pallavi - Tamil (India) - Pallavita-IN-Valluvar - Tamil (India) - Valluvarta-LK-Kumar - Tamil (Sri Lanka) - Kumarta-LK-Saranya - Tamil (Sri Lanka) - Saranyata-MY-Kani - Tamil (Malaysia) - Kanita-MY-Surya - Tamil (Malaysia) - Suryata-SG-Anbu - Tamil (Singapore) - Anbuta-SG-Venba - Tamil (Singapore) - Venbate-IN-Mohan - Telugu (India) - Mohante-IN-Shruti - Telugu (India) - Shrutith-TH-Niwat - Thai (Thailand) - Niwatth-TH-Premwadee - Thai (Thailand) - Premwadeetr-TR-Ahmet - Turkish (Turkey) - Ahmettr-TR-Emel - Turkish (Turkey) - Emeluk-UA-Ostap - Ukrainian (Ukraine) - Ostapuk-UA-Polina - Ukrainian (Ukraine) - Polinaur-IN-Gul - Urdu (India) - Gulur-IN-Salman - Urdu (India) - Salmanur-PK-Asad - Urdu (Pakistan) - Asadur-PK-Uzma - Urdu (Pakistan) - Uzmauz-UZ-Madina - Uzbek (Uzbekistan) - Madinauz-UZ-Sardor - Uzbek (Uzbekistan) - Sardorvi-VN-HoaiMy - Vietnamese (Vietnam) - HoaiMyvi-VN-NamMinh - Vietnamese (Vietnam) - NamMinhzh-CN-Xiaoxiao - Chinese (Mandarin, Simplified) - Xiaoxiaozh-CN-Xiaoyi - Chinese (Mandarin, Simplified) - Xiaoyizh-CN-Yunjian - Chinese (Mandarin, Simplified) - Yunjianzh-CN-Yunxi - Chinese (Mandarin, Simplified) - Yunxizh-CN-Yunxia - Chinese (Mandarin, Simplified) - Yunxiazh-CN-Yunyang - Chinese (Mandarin, Simplified) - Yunyangzh-CN-liaoning-Xiaobei - Chinese (Mandarin, Simplified) - liaoning-Xiaobeizh-CN-shaanxi-Xiaoni - Chinese (Mandarin, Simplified) - shaanxi-Xiaonizh-HK-HiuGaai - Chinese (Cantonese, Traditional) - HiuGaaizh-HK-HiuMaan - Chinese (Cantonese, Traditional) - HiuMaanzh-HK-WanLung - Chinese (Cantonese, Traditional) - WanLungzh-TW-HsiaoChen - Chinese (Taiwanese Mandarin) - HsiaoChenzh-TW-HsiaoYu - Chinese (Taiwanese Mandarin) - HsiaoYuzh-TW-YunJhe - Chinese (Taiwanese Mandarin) - YunJhezu-ZA-Thando - Zulu (South Africa) - Thandozu-ZA-Themba - Zulu (South Africa) - ThembaDon't worry! We'll help you get started with our API. Here's what you need to know:
Here's a quick example of making an API call:
That's it! You're all set to start using our API.