xeno-canto API

Beginner's Pick Animals / No Auth Required Beginner HTTPS
Free to Use Varies (check documentation)

Overview

xeno-canto is a community-built library of over 700,000 wild bird sound recordings from around the world. You can query by species name, country, or quality rating and get back metadata plus a direct audio file URL. It is ideal for nature apps, educational tools, or anyone learning to work with scientific data APIs.

Beginner Tip

Search with a plain GET request like https://xeno-canto.org/api/2/recordings?query=owl — no API key needed. The recordings[].file field gives you a direct MP3 link you can play immediately.

Available Data

Use case: Integrate bird recordings data into web and mobile applications
xeno-canto data via REST API

Example Response

JSON Response
{
  "name": "xeno-canto",
  "data": "xeno-canto-specific information and attributes",
  "source": "xeno-canto"
}

Field Reference

numRecordings Total number of recordings matching your query
numPages Total pages available; use the page parameter to paginate through results
recordings[].en English common name of the bird species
recordings[].file Direct URL to the MP3 audio recording
recordings[].cnt Country where the recording was made
recordings[].q Quality rating from A (best) to E (worst)

Implementation Example

Request
// ⚠️ Note: This URL may be a documentation page. Check official docs for actual API endpoint.
const url = "https://xeno-canto.org/explore/api";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

CORS blocked in browser xeno-canto does not advertise CORS support, so browser fetch calls may be rejected
Make requests from a backend Node.js or Python script rather than directly from browser JavaScript
numRecordings returns 0 Misspelled species name or no recordings exist for that region filter
Try the scientific name (e.g. "Strix aluco") for more reliable results than common names
Empty page response Requesting a page number beyond the total available pages
Read the numPages field in the first response and stay within that range when paginating

Metadata Score Breakdown

Estimated from metadata — endpoint not independently tested

This score is estimated from observable metadata — HTTPS support, authentication model, declared CORS, and documentation reachability — because the API requires authentication or exposes no publicly testable endpoint. The five-signal breakdown is only shown for live-tested APIs.

Metadata estimate · endpoint not independently tested

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS UNKNOWN
Category Animals
Difficulty Beginner
Verified: 2026-04-04

Related Tags

Similar APIs

View All →