Find an API

Search public APIs with auth details & Postman guides

← All APIs

ElevenLabs API Documentation

elevenlabs · AI

AI No Auth Free & Open machine_learning

This is the documentation for the ElevenLabs API. You can use this API to use our service programmatically, this is done by using your xi-api-key. You can view your xi-api-key using the 'Profile' tab on https://beta.elevenlabs.io. Our API is experimental so all endpoints are subject to change.

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Get Generated Items

Returns metadata about all your generated audio.

https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/history

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/history"
import requests
response = requests.get(
    "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/history",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/history';

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/history"
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/history")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/history";
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Get User Info

Gets information about the user

https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/user

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/user"
import requests
response = requests.get(
    "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/user",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/user';

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/user"
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/user")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/user";
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Get Voices

Gets a list of all available voices for a user.

https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/voices

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/voices"
import requests
response = requests.get(
    "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/voices",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/voices';

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/voices"
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/voices")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/elevenlabs.io/1.0/v1/voices";
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with ElevenLabs API Documentation?

ElevenLabs API Documentation is a AI API. Developers commonly use ai APIs for:

  • adding natural language processing to your product
  • generating images, text, or code with AI models
  • building chatbots and virtual assistants
  • running sentiment analysis on customer feedback
  • powering recommendation and personalisation engines

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. ElevenLabs API Documentation is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