Discover/Snow API
live

Snow APIsnow.day

Access Snow.day's database of high school enrichment programs via API. Search, filter, and retrieve costs, deadlines, and curated lists across 7 endpoints.

Endpoint health
verified 3d ago
search_opportunities
browse_all_opportunities
get_lists
get_list_detail
get_opportunity_detail
7/7 passing latest checkself-healing
Endpoints
7
Updated
26d ago

What is the Snow API?

The Snow.day API gives programmatic access to a database of extracurricular and enrichment opportunities for high school students across 7 endpoints. Using search_opportunities, you can query by keyword, filter by season, and sort by financial accessibility grade or deadline. Each record surfaces fields including program name, type, cost info, provider, sessions, and deadlines — enough to build directory tools, recommendation engines, or student-facing apps.

Try it
Page number (0-indexed).
Number of results per page.
Search keyword or interest (e.g. 'STEM', 'business', 'art').
JSON object containing filters. Supported keys: FILTER_SEASON (array of values: SUMMER, FALL, SPRING, YEAR_ROUND), FILTER_TYPE (array of values: PROGRAM, COMPETITION), FILTER_ONLINE_ONLY (boolean), FILTER_GRADE (array of integers representing grade levels), FILTER_FINANCIAL_ACCESSIBILITY (array of ratings: A_PLUS, A, A_MINUS, B_PLUS, B, B_MINUS, C_PLUS, C, C_MINUS), FILTER_EXPERTS_CHOICE (array of values: MOST_RECOMMENDED, HIGHLY_RECOMMENDED). All array filter values must be provided as arrays even for single values.
Field to sort by: relevancy, expertsChoiceRating, isHighlySelective, deadline, financialAccessibilityGrade.
Sort order: ASC or DESC.
api.parse.bot/scraper/7846f91d-0b33-49f3-aa92-53f8fc6240fb/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/7846f91d-0b33-49f3-aa92-53f8fc6240fb/search_opportunities?page=0&limit=5&query=STEM&filter=%7B%27FILTER_SEASON%27%3A+%5B%27SUMMER%27%5D%7D&sort_field=relevancy&sort_order=ASC' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 snow-day-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: Snowday SDK — discover extracurricular opportunities for high schoolers."""
from parse_apis.snowday_api import Snowday, SortField, Sort, OpportunityType, ResourceNotFound

snowday = Snowday()

# Search for STEM summer opportunities sorted by financial accessibility
for opp in snowday.opportunitysummaries.search(
    query="STEM",
    sort_field=SortField.FINANCIAL_ACCESSIBILITY_GRADE,
    sort_order=Sort.ASC,
    limit=5,
):
    print(opp.name, opp.financial_accessibility_grade, opp.type)

# Drill into the first result's full detail and cost breakdown
opp = snowday.opportunitysummaries.search(query="robotics", limit=1).first()
if opp:
    full = opp.details()
    print(full.name, full.eligibility_info, full.description[:80])
    cost = full.cost()
    print(cost.financial_accessibility_grade, cost.tuition, cost.application_fee)

# Browse curated lists and explore their contents
for lst in snowday.curatedlistsummaries.list(limit=3):
    print(lst.name, lst.author_display_name)
    detail = lst.details()
    print(detail.description)
    for item in detail.items[:2]:
        print(item.learning_opportunity.name, item.learning_opportunity.provider.name)

# Get predefined search categories (homepage shortcuts)
for cat in snowday.searchcategories.list(limit=5):
    print(cat.name, cat.query, cat.filter)

# Typed error handling for a non-existent resource
try:
    bad = snowday.opportunitysummaries.search(query="nonexistent_xyz_12345", limit=1).first()
    if bad:
        bad.details()
except ResourceNotFound as exc:
    print(f"Not found: {exc.uuid}")

print("exercised: search / browse / details / cost / curated lists / search categories")
All endpoints · 7 totalmissing one? ·

Search and browse extracurricular opportunities with optional query, filtering, and sorting. Returns paginated results from the Snowday database. Supports filtering by season, type, grade level, financial accessibility, and expert ratings. Each result includes basic program info, provider, sessions with locations, and deadlines.

