{"openapi":"3.1.0","info":{"title":"Apizie","version":"2.0.0","description":"One API key, one envelope, many public data sources."},"servers":[{"url":"https://apizie.tech"}],"security":[{"ApiKeyAuth":[]}],"paths":{"/v1/ai:sync-labs/voices-controller-voice-cost":{"get":{"operationId":"ai_sync_labs_voices_controller_voice_cost","summary":"GET /voices/cost","description":"GET /voices/cost","tags":["ai"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/voices-controller-voices":{"get":{"operationId":"ai_sync_labs_voices_controller_voices","summary":"Get all voices","description":"GET /voices","tags":["ai"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/voices-controller-create-voice":{"post":{"operationId":"ai_sync_labs_voices_controller_create_voice","summary":"Generates audio given inputted text and voice and synchronizes with the given video.","description":"POST /voices/create","tags":["ai"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["body"],"properties":{"body":{"type":"object","description":"JSON request body"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":0,"x-apizie-min-plan":null,"x-apizie-bulk":false,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/voices-controller-get-voice":{"get":{"operationId":"ai_sync_labs_voices_controller_get_voice","summary":"Use the ID from the POST request to check status. Keep checking until status is 'completed' and a download…","description":"GET /voices/{id}","tags":["ai"],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/lip-sync-controller-lipsync-cost":{"get":{"operationId":"ai_sync_labs_lip_sync_controller_lipsync_cost","summary":"Get the cost of a lipsync job. The cost is based on the frame rate of the video, length of the audio and…","description":"GET /lipsync/cost","tags":["ai"],"parameters":[{"name":"audioUrl","in":"query","required":true,"description":"A url to the audio file to be synchronized -- must be publicly accessible","schema":{"type":"string","description":"A url to the audio file to be synchronized -- must be publicly accessible"}},{"name":"videoUrl","in":"query","required":true,"description":"A url to the video file to be synchronized -- must be publicly accessible","schema":{"type":"string","description":"A url to the video file to be synchronized -- must be publicly accessible"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/lip-sync-controller-lip-sync":{"post":{"operationId":"ai_sync_labs_lip_sync_controller_lip_sync","summary":"Submit a set of urls to publically hosted audio and video files or to YouTube videos. Our synchronizer will…","description":"POST /lipsync","tags":["ai"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["body"],"properties":{"body":{"type":"object","description":"JSON request body"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":0,"x-apizie-min-plan":null,"x-apizie-bulk":false,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/lip-sync-controller-get-lipsync":{"get":{"operationId":"ai_sync_labs_lip_sync_controller_get_lipsync","summary":"Use the video ID from the POST request to check video status. Keep checking until status is 'completed' and…","description":"GET /lipsync/{id}","tags":["ai"],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/translate-controller-translation-cost":{"get":{"operationId":"ai_sync_labs_translate_controller_translation_cost","summary":"Get the cost of a lipsync job. The cost is based on the frame rate of the video, length of the audio and…","description":"GET /translate/cost","tags":["ai"],"parameters":[{"name":"videoUrl","in":"query","required":true,"description":"A url to the video file to be synchronized -- must be publicly accessible","schema":{"type":"string","description":"A url to the video file to be synchronized -- must be publicly accessible"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/translate-controller-translate":{"post":{"operationId":"ai_sync_labs_translate_controller_translate","summary":"Translates and synchronizes the given video to the specified target language.","description":"POST /translate","tags":["ai"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["body"],"properties":{"body":{"type":"object","description":"JSON request body"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":0,"x-apizie-min-plan":null,"x-apizie-bulk":false,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/translate-controller-get-translation":{"get":{"operationId":"ai_sync_labs_translate_controller_get_translation","summary":"Use the video ID from the POST request to check video status. Keep checking until status is 'completed' and…","description":"GET /translate/{id}","tags":["ai"],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/speak-controller-speak-cost":{"get":{"operationId":"ai_sync_labs_speak_controller_speak_cost","summary":"Get the cost of a speech synthesis job. The cost is based on the number of characters of text to synthesize.…","description":"GET /speak/cost","tags":["ai"],"parameters":[{"name":"transcript","in":"query","required":false,"description":"A string of text to be spoken by the AI","schema":{"type":"string","description":"A string of text to be spoken by the AI"}},{"name":"transcriptUrl","in":"query","required":false,"description":"A url pointing to a file of text to be spoken by the AI","schema":{"type":"string","description":"A url pointing to a file of text to be spoken by the AI"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/speak-controller-speak":{"post":{"operationId":"ai_sync_labs_speak_controller_speak","summary":"POST /speak","description":"POST /speak","tags":["ai"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["body"],"properties":{"body":{"type":"object","description":"JSON request body"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":0,"x-apizie-min-plan":null,"x-apizie-bulk":false,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/speak-controller-get-speech":{"get":{"operationId":"ai_sync_labs_speak_controller_get_speech","summary":"Use the video ID from the POST request to check video status. Keep checking until status is 'completed' and…","description":"GET /speak/{id}","tags":["ai"],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/animate-controller-animate-cost":{"get":{"operationId":"ai_sync_labs_animate_controller_animate_cost","summary":"Get the cost of an animate job. The cost is based on the frame rate of the video, and the number of…","description":"GET /animate/cost","tags":["ai"],"parameters":[{"name":"transcript","in":"query","required":false,"description":"A string of text to be spoken by the AI","schema":{"type":"string","description":"A string of text to be spoken by the AI"}},{"name":"transcriptUrl","in":"query","required":false,"description":"A url pointing to a file of text to be spoken by the AI","schema":{"type":"string","description":"A url pointing to a file of text to be spoken by the AI"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/animate-controller-animate":{"post":{"operationId":"ai_sync_labs_animate_controller_animate","summary":"Generates audio given inputted text and voice and synchronizes with the given video.","description":"POST /animate","tags":["ai"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["body"],"properties":{"body":{"type":"object","description":"JSON request body"}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":0,"x-apizie-min-plan":null,"x-apizie-bulk":false,"x-apizie-status":"byok"}},"/v1/ai:sync-labs/animate-controller-get-animation":{"get":{"operationId":"ai_sync_labs_animate_controller_get_animation","summary":"Use the ID from the POST request to check status. Keep checking until status is 'completed' and a download…","description":"GET /animate/{id}","tags":["ai"],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"byok"}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"RunEnvelope":{"type":"object","required":["project","data","timestamp"],"properties":{"project":{"type":"string","example":"dev-tools:hash"},"data":{},"timestamp":{"type":"string","format":"date-time"}}},"ErrorEnvelope":{"type":"object","properties":{"content":{},"message":{"type":"string"},"errors":{"type":"array","items":{}},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"responses":{"Error":{"description":"Invalid key, plan gate, rate limit or upstream failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}