Skip to content

Authentication

The AniKura API supports two authentication methods. Third-party developers should use API keys. Bearer tokens are for the AniKura web app and browser extension only.


Anonymous Access

Some queries work without any authentication:

  • Search for anime and manga by title
  • View airing schedules
  • Fetch public anime/manga metadata

Limitations of unauthenticated access:

  • Adult content is always filtered out
  • Streaming links and movie release data are not available
  • Rate limits are most restrictive (1 request per 3 seconds, 500 per day)
  • No access to user list data

Register for a free API key to lift the daily cap to 2,000 requests/day — it takes about 30 seconds.


API Key Authentication

Include your API key in the X-API-Key header on every request:

Terminal window
curl -X POST https://api.anikura.io/graphql \
-H "Content-Type: application/json" \
-H "X-API-Key: ak_live_xxxxxxxxxxxxxxxx" \
-d '{"query": "{ anime(id: \"...\") { titleRomaji } }"}'

JavaScript example

const response = await fetch("https://api.anikura.io/graphql", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.ANIKURA_API_KEY,
},
body: JSON.stringify({
query: `
query SearchAnime($query: String!) {
searchAnime(query: $query, limit: 5) {
id
titleRomaji
averageScore
}
}
`,
variables: { query: "demon slayer" },
}),
});
const { data } = await response.json();

Key format

API keys follow the format ak_live_ followed by a random string. The key is shown once at creation time — store it securely. AniKura stores only the SHA-256 hash and cannot recover the plaintext key.


Bearer Token (web app / extension only)

The Next.js frontend uses Auth.js to issue ES256 JWTs. The Rust API validates these tokens on every request using the public key. This method is only for the AniKura website and browser extension — third-party developers should use API keys.

Terminal window
curl -X POST https://api.anikura.io/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJFUzI1NiIs..." \
-d '{"query": "{ viewer { username } }"}'

Access Tiers

UnauthenticatedFree API KeyIndie ($9.99/mo)Commercial ($29.99/mo)
Requests/second1 per 3 seconds1 per 2 seconds1 per second1 per second
Daily cap5002,000UnlimitedUnlimited
Data accessPublic metadataCore metadataFullFull
Streaming linksNoNoYesYes
Movie releasesNoNoYesYes
WebhooksNoNoYesYes
SLABest effortBest effort99.9% uptime99.9% uptime
SupportCommunity DiscordPriority emailPriority email