Yoga Alliance APIapp.yogaalliance.org ↗
Search Yoga Alliance's registered teacher directory by name, location, and designation. Fetch full teacher profiles with certification, contact, and bio data.
What is the Yoga Alliance API?
The Yoga Alliance Teacher Directory API exposes 2 endpoints that cover the public Registered Yoga Teacher directory at app.yogaalliance.org. Use search_teachers to filter teachers by name, location radius, designation level, and online class availability, receiving up to 50 results per page with certification summaries, teaching locations, and resolved geocoordinates. Use get_teacher_profile to retrieve a single teacher's full public record including biography, languages, contact details, and social links.
curl -X GET 'https://api.parse.bot/scraper/2e21f088-3b79-41bb-b673-890f40080c05/search_teachers?location=Nevada+City&designation=E-RYT+500' \ -H 'X-API-Key: $PARSE_API_KEY'
Searches the public Registered Yoga Teacher directory and returns one row per teacher, with name, mailing location, certification summary (designation, first registration date, YACEP status, teaching hours), the teaching locations the teacher lists ('where I teach'), and the teacher_id/profile_url that get_teacher_profile accepts. All filters are optional and combine (AND). A location is free text (city, region or country) resolved through the site's own place lookup to its first suggestion; the resolved place is echoed in resolved_location and results are limited to radius_miles (default 50) of it. When the location cannot be resolved the result is an empty page with total 0 and resolved_location null (never the unfiltered directory). name matches first and/or last name as a keyword. Results are paginated with page (default 1) and page_size (default 10, values above 50 are clamped to 50); total is the site's count for the whole filter and has_more says whether a later page exists. Each call makes two to four upstream requests. Without any filter the endpoint pages through the entire directory (80k+ teachers) sorted by original registration date.
| Param | Type | Description |
|---|---|---|
| name | string | Teacher name keyword; matches first and/or last name. |
| page | integer | 1-based page number. |
| location | string | City, region or country as free text (e.g. one shape: 'Nevada City'). Resolved to the first place suggestion the site returns; check resolved_location in the response to see what matched. |
| page_size | integer | Teachers per page; values above 50 are clamped to 50. |
| designation | string | Minimum designation, exactly as offered by the directory's designation dropdown. Omitted = any designation. An unrecognized value is rejected. |
| radius_miles | integer | Search radius in miles around the resolved location. Only used when location is given. |
| online_classes | boolean | true restricts results to teachers offering online yoga classes. |
| closed_captioning | boolean | true restricts results to teachers offering closed captioning. |
{
"type": "object",
"fields": {
"page": "page number returned",
"total": "site-reported count of teachers matching the whole filter",
"has_more": "true when page * page_size < total",
"teachers": "array of teacher summaries: teacher_id (Yoga Alliance contact id, input to get_teacher_profile), profile_url, display_name, first_name, last_name, location {address, street, city, state, country, latitude, longitude}, certification {designation, is_yacep, yacep_member_status, first_registered (YYYY-MM-DD), teaching_hours, teaching_hours_hidden}, teaching_locations [{location_id, name, address, status Current/Previous, start_date, end_date}], types_of_yoga, languages, offers_online_classes, offers_closed_captioning, short_bio (truncated by the site), profile_picture_url",
"page_size": "effective page size after clamping",
"resolved_location": "place the location text resolved to {address, city, state, country, postal_code, latitude, longitude, radius_miles}; null when no location was given or it could not be resolved"
},
"sample": {
"data": {
"page": 1,
"total": 2,
"has_more": false,
"teachers": [
{
"location": {
"city": "Nevada City",
"state": "California",
"street": null,
"address": "Nevada City, CA 95959, USA",
"country": "United States",
"latitude": 39.2615606,
"longitude": -121.0160594
},
"languages": "ENGLISH",
"last_name": "Doe",
"short_bio": "I am a L...",
"first_name": "Jane",
"teacher_id": "0033g0000022YzoAAE",
"profile_url": "https://app.yogaalliance.org/teacherpublicprofile?id=0033g0000022YzoAAE",
"display_name": "Jane Doe",
"certification": {
"is_yacep": true,
"designation": "E-RYT 500",
"teaching_hours": 7068,
"first_registered": "2014-11-23",
"yacep_member_status": "Current",
"teaching_hours_hidden": false
},
"types_of_yoga": [
"Spiritually-Oriented",
"Gentle",
"Specialty"
],
"teaching_locations": [],
"profile_picture_url": "https://yaprofileimages.blob.core.windows.net/profileimage/134143/AB1F1A05-AB38-4F51-A011-40F7B121A3AE.jpg",
"offers_online_classes": false,
"offers_closed_captioning": false
},
{
"location": {
"city": "Nevada City",
"state": "California",
"street": "Main St",
"address": "123 Main St, Nevada City, CA, United States",
"country": "United States",
"latitude": 39.366713,
"longitude": -121.0485923
},
"languages": "ENGLISH",
"last_name": "Doe",
"short_bio": "I'm Director of Ananda Yoga at Ananda School of Yoga & Meditation...",
"first_name": "John",
"teacher_id": "0033g0000022ybVAAQ",
"profile_url": "https://app.yogaalliance.org/teacherpublicprofile?id=0033g0000022ybVAAQ",
"display_name": "Nayaswami Gyandev John Doe",
"certification": {
"is_yacep": true,
"designation": "E-RYT 500",
"teaching_hours": 21140,
"first_registered": "1999-08-23",
"yacep_member_status": "Current",
"teaching_hours_hidden": true
},
"types_of_yoga": [
"Spiritually-Oriented",
"Gentle"
],
"teaching_locations": [
{
"name": "Ananda School of Yoga & Meditation at The Expanding Light retreat (Ananda Village, California)",
"status": "Current",
"address": "123 Main St, Nevada City, CA 95959, USA",
"end_date": null,
"start_date": "1984-12-01",
"location_id": "a4PTR0000006GIF2A2"
}
],
"profile_picture_url": "https://yaprofileimages.blob.core.windows.net/profileimage/14355/79D7C696-6E34-459E-B514-F47F3922CB98.jpg",
"offers_online_classes": false,
"offers_closed_captioning": false
}
],
"page_size": 10,
"resolved_location": {
"city": "Nevada City",
"state": "California",
"address": "Nevada City, CA 95959, USA",
"country": "United States",
"latitude": 39.2615606,
"longitude": -121.0160594,
"postal_code": "95959",
"radius_miles": 50
}
},
"status": "success"
}
}About the Yoga Alliance API
Search the Directory
The search_teachers endpoint accepts a flexible set of filters: free-text name, a location string that resolves to a geographic point (returned as resolved_location with latitude, longitude, city, state, and country), a radius_miles value applied around that point, and a designation string matching the directory's dropdown options. Boolean flags online_classes and closed_captioning narrow results further. Each item in the teachers array includes teacher_id, display_name, profile_url, mailing location, designation, first registration date, YACEP status, teaching hours, and the teacher's listed teaching locations. The total field reports the site's full match count; has_more tells you whether another page exists.
Fetch a Full Profile
The get_teacher_profile endpoint takes a single required input—teacher_id, a 15- or 18-character alphanumeric identifier emitted by search_teachers—and returns the complete public profile. Response fields include first_name, last_name, biography (HTML-stripped plain text), languages, location (with street, city, state, and country), website, facebook, and email (only when the teacher has opted to publish it via email_published). Certification details mirror what the search returns: designation, first registration date, YACEP status, and teaching hours.
Pagination and Location Resolution
Search results are paged using page (1-based) and page_size (capped at 50). The resolved_location object in the search response shows exactly which place the input location string resolved to, including its coordinates and the effective radius_miles. If the location text does not resolve, resolved_location is null and no geographic filter is applied. Profile-level location fields do not include latitude/longitude; coordinates are only available in search results.
The Yoga Alliance API is a managed, monitored endpoint for app.yogaalliance.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when app.yogaalliance.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 app.yogaalliance.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 studio staffing tool that finds RYT-500 teachers within a specific radius of a city.
- Verify a teacher's Yoga Alliance designation and first registration date before hiring.
- Aggregate teachers offering online classes and closed captioning for accessible yoga platforms.
- Enrich a CRM with teacher biographies, websites, and social links pulled from
get_teacher_profile. - Map the geographic distribution of registered yoga teachers across states or countries.
- Filter YACEP-credentialed teachers for continuing education program partnerships.
- Cross-reference teacher contact emails (where published) for outreach or directory products.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Yoga Alliance offer an official public developer API?+
What does `resolved_location` tell me in a `search_teachers` response?+
location string, the API resolves it to a specific place and returns that result as resolved_location, which includes address, city, state, country, postal_code, latitude, longitude, and the effective radius_miles. This lets you confirm exactly which geographic point is being used as the search center. If the string cannot be resolved, resolved_location is null and no geographic filter is applied.Are yoga school or training program listings covered?+
search_teachers and get_teacher_profile. Yoga Alliance also maintains a Registered Yoga School directory. You can fork this API on Parse and revise it to add an endpoint targeting the school directory.Is all contact information available for every teacher profile?+
email field is only populated when the teacher has opted to make it public (email_published: true); otherwise it returns null. Similarly, website and facebook are null when the teacher has not listed them. The biography field returns null when the teacher has not written one.What are the limits on search result page size?+
page_size parameter accepts any integer, but values above 50 are clamped to 50. The page_size field in the response reflects the effective value after clamping. Use the total and has_more fields together with the page parameter to iterate through result sets larger than 50.