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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/magichour-audio-projects-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
openapi: 3.2.0
info:
title: Magic Hour Audio Projects API
version: beta
description: "\nMagic Hour provides an API (beta) that can be integrated into your own application to generate videos and images using AI. \n\nWebhook documentation can be found [here](https://docs.magichour.ai/webhook-reference).\n\nIf you have any questions, please reach out to us via [discord](https://discord.gg/JX5rgsZaJp).\n\n# Authentication\n\nEvery request requires an API key.\n\nTo get started, first generate your API key [here](https://magichour.ai/developer?tab=api-keys&utm_source=docs&utm_medium=referral&utm_campaign=api-reference).\n\nThen, add the `Authorization` header to the request.\n\n| Key | Value |\n|-|-|\n| Authorization | Bearer mhk_live_apikey |\n\n> **Warning**: any API call that renders a video will utilize credits in your account.\n"
termsOfService: https://magichour.ai/terms-of-service
servers:
- url: https://api.magichour.ai
tags:
- name: Audio Projects
description: API related to audio projects
paths:
/v1/audio-projects/{id}:
get:
description: "Check the progress of a audio project. The `downloads` field is populated after a successful render.\n \n**Statuses**\n- `queued` — waiting to start\n- `rendering` — in progress\n- `complete` — ready; see `downloads`\n- `error` — a failure occurred (see `error`)\n- `canceled` — user canceled\n- `draft` — not used"
summary: Get audio details
tags:
- Audio Projects
parameters:
- name: id
in: path
required: true
schema:
type: string
example: cuid-example
description: Unique ID of the audio project. This value is returned by all of the POST APIs that create an audio.
operationId: audioProjects.getDetails
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
id:
type: string
example: cuid-example
description: Unique ID of the audio. Use it with the [Get audio Project API](https://docs.magichour.ai/api-reference/audio-projects/get-audio-details) to fetch status and downloads.
name:
type:
- string
- 'null'
description: The name of the audio.
example: Example Name
status:
type: string
enum:
- draft
- queued
- rendering
- complete
- error
- canceled
description: 'The status of the audio.
- `draft` - the project was created but has not been submitted for rendering
- `queued` - the job is waiting for an available server
- `rendering` - the job is being processed; the `audio.started` webhook event fires when rendering begins
- `complete` - the job finished successfully; fires `audio.completed`
- `error` - the job failed during processing; fires `audio.errored`
- `canceled` - the job was manually canceled (for example from the Magic Hour web app)
**Note:** `rendering`, `complete`, and `error` have matching webhook events; `canceled` does not - a canceled job emits no webhook event, so poll this endpoint to detect cancellation.'
example: complete
type:
type: string
description: The type of the audio project. Possible values are VOICE_GENERATOR, VOICE_CHANGER, VOICE_CLONER, VIDEO_TO_AUDIO, MUSIC_GENERATOR
example: VOICE_GENERATOR
created_at:
type: string
format: date-time
enabled:
type: boolean
description: Whether this resource is active. If false, it is deleted.
credits_charged:
type: integer
example: 2
description: "The amount of credits deducted from your account to generate the audio. We charge credits right when the request is made. \n\nIf an error occurred while generating the audio, credits will be refunded and this field will be updated to include the refund."
downloads:
type: array
items:
type: object
properties:
url:
type: string
format: uri
example: https://videos.magichour.ai/id/output.wav
expires_at:
type: string
format: date-time
example: '2024-10-19T05:16:19.027Z'
required:
- url
- expires_at
description: The download url and expiration date of the audio project
error:
type:
- object
- 'null'
properties:
message:
type: string
description: Details on the reason why a failure happened.
example: Please use an image with a detectable face
code:
type: string
example: no_source_face
description: An error code to indicate why a failure happened.
required:
- message
- code
description: In the case of an error, this object will contain the error encountered during video render
example: null
required:
- id
- name
- status
- type
- created_at
- enabled
- credits_charged
- downloads
- error
description: Success
'400':
description: Invalid Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
required:
- message
description: The request is invalid
example:
message: Missing request body
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Unauthorized
required:
- message
description: The request is not properly authenticated
example:
message: Unauthorized
'402':
description: Payment Required
content:
application/json:
schema:
type: object
properties:
message:
type: string
required:
- message
description: The request requires payment
example:
message: Payment required
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Not Found
required:
- message
description: Requested resource is not found
example:
message: Not Found
security:
- bearerAuth: []
x-codeSamples:
- lang: python
source: 'from magic_hour import Client
from os import getenv
client = Client(token=getenv("API_TOKEN"))
res = client.v1.audio_projects.get(id="cuid-example")'
- lang: javascript
source: 'import { Client } from "magic-hour";
const client = new Client({ token: process.env["API_TOKEN"]!! });
const res = await client.v1.audioProjects.get({ id: "cuid-example" });'
- lang: go
source: "package main\n\nimport (\n\tos \"os\"\n\n\tsdk \"github.com/magichourhq/magic-hour-go/client\"\n\taudio_projects \"github.com/magichourhq/magic-hour-go/resources/v1/audio_projects\"\n)\n\nfunc main() {\n\tclient := sdk.NewClient(\n\t\tsdk.WithBearerAuth(os.Getenv(\"API_TOKEN\")),\n\t)\n\tres, err := client.V1.AudioProjects.Get(audio_projects.GetRequest{\n\t\tId: \"cuid-example\",\n\t})\n}"
- lang: rust
source: "let client = magic_hour::Client::default()\n .with_bearer_auth(&std::env::var(\"API_TOKEN\").unwrap());\nlet res = client\n .v1()\n .audio_projects()\n .get(magic_hour::resources::v1::audio_projects::GetRequest {\n id: \"cuid-example\".to_string(),\n })\n .await;"
- lang: curl
source: "curl --request GET \\\n --url https://api.magichour.ai/v1/audio-projects/id \\\n --header 'accept: application/json' \\\n --header 'authorization: Bearer <token>'"
- lang: php
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"https://api.magichour.ai/v1/audio-projects/id\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"GET\",\n CURLOPT_HTTPHEADER => [\n \"accept: application/json\",\n \"authorization: Bearer <token>\"\n ],\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
- lang: java
source: "HttpResponse<String> response = Unirest.get(\"https://api.magichour.ai/v1/audio-projects/id\")\n .header(\"accept\", \"application/json\")\n .header(\"authorization\", \"Bearer <token>\")\n .asString();"
delete:
description: Permanently delete the rendered audio file(s). This action is not reversible, please be sure before deleting.
summary: Delete audio
tags:
- Audio Projects
parameters:
- name: id
in: path
required: true
schema:
type: string
example: cuid-example
description: Unique ID of the audio project. This value is returned by all of the POST APIs that create an audio.
operationId: audioProjects.delete
responses:
'204':
description: '204'
'400':
description: Invalid Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
required:
- message
description: The request is invalid
example:
message: Missing request body
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Unauthorized
required:
- message
description: The request is not properly authenticated
example:
message: Unauthorized
'402':
description: Payment Required
content:
application/json:
schema:
type: object
properties:
message:
type: string
required:
- message
description: The request requires payment
example:
message: Payment required
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Not Found
required:
- message
description: Requested resource is not found
example:
message: Not Found
security:
- bearerAuth: []
x-codeSamples:
- lang: python
source: 'from magic_hour import Client
from os import getenv
client = Client(token=getenv("API_TOKEN"))
res = client.v1.audio_projects.delete(id="cuid-example")'
- lang: javascript
source: 'import { Client } from "magic-hour";
const client = new Client({ token: process.env["API_TOKEN"]!! });
const res = await client.v1.audioProjects.delete({ id: "cuid-example" });'
- lang: go
source: "package main\n\nimport (\n\tos \"os\"\n\n\tsdk \"github.com/magichourhq/magic-hour-go/client\"\n\taudio_projects \"github.com/magichourhq/magic-hour-go/resources/v1/audio_projects\"\n)\n\nfunc main() {\n\tclient := sdk.NewClient(\n\t\tsdk.WithBearerAuth(os.Getenv(\"API_TOKEN\")),\n\t)\n\terr := client.V1.AudioProjects.Delete(audio_projects.DeleteRequest{\n\t\tId: \"cuid-example\",\n\t})\n}"
- lang: rust
source: "let client = magic_hour::Client::default()\n .with_bearer_auth(&std::env::var(\"API_TOKEN\").unwrap());\nlet res = client\n .v1()\n .audio_projects()\n .delete(magic_hour::resources::v1::audio_projects::DeleteRequest {\n id: \"cuid-example\".to_string(),\n })\n .await;"
- lang: curl
source: "curl --request DELETE \\\n --url https://api.magichour.ai/v1/audio-projects/id \\\n --header 'accept: application/json' \\\n --header 'authorization: Bearer <token>'"
- lang: php
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n CURLOPT_URL => \"https://api.magichour.ai/v1/audio-projects/id\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"DELETE\",\n CURLOPT_HTTPHEADER => [\n \"accept: application/json\",\n \"authorization: Bearer <token>\"\n ],\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
- lang: java
source: "HttpResponse<String> response = Unirest.delete(\"https://api.magichour.ai/v1/audio-projects/id\")\n .header(\"accept\", \"application/json\")\n .header(\"authorization\", \"Bearer <token>\")\n .asString();"
/v1/ai-voice-generator:
post:
description: Generate speech from text. Each character costs 0.1 credits. The cost is rounded up to the nearest whole number.
summary: AI Voice Generator
tags:
- Audio Projects
parameters: []
operationId: aiVoiceGenerator.createAudio
requestBody:
required: true
description: Body
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Give your audio a custom name for easy identification.
example: My Voice Generator audio
default: Voice Generator - dateTime
style:
type: object
properties:
prompt:
type: string
minLength: 1
description: Text used to generate speech. The character limit is 1000 characters.
example: Hello, how are you?
voice_name:
type: string
enum:
- Elon Musk
- Mark Zuckerberg
- Joe Rogan
- Barack Obama
- Morgan Freeman
- Kanye West
- Donald Trump
- Joe Biden
- Kim Kardashian
- Taylor Swift
- James Earl Jones
- Samuel L. Jackson
- Jeff Goldblum
- David Attenborough
- Sean Connery
- Cillian Murphy
- Anne Hathaway
- Julia Roberts
- Natalie Portman
- Steve Carell
- Amy Poehler
- Stephen Colbert
- Jimmy Fallon
- David Letterman
- Alex Trebek
- Katy Perry
- Prince
- Kevin Bacon
- Tom Hiddleston
- Adam Driver
- Alan Rickman
- Alexz Johnson
- Ana Gasteyer
- Andrew Rannells
- Arden Cho
- Bear Grylls
- Ben McKenzie
- Ben Stiller
- Ben Whishaw
- Billie Joe Armstrong
- Bingbing Li
- Booboo Stewart
- Bradley Steven Perry
- Bruno Mars
- Caity Lotz
- Cameron Boyce
- Candice Accola
- Carrie Underwood
- Casey Affleck
- Caterina Scorsone
- Cedric the Entertainer
- Chace Crawford
- Chadwick Boseman
- Charlie Day
- Chris Hemsworth
- Chris Martin
- Christopher Mintz-Plasse
- Dan Fogler
- Dan Stevens
- Daniel Dae Kim
- Danielle Panabaker
- Dave Bautista
- David Schwimmer
- Denis Leary
- Derek Mears
- Diego Luna
- Donald Glover
- Donnie Yen
- Doutzen Kroes
- Dove Cameron
- Dr. Dre
- Drake Bell
- Elle Fanning
- Ernie Hudson
- Fergie
- Forest Whitaker
- Francia Raisa
- Freddie Highmore
- Gillian Jacobs
- Gina Carano
- Ginnifer Goodwin
- Gordon Ramsay
- Guy Pearce
- Gwendoline Christie
- Hailee Steinfeld
- Howie Mandel
- Hugh Jackman
- Hugh Laurie
- J. K. Simmons
- Jack Black
- Jared Leto
- Jennifer Carpenter
- Kesha
- Kris Jenner
- Kristen Bell
- Lorde
- Matt Smith
- Marilyn Monroe
- Charlie Chaplin
- Albert Einstein
- Abraham Lincoln
- John F. Kennedy
- Lucille Ball
- A.R. Rahman
- Aamir Khan
- Ajay Devgn
- Akshay Kumar
- Alain Delon
- Alan Alda
- Alan Cumming
- Amitabh Bachchan
- Ang Lee
- Ansel Elgort
- Anthony Anderson
- Anthony Mackie
- Armie Hammer
- Asa Butterfield
- B.J. Novak
- Barbara Eden
- Betty White
- Bill Nighy
- Bill Pullman
- Blake Shelton
- Bonnie Wright
- Brad Paisley
- Brendan Gleeson
- Brian Cox
- Bruno Ganz
- Burt Reynolds
- Carrie Fisher
- Charles Dance
- Chiwetel Ejiofor
- Chris Pine
- Christina Hendricks
- Christina Ricci
- Cyndi Lauper
- Dakota Fanning
- Damian Lewis
- Dan Aykroyd
- Daniel Craig
- David Oyelowo
- David Tennant
- Diane Keaton
- Diane Kruger
- Dick Van Dyke
- Domhnall Gleeson
- Dominic Cooper
- Donald Sutherland
- Drew Carey
- Eartha Kitt
- Eddie Izzard
- Edward Asner
- Eli Roth
- Elisabeth Moss
- Ellen Burstyn
- Emile Hirsch
- Ezra Miller
- Felicity Jones
- Fiona Shaw
- Florence Henderson
- Freida Pinto
- Geena Davis
- Gemma Arterton
- Geri Halliwell
- Glenn Close
- Gloria Steinem
- Greta Gerwig
- Gugu Mbatha-Raw
- Hans Zimmer
- Harry Connick Jr.
- Harvey Keitel
- Helena Bonham Carter
- Henry Cavill
- Hilary Swank
- Hugh Bonneville
- Idina Menzel
- Imelda Staunton
- Ingrid Bergman
- Irrfan Khan
- Isla Fisher
- Iwan Rheon
- Jack Lemmon
- Janet Jackson
- Jason Bateman
- Jason Segel
- Jennifer Coolidge
- Johnny Galecki
- Jon Favreau
- Joseph Gordon-Levitt
- Josh Brolin
- Josh Gad
- Josh Groban
- Julia Louis-Dreyfus
- Kristen Stewart
- Kristen Wiig
- Rooney Mara
- Caitriona Balfe
- J.J. Abrams
- Zoe Saldana
- SpongeBob SquarePants
- Patrick Star
- Squidward Tentacles
- Homer Simpson
- Bart Simpson
- Peter Griffin
- Stewie Griffin
- Eric Cartman
- Rick Sanchez
- Bugs Bunny
- Mickey Mouse
- Donald Duck
- Shrek
- Donkey (Shrek)
- Elsa (Frozen)
- Woody (Toy Story)
- Buzz Lightyear
- Scooby-Doo
- Shaggy Rogers
- Bender (Futurama)
- Optimus Prime
- Batman (Animated)
- The Joker (Animated)
- Darth Vader
- Yoda
- Gollum Smeagol
- Gandalf
- Winnie the Pooh
- Kermit the Frog
- Elmo
- SpiderMan (Tom Holland ver.)
- Mario
- Luigi
- Sonic the Hedgehog
- Naruto Uzumaki
- Goku
- Vegeta
- Light Yagami
- Luffy (One Piece)
- Edward Elric
- Eren Jaeger
- Levi Ackerman
- Tanjiro Kamado
- All Might
- GLaDOS
- Master Chief
- Kratos
- Arthur Morgan
- Geralt of Rivia
- Dwayne 'The Rock' Johnson
- LeBron James
- Shaquille O'Neal
- Conor McGregor
- Mike Tyson
- Kobe Bryant
- Floyd Mayweather
- Cristiano Ronaldo
- Lionel Messi
- Serena Williams
- Tom Brady
- Stephen Curry
- John Cena
- Hulk Hogan
- Stone Cold Steve Austin
- The Undertaker
- Nate Diaz
- Charles Barkley
- Shannon Sharpe
- Drake
- Rihanna
- Eminem
- Snoop Dogg
- Jay-Z
- Ed Sheeran
- Billie Eilish
- Ariana Grande
- Adele
- Post Malone
- Travis Scott
- Nicki Minaj
- Cardi B
- Doja Cat
- Bad Bunny
- Justin Bieber
- Sabrina Carpenter
- Chappell Roan
- Dua Lipa
- The Weeknd
- Miley Cyrus
- Lady Gaga
- Kendrick Lamar
- Ozzy Osbourne
- Freddie Mercury
- Elvis Presley
- Bob Marley
- Frank Sinatra
- MrBeast
- PewDiePie
- Kai Cenat
- IShowSpeed
- Markiplier
- Jacksepticeye
- KSI
- Logan Paul
- Jake Paul
- Dream (Minecraft)
- Corpse Husband
- xQc
- Pokimane
- Valkyrae
- Ninja
- Joe Scott
- Linus (LTT)
- Ryan Reynolds
- Tom Hanks
- Robert Downey Jr.
- Will Smith
- Denzel Washington
- Leonardo DiCaprio
- Brad Pitt
- Keanu Reeves
- Nicolas Cage
- Al Pacino
- Robert De Niro
- Arnold Schwarzenegger
- Sylvester Stallone
- Vin Diesel
- Jason Statham
- Tom Cruise
- Johnny Depp
- Scarlett Johansson
- Angelina Jolie
- Jennifer Aniston
- Emma Watson
- Margot Robbie
- Sydney Sweeney
- Zendaya
- Timothee Chalamet
- Pedro Pascal
- Oscar Isaac
- Benedict Cumberbatch
- Ian McKellen
- Patrick Stewart
- Christopher Walken
- Matthew McConaughey
- Harrison Ford
- Mark Wahlberg
- Owen Wilson
- Seth Rogen
- Kevin Hart
- Adam Sandler
- Jim Carrey
- Eddie Murphy
- Robin Williams
- Will Ferrell
- Melissa McCarthy
- Awkwafina
- Jason Momoa
- Idris Elba
- Tom Hardy
- Michael B. Jordan
- Austin Butler
- Glen Powell
- Paul Giamatti
- Bryan Cranston
- Bob Odenkirk
- Vladimir Putin
- Queen Elizabeth II
- Winston Churchill
- Martin Luther King Jr.
- Kamala Harris
- Bernie Sanders
- Alexandria Ocasio-Cortez
- Narendra Modi
- Oprah Winfrey
- Ellen DeGeneres
- Dr. Phil
- Steve Harvey
- Trevor Noah
- John Oliver
- James Corden
- Ryan Seacrest
- Howard Stern
- Conan O'Brien
- Seth Meyers
- Bill Nye
- Neil deGrasse Tyson
- Guy Fieri
- Dave Chappelle
- Chris Rock
- Jerry Seinfeld
- Ali Wong
- John Mulaney
- Hasan Minhaj
- Nikki Glaser
- Matt Rife
- Gabriel Iglesias
- Bo Burnham
- Jeff Bezos
- Bill Gates
- Steve Jobs
- Tim Cook
- Sam Altman
- Jensen Huang
- Gilbert Gottfried
- James May
- Jeremy Clarkson
- Richard Hammond
- Bob Ross
- Anthony Bourdain
- David Goggins
- Jordan Peterson
- Joe Pesci
- Danny DeVito
- Seth MacFarlane
- Patrick Warburton
- Keith David
- Mark Hamill
- Liam Neeson
- Antonio Banderas
- Sofia Vergara
- Penelope Cruz
- Gal Gadot
- Cate Blanchett
- Viola Davis
- Meryl Streep
- Sandra Bullock
- Reese Witherspoon
- Salma Hayek
- Lupita Nyong'o
- Florence Pugh
- Jenna Ortega
- Ana de Armas
- Jacob Elordi
- Barry White
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/magichour/refs/heads/main/openapi/magichour-audio-projects-api-openapi.yml