Input
ParamTypeDescription
pageintegerPage number (0-indexed).
limitintegerNumber of results per page.
querystringSearch keyword or interest (e.g. 'STEM', 'business', 'art').
filterobjectJSON object containing filters. Supported keys: FILTER_SEASON (array of values: SUMMER, FALL, SPRING, YEAR_ROUND), FILTER_TYPE (array of values: PROGRAM, COMPETITION), FILTER_ONLINE_ONLY (boolean), FILTER_GRADE (array of integers representing grade levels), FILTER_FINANCIAL_ACCESSIBILITY (array of ratings: A_PLUS, A, A_MINUS, B_PLUS, B, B_MINUS, C_PLUS, C, C_MINUS), FILTER_EXPERTS_CHOICE (array of values: MOST_RECOMMENDED, HIGHLY_RECOMMENDED). All array filter values must be provided as arrays even for single values.
sort_fieldstringField to sort by: relevancy, expertsChoiceRating, isHighlySelective, deadline, financialAccessibilityGrade.
sort_orderstringSort order: ASC or DESC.
Response
{
  "type": "object",
  "fields": {
    "pageSize": "integer, number of results on this page",
    "pageNumber": "integer, current page number",
    "totalCount": "integer, total matching opportunities",
    "learningOpportunities": "array of opportunity summary objects with id, name, type, seasons, financialAccessibilityGrade, expertsChoiceRating, isHighlySelective, interests, tags, logo, provider, sessions, deadlines"
  },
  "sample": {
    "data": {
      "pageSize": 5,
      "pageNumber": 0,
      "totalCount": 729,
      "learningOpportunities": [
        {
          "id": "73f8cd5e-6acd-43a7-8a57-35b5ff824922",
          "logo": {
            "url": "https://snowday-data-prod.nyc3.cdn.digitaloceanspaces.com/media/gtech_RGaSPrT.jpg"
          },
          "name": "STEM@GTRI High School Summer Internship Program",
          "tags": [],
          "type": "PROGRAM",
          "seasons": [
            "SUMMER"
          ],
          "provider": {
            "id": "f0aad093-af65-41d6-b308-49a9a6cf5834",
            "name": "Georgia Tech Research Institute"
          },
          "sessions": [
            {
              "id": "0c98a095-f577-4ad5-86f1-9840209b6838",
              "endDate": null,
              "dateType": "DATES",
              "location": {
                "id": "a25e5436-2258-4471-9729-a093cc395d26",
                "name": "Atlanta, GA",
                "latitude": 33.7812708,
                "longitude": -84.4002907
              },
              "startDate": null,
              "dateStatus": "NOT_PROVIDED",
              "locationType": "IN_PERSON"
            }
          ],
          "deadlines": [
            {
              "id": "1bf15a61-521e-4b2c-b27a-b92c836144cf",
              "date": "2026-01-19T04:59:00.000Z",
              "status": "UP_TO_DATE",
              "description": "Application Deadline"
            }
          ],
          "interests": [
            {
              "id": "c693e9ed-cbb9-4677-a2e9-ca7b680702b7",
              "name": "Engineering"
            }
          ],
          "isHighlySelective": false,
          "expertsChoiceRating": "HIGHLY_RECOMMENDED",
          "financialAccessibilityGrade": "A_PLUS"
        }
      ]
    },
    "status": "success"
  }
}

About the Snow API

Search and Browse Opportunities

The search_opportunities endpoint accepts a query string alongside a filter object that supports season values (SUMMER, FALL, SPRING, YEAR_ROUND) and other facets. Results can be sorted by relevancy, expertsChoiceRating, isHighlySelective, deadline, or financialAccessibilityGrade, with sort_order set to ASC or DESC. Pagination is 0-indexed via page and limit parameters. Each result in learningOpportunities includes the opportunity's id, name, type (PROGRAM or COMPETITION), seasons, financialAccessibilityGrade, provider, and arrays of sessions and deadlines. If you want to browse without a query, browse_all_opportunities provides the same paginated structure with no required parameters.

Detail and Cost Endpoints

get_opportunity_detail requires both a uuid (from search results) and a slug (the kebab-case program name). It returns the full record including a description string, the external url, costInfo, and structured sessions with dates and location data. For workflows that only need financial information, get_opportunity_cost returns a focused subset: tuition, costInfo, applicationFee, financialAccessibilityGrade, and a costInfoStatus field that indicates whether cost data is UP_TO_DATE or NOT_PROVIDED.

Curated Lists

get_lists returns paginated metadata for publicly curated program collections, including each list's id, name, and authorDisplayName. Passing a list's uuid and slug to get_list_detail returns the full list contents: an items array of opportunity objects with curator notes, a markdown description, and the author name. Lists are a useful starting point for surfacing editorially vetted program collections without constructing custom filters.

Discovery with Top Searches

get_top_searches requires no inputs and returns a categories array. Each category has a name and either a filter object or a query string, mirroring exactly the parameters accepted by search_opportunities. This makes it straightforward to replicate the homepage discovery experience or seed an autocomplete UI with commonly used search terms.

Reliability & maintenanceVerified

The Snow API is a managed, monitored endpoint for snow.day — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when snow.day 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 snow.day 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.

Last verified
3d ago
Latest check
7/7 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a program recommendation tool filtered by season and financial accessibility grade
  • Aggregate deadline data from multiple opportunities to power a student calendar feature
  • Display curated program lists with curator notes sourced from get_list_detail
  • Surface financial aid accessibility ratings to help students identify affordable programs
  • Generate a searchable directory of high school competitions filtered by COMPETITION type
  • Use get_top_searches categories to populate a homepage discovery widget
  • Compare tuition and application fees across programs using get_opportunity_cost in bulk
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Snow.day have an official public developer API?+
Snow.day does not currently offer a documented public developer API. Access to structured program data is provided through this Parse API.
What does the filter object in search_opportunities support?+
The filter object accepts a FILTER_SEASON key with an array of season values: SUMMER, FALL, SPRING, and YEAR_ROUND. You can combine multiple seasons in a single request. Additional filter keys may be supported; the season filter is the documented primary facet.
How reliable is the cost information returned by get_opportunity_cost?+
The costInfoStatus field indicates whether cost data is UP_TO_DATE or NOT_PROVIDED. When a program has not published cost details, tuition, costInfo, and applicationFee may return null. Check costInfoStatus before surfacing pricing to end users.
Does the API return user reviews or ratings for programs?+
Not currently. The API exposes an expertsChoiceRating sort field and an isHighlySelective flag, but does not return individual user reviews or rating breakdowns per opportunity. You can fork this API on Parse and revise it to add an endpoint targeting review data if Snow.day exposes it.
Can I retrieve programs for age groups outside high school, such as middle school students?+
The API currently covers opportunities in the Snow.day database, which is oriented toward high school students. There are no age-range filter parameters exposed in the current endpoint set. You can fork this API on Parse and revise it to add filtering by age or grade level if that data becomes available.
Page content last updated . Spec covers 7 endpoints from snow.day.
Related APIs in EducationSee all →
opendays.com API
Search and discover open day events at educational institutions, view detailed event information and institution profiles, and browse the complete calendar of upcoming visits. Find the perfect school or university open day by searching institutions or exploring all available options with their program details and dates.
notgoingtouni.co.uk API
Search and discover apprenticeship opportunities across sectors and companies on NotGoingToUni.co.uk, filtering by opportunity types and viewing detailed information about specific roles. Browse featured apprenticeships and explore available sectors and employers to find the right career path.
senecapolytechnic.ca API
Search and explore Seneca Polytechnic's programs and courses to find detailed information about admissions requirements, costs, credentials, and learning pathways. Discover which programs match your interests by browsing by credential type or program category, and get complete course listings for any program you're considering.
sundance.org API
Discover and explore Sundance Institute film grants and funding opportunities, including detailed program information, eligibility criteria, application requirements, and award details from the official Sundance portal. List all active funding programs and retrieve comprehensive details for any specific grant.
gradschools.com API
Search graduate programs across multiple categories and discover articles about funding, financial aid, and admissions to help guide your grad school journey. Find specific program information and detailed resources all in one place to support your application and enrollment decisions.
scholarships.com API
Search and browse the Scholarships.com directory by category — including academic major, residence state, ethnicity, gender, school year, and deadline. Retrieve scholarship listings within any category and subcategory, and fetch full details for individual scholarships including award amounts, eligibility criteria, application deadlines, and application links.
roadmap.sh API
Discover and access structured learning roadmaps, detailed guides, interview questions, and community projects to build your development skills across different technologies and career paths. Search through curated learning content, explore topic breakdowns, and find project ideas tailored to your learning goals.
classforkids.io API
Search and explore kids clubs, classes, camps, and activities across the UK by location or club name. Access schedules, pricing, availability, and direct booking links, with detailed information for each club all in one place.