Nadeshiko API (2.0.4)

Download OpenAPI specification:

Thank you for using the Nadeshiko API! This API lets you search Japanese dialogue segments across anime and J-Drama, with translations and contextual metadata.

Authentication

All API requests require an API key passed as a Bearer token. You can register and generate your key on the developer page, where you can also check your current usage.

Rate Limit

Each API key is limited to 150 requests per minute. Exceeding this limit will return a 429 Too Many Requests response.

Quota

Each account has a monthly quota of 5,000 requests. Once exceeded, further requests will be rejected until the next month. To request a quota increase, reach out via the contact page.

Search

Search endpoints for querying Japanese segments across indexed media.

Search segments by query

The primary search endpoint for finding Japanese segments and their translations across indexed media (anime, J-Drama).

This endpoint uses Elasticsearch with advanced Japanese text analysis supporting multiple input types (romaji, kanji, kana) and providing intelligent field-based boosting.

Query Features

  • Multi-language Support: Search using Japanese (kanji/kana), Romaji, or English/Spanish
  • Boolean Operators: AND, OR, NOT supported (e.g., (cat OR dog) AND bird)
  • Phrase Matching: Use quotes for exact phrases (e.g., "good morning"), or pass exactMatch: true to the request body
  • Wildcards: te*t format (leading wildcards not supported)
  • Smart Field Selection: Automatically chooses optimal search fields based on input type

Input Type Handling

Input Type Search Strategy
Romaji (go, taberu) Boosts EN/ES translations, reading form (pronunciation), and base form
Kanji (食べる, 彼女) Searches content and base form (dictionary form). Ignores matches by reading (homophones).
Kana (たべる, かのじょ) Standard search across content, base form, and reading form
English/Spanish Direct translation search
Authorizations:
ApiKey
Request Body schema: application/json
object

What to search for (omit for queryless browse)

take
integer
Default: 10

Max amount of entries by response

cursor
string

Opaque cursor token returned from the previous search page

object

Sort configuration

object (SearchFilters)

Search filters for narrowing segment results

include
Array of strings (IncludeExpansion)
Default: ["media"]
Items Value: "media"

Resources to expand in the response includes block

Responses

Request samples

Content type
application/json
{
  • "query": {
    },
  • "take": 10,
  • "cursor": "eyJraW5kIjoia2V5c2V0IiwiY3Vyc29yIjpbMjMuMzE3MjcsN119",
  • "sort": {
    },
  • "filters": {
    },
  • "include": [
    ]
}

Response samples

Content type
application/json
{
  • "segments": [
    ],
  • "includes": {},
  • "pagination": {
    }
}

Get search statistics

Returns statistics for search filters and category tabs without fetching segment rows.

This endpoint is optimized for UI filter panels:

  • media powers the media dropdown on the right side.
  • categories powers category tabs below the search bar.

The stats are scoped by query and category filters, but are not narrowed by a selected media/episode.

Authorizations:
ApiKey
Request Body schema: application/json
object

What to search for (omit for queryless stats)

object (SearchFilters)

Search filters for narrowing segment results

include
Array of strings (IncludeExpansion)
Default: []
Items Value: "media"

Resources to expand in the response includes block

Responses

Request samples

Content type
application/json
{
  • "query": {
    },
  • "filters": {
    },
  • "include": [ ]
}

Response samples

Content type
application/json
{}

Search by multiple words

Searches for multiple words simultaneously and aggregates results by media.

Unlike the main search endpoint, this returns a summary of matches per media rather than individual segments.

Authorizations:
ApiKey
Request Body schema: application/json
required
required
object

What to search for

object (SearchFilters)

Search filters for narrowing segment results

include
Array of strings (IncludeExpansion)
Default: []
Items Value: "media"

Resources to expand in the response includes block

Responses

Request samples

Content type
application/json
{
  • "words": [
    ],
  • "exactMatch": false
}

Response samples

Content type
application/json
{}

Media

Media CRUD endpoints for managing anime and J-Drama entries, episodes, segments, characters, and seiyuu.

List all media

Returns a paginated list of media with full metadata, including cover/banner images, episode counts, and genres. Supports filtering by category and text search.

Authorizations:
ApiKey
query Parameters
take
integer [ 1 .. 40 ]
Default: 20

Number of results per page

cursor
string

Opaque pagination cursor token

category
string
Enum: "ANIME" "JDRAMA"
Example: category=ANIME

Filter by media category

query
string
Example: query=steins

Search query for filtering media by name

include
Array of strings (MediaIncludeExpansion)
Default: ""
Items Value: "media.characters"

Resources to expand in the media response

Responses

Response samples

Content type
application/json
{
  • "media": [],
  • "pagination": {
    },
  • "stats": {
    }
}

Get segment by publicId

Returns a specific segment by its publicId. A shortcut alternative to the nested /media/{mediaId}/episodes/{episodeNumber}/segments/{id} path.

Pass include[]=ratingAnalysis and/or include[]=posAnalysis to receive raw analysis fields alongside the standard segment data.

Authorizations:
ApiKey
path Parameters
uuid
required
string
Example: 3fd94cef-a3e1-31ae-bc8d-e743f03e9c7e

Segment publicId

query Parameters
include
Array of strings
Items Enum: "ratingAnalysis" "posAnalysis" "hashedId" "storageBasePath" "storage"

Additional internal fields to include in the response

Responses

Response samples

Content type
application/json
{
  • "id": 120045,
  • "uuid": "3fd94cef-a3e1-31ae-bc8d-e743f03e9c7e",
  • "publicId": "V1StGXR8_Z5d",
  • "position": 1133,
  • "status": "ACTIVE",
  • "startTimeMs": 2007255,
  • "endTimeMs": 2008464,
  • "contentRating": "SAFE",
  • "episode": 1,
  • "mediaId": 7674,
  • "mediaPublicId": "V1StGXR8_Z5d",
  • "textJa": {
    },
  • "textEn": {
    },
  • "textEs": {
    },
  • "urls": {},
  • "storage": "R2",
  • "hashedId": "0d39e46b14",
  • "storageBasePath": "anime/steins-gate",
  • "ratingAnalysis": { },
  • "posAnalysis": { }
}

Get surrounding context for a segment

Retrieves segments surrounding a specific segment within an episode. Returns segments both before and after the target, providing dialogue context for how a sentence is used.

Authorizations:
ApiKey
path Parameters
uuid
required
string
Example: 3fd94cef-a3e1-31ae-bc8d-e743f03e9c7e

Segment publicId

query Parameters
take
integer [ 1 .. 30 ]
Default: 3

Number of segments to return before and after the target

contentRating
Array of strings (ContentRating)
Items Enum: "SAFE" "SUGGESTIVE" "QUESTIONABLE" "EXPLICIT"
Example: contentRating=SAFE

Content ratings to include (omit for all ratings)

Responses

Response samples

Content type
application/json
{
  • "segments": [
    ],
  • "includes": {}
}

List all series

Returns a paginated list of media series groupings.

Authorizations:
ApiKey
query Parameters
take
integer [ 1 .. 100 ]
Default: 20

Number of results per page

cursor
string

Opaque pagination cursor token

query
string
Example: query=bakuman

Case-insensitive search across English, Japanese, and Romaji names

Responses

Response samples

Content type
application/json
{
  • "series": [
    ],
  • "pagination": {
    }
}

Get series details

Returns a series with all media entries sorted by position.

Authorizations:
ApiKey
path Parameters
id
required
string
Example: V1StGXR8_Z5d

Series public ID

query Parameters
include
Array of strings (MediaIncludeExpansion)
Default: ""
Items Value: "media.characters"

Resources to expand in the series response

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "nameJa": "バクマン。シリーズ",
  • "nameRomaji": "Bakuman. Series",
  • "nameEn": "Bakuman Series",
  • "media": []
}

Get single media

Returns a single media entry by its ID with full metadata.

Authorizations:
ApiKey
path Parameters
id
required
string
Example: V1StGXR8_Z5d

Media public ID

query Parameters
include
Array of strings (MediaIncludeExpansion)
Default: ""
Items Value: "media.characters"

Resources to expand in the media response

Responses

Response samples

Content type
application/json
{}

List episodes for a media

Returns a paginated list of episodes for a specific media.

Authorizations:
ApiKey
path Parameters
mediaId
required
string
Example: V1StGXR8_Z5d

Public ID of the media

query Parameters
take
integer [ 1 .. 100 ]
Default: 50
Example: take=50

Maximum number of episodes to return

cursor
string
Example: cursor=10

Opaque pagination cursor token

Responses

Response samples

Content type
application/json
{
  • "episodes": [
    ],
  • "pagination": {
    }
}

Get single episode

Returns a specific episode by media ID and episode number.

Authorizations:
ApiKey
path Parameters
mediaId
required
string
Example: V1StGXR8_Z5d

Public ID of the media

episodeNumber
required
integer
Example: 1

Episode number

Responses

Response samples

Content type
application/json
{
  • "mediaId": 7674,
  • "episodeNumber": 1,
  • "titleEn": "The Beginning",
  • "titleRomaji": "Hajimari",
  • "titleJa": "始まり",
  • "description": "The hero begins their journey",
  • "airedAt": "2024-01-15T09:00:00Z",
  • "lengthSeconds": 1420,
  • "segmentCount": 450
}

Get single segment

Returns a specific segment by its ID within the media/episode hierarchy.

Authorizations:
ApiKey
path Parameters
mediaId
required
string
Example: V1StGXR8_Z5d

Public ID of the media

episodeNumber
required
integer
Example: 1

Episode number

id
required
integer
Example: 12345

Segment ID

Responses

Response samples

Content type
application/json
{
  • "id": 120045,
  • "uuid": "3fd94cef-a3e1-31ae-bc8d-e743f03e9c7e",
  • "publicId": "V1StGXR8_Z5d",
  • "position": 1133,
  • "status": "ACTIVE",
  • "startTimeMs": 2007255,
  • "endTimeMs": 2008464,
  • "contentRating": "SAFE",
  • "episode": 1,
  • "mediaId": 7674,
  • "mediaPublicId": "V1StGXR8_Z5d",
  • "textJa": {
    },
  • "textEn": {
    },
  • "textEs": {
    },
  • "urls": {}
}