Sundance APIsundance.org ↗
Access Sundance Institute film grants and funding programs. List active opportunities and retrieve eligibility, deadlines, and requirements for each grant.
What is the Sundance API?
The Sundance.org API covers 2 endpoints that expose film grant and funding program data from the Sundance Institute. list_grants returns all currently active programs including titles, deadlines, descriptions, and slugs. get_grant_details drills into any individual program to return full eligibility criteria, multi-stage deadline mappings, and complete program descriptions sourced from the application portal.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/0d5ce439-66f7-45f5-a32b-f17b70c0719f/list_grants' \ -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 sundance-org-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.
"""Walkthrough: Sundance Film Grants API — discover and explore grant opportunities."""
from parse_apis.sundance_film_grants_api import Sundance, GrantNotFound
client = Sundance()
# List all currently open grants, capped to avoid unbounded iteration.
for grant in client.grants.list(limit=5):
print(grant.title, "—", grant.deadline)
# Drill into one grant's full details via the slug-based detail lookup.
grant = client.grants.list(limit=1).first()
if grant:
details = grant.details()
print(details.title, details.platform, details.url)
print("Description preview:", details.description[:200])
# Typed error handling: catch a not-found grant gracefully.
missing = client.grant(slug="nonexistent_program_2099")
try:
info = missing.details()
print(info.title)
except GrantNotFound as exc:
print(f"Grant not found: {exc.slug}")
print("Exercised: grants.list / grant.details / GrantNotFound error handling")
List all currently open Sundance Institute film grants and funding opportunities. Scrapes the sundance.org deadlines page to return active programs with their titles, descriptions, deadlines, application URLs, and slugs. The slug can be passed to get_grant_details for programs hosted on apply.sundance.org; programs on the main site or Sundance Collab require using the detail_url directly.
No input parameters required.
{
"type": "object",
"fields": {
"count": "integer total number of grants returned",
"grants": "array of grant objects each containing title, description, deadline, detail_url, and slug"
},
"sample": {
"data": {
"count": 2,
"grants": [
{
"slug": "2027_development_track",
"title": "2027 Development Track",
"deadline": "May 12, 2026",
"detail_url": "https://apply.sundance.org/prog/2027_development_track",
"description": "The Development Track has one open application..."
},
{
"slug": "2027_documentary_fund",
"title": "2027 Documentary Fund",
"deadline": "June 15, 2026",
"detail_url": "https://www.sundance.org/documentary-fund/",
"description": "The Sundance Institute Documentary Fund is a global granting opportunity..."
}
]
},
"status": "success"
}
}About the Sundance API
What the API Returns
The list_grants endpoint takes no inputs and returns a count integer alongside a grants array. Each grant object includes a title, a short description, a deadline string, a detail_url pointing to the program page, and a slug you can pass directly to the second endpoint. This gives you a snapshot of every funding opportunity currently listed as active on Sundance's deadlines page.
Fetching Program Details
get_grant_details accepts either a slug (e.g. 2027_development_track) taken from list_grants results, or a full url to a program page on the application portal. At least one of the two must be provided. The response includes the program title, a platform field that distinguishes between SMApply, Sundance Collab, and the Main Site, a deadlines object mapping named deadline labels to date strings (useful for programs with multiple submission windows), and a full description string with eligibility and requirement text. If the program no longer exists at the given URL or slug, the endpoint returns a stale_input indicator rather than an empty or error response.
Coverage and Source
Data covers programs published on sundance.org and its application portal at apply.sundance.org. The platform field in get_grant_details tells you which sub-system a program lives in, which matters when building intake forms or routing applicants. Deadlines are returned as labeled date strings rather than normalized ISO timestamps, so parsing them requires accounting for the label context.
Sundance's Official API
The Sundance Institute does not publish a documented public API for grant data. This API provides structured access to program information that is otherwise only available through the website and portal.
The Sundance API is a managed, monitored endpoint for sundance.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sundance.org 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 sundance.org 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 a film grant calendar that surfaces active Sundance programs and their deadlines automatically
- Alert filmmakers when new grants appear or existing deadlines change by diffing
list_grantsresponses over time - Populate a funding database with eligibility and requirement text from
get_grant_detailsfor each active slug - Filter Sundance programs by platform type (SMApply vs. Sundance Collab) using the
platformfield in grant detail responses - Cross-reference Sundance grant deadlines against other funding sources in a unified filmmaker resource tool
- Detect stale or expired program links in existing resources by checking for
stale_inputresponses fromget_grant_details - Display program-specific multi-stage deadlines on a production planning dashboard using the
deadlinesobject
| 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 the Sundance Institute offer an official public API for grant data?+
What does the `platform` field in `get_grant_details` tell me?+
Does the API return historical or past grant programs?+
list_grants returns only currently active programs from the deadlines page. Past or closed programs are not listed. get_grant_details will return a stale_input indicator if a slug or URL resolves to a program that no longer exists. You can fork this API on Parse and revise it to add an endpoint targeting archived or past program pages if your use case requires historical data.Are applicant submissions, reviewer scores, or award recipients returned by any endpoint?+
Are deadlines returned as standardized date formats?+
deadlines field in get_grant_details is an object mapping human-readable label strings to date strings as they appear on the program page. They are not normalized to ISO 8601, so your application should handle varied date string formats when parsing them.