NZSL APInzsl.nz ↗
Access 5000+ New Zealand Sign Language signs via 9 endpoints. Search by English or Māori keyword, filter by topic, handshape, location, and retrieve video URLs.
What is the NZSL API?
The NZSL Dictionary API provides structured access to over 5000 New Zealand Sign Language signs across 9 endpoints, covering sign search, detailed sign data, topic browsing, and reference pages. The get_sign_detail endpoint returns main video URLs, slow-motion video URLs, handshape images, location images, Māori translations, and example sentences with English glosses — all keyed by a numeric sign ID obtained from search_signs.
curl -X GET 'https://api.parse.bot/scraper/32e15753-dcec-46d1-97a3-d1a0c5e8ad76/search_signs?page=1&query=hello&topic=Animals&usage=archaic&location=3&handshape=1.1.1&location_group=1' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace nzsl-nz-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""NZSL Dictionary API - search signs, browse topics, get detailed sign info."""
from parse_apis.nzsl_dictionary_api import NZSL, SignNotFound
client = NZSL()
# List available topics for filtering signs
for topic in client.topics.list(limit=5):
print(topic.name, topic.tag)
# Search for signs matching a keyword
sign = client.signs.search(query="hello", limit=1).first()
if sign:
print(sign.english_name, sign.sign_id)
# Drill into full detail via sub-resource
detail = sign.detail.get()
print(detail.english_name, detail.alt_english_names, detail.maori_names)
# Browse all signs alphabetically
for s in client.signs.list(limit=3):
print(s.english_name, s.word_class)
# Get autocomplete suggestions
ac = client.autocompletes.search(term="water")
print(ac.suggestions)
# Typed error handling for a missing sign
try:
client.signs.get(sign_id="9999999")
except SignNotFound as exc:
print(f"Sign not found: {exc.sign_id}")
# Daily featured sign
sotd = client.signofthedays.get()
print(sotd.name, sotd.sign_id)
print("exercised: topics.list / signs.search / detail.get / signs.list / autocompletes.search / signs.get / signofthedays.get")
Search for signs by keyword (English or Māori) with optional filters. Returns paginated results. When no query or filters are provided, returns all signs ordered alphabetically. Supports filtering by topic, handshape, body location, location group, and usage. Each page returns up to ~25 results.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| query | string | Search keyword in English or Māori (e.g. 'hello', 'water'). |
| topic | string | Topic category filter. Use the tag value from list_topics (e.g. 'Animals', 'Actions and activities'). |
| usage | string | Usage filter (e.g. 'archaic', 'informal'). |
| location | string | Body location ID filter. |
| handshape | string | Handshape ID filter (e.g. '1.1.1'). |
| location_group | string | Location group ID filter. |
{
"type": "object",
"fields": {
"results": "array of sign summaries with sign_id, english_name, maori_name, word_class, video_url, drawing_url",
"total_pages": "integer total number of pages",
"current_page": "integer current page number"
},
"sample": {
"data": {
"results": [
{
"sign_id": "1301",
"video_url": "https://nzsl-signbank-media-production.s3.amazonaws.com/glossvideo/1301/hello.1301.main_glosses.sp.r480x360.mp4",
"maori_name": null,
"word_class": null,
"drawing_url": "https://nzsl-signbank-media-production.s3.amazonaws.com/glossvideo/1301/hello-1301-high_resolution.png",
"english_name": "goodbye, hello"
}
],
"total_pages": 1,
"current_page": 1
},
"status": "success"
}
}About the NZSL API
Search and Filter Signs
The search_signs endpoint accepts a query string in English or Māori, plus optional filters for topic, usage, handshape, location, and location_group. Results are paginated and each item in the results array includes sign_id, english_name, maori_name, word_class, video_url, and drawing_url. Topic values for the filter come from list_topics, which returns each topic's tag (the exact string to pass as the topic parameter) and its human-readable name. To page through the full dictionary without any filters, use get_all_signs with the page parameter.
Sign Detail and Reference Data
get_sign_detail accepts a numeric sign_id and returns the most complete data for a single sign: main_video_url and slow_video_url for playback, arrays of handshapes and locations as image URLs, maori_names as an array, and an examples array where each item carries nzsl_gloss, english_translation, and video_url. Three static reference endpoints cover fingerspelling, numbers, and classifiers. get_alphabet_page returns per-letter image_url values and demonstration_videos. get_numbers_page and get_classifiers_page both return categorized items arrays with label, optional sign_id, and image_url, organized under a title field.
Discovery Utilities
get_sign_of_the_day returns a daily-featured sign with its name, sign_id, video_url, and drawing_url — useful for vocabulary-building features or daily digest integrations. get_search_autocomplete accepts a term parameter and returns matching sign glosses, supporting typeahead search interfaces.
The NZSL API is a managed, monitored endpoint for nzsl.nz — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nzsl.nz changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official nzsl.nz API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build an NZSL learning app that plays main and slow-motion videos from
get_sign_detailfor each vocabulary item. - Populate a topic-based browse screen using
list_topicstags as filters passed tosearch_signs. - Implement a typeahead search field using
get_search_autocompleteto suggest sign names as the user types. - Display a daily sign widget by polling
get_sign_of_the_dayfor the featured sign video and drawing. - Create a fingerspelling reference tool using the
alphabet_itemsanddemonstration_videosfromget_alphabet_page. - Filter signs by
handshapeID or bodylocationto support linguistic research or structured NZSL lessons. - Export English–Māori–NZSL trilingual glossaries by iterating
get_all_signsand enriching withmaori_namesfromget_sign_detail.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does nzsl.nz have an official developer API?+
What does `get_sign_detail` return beyond what appears in search results?+
search_signs and get_all_signs return summary fields: sign_id, english_name, maori_name, word_class, video_url, and drawing_url. get_sign_detail adds slow_video_url, an examples array (each with nzsl_gloss, english_translation, and video_url), handshapes as an array of image URLs, locations as an array of image URLs, and maori_names as a full array rather than a single value.Can I filter signs by multiple topics or handshapes simultaneously?+
search_signs accepts one value per filter parameter at a time — a single topic tag, a single handshape ID, and a single location ID. Multi-value filtering in one request is not currently supported. You can fork the API on Parse and revise it to add a multi-filter endpoint if your use case requires it.Does the API expose user-contributed content such as regional variation videos or community submissions?+
How fresh is the sign data, and does the pagination cover the full dictionary?+
get_all_signs endpoint returns current_page and total_pages in its pagination object, allowing you to iterate through the full sign set page by page. search_signs also returns the same pagination structure, or null when results fit a single page.