teacherspayteachers.com APIteacherspayteachers.com ↗
Access K-12 educational resources, seller profiles, reviews, and free materials from Teachers Pay Teachers via 7 structured API endpoints.
curl -X GET 'https://api.parse.bot/scraper/6151111e-1bce-4923-8c22-633aa6470a15/search_resources?page=1&sort=relevance&query=math' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for educational resources by keyword with sorting and pagination. Returns a list of matching products with title, price, author, and thumbnail.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| sort | string | Sort order for results |
| queryrequired | string | Search keyword |
{
"type": "object",
"fields": {
"url": "string - the full search URL used",
"page": "string - current page number",
"query": "string - the search query used",
"results": "array of product objects with id, title, url, price, author, author_url, rating, review_count, thumbnail"
},
"sample": {
"data": {
"url": "https://www.teacherspayteachers.com/browse?search=math&page=1&sort=relevance",
"page": "1",
"query": "math",
"results": [
{
"id": "1301487",
"url": "https://www.teacherspayteachers.com/Product/Tricky-Teens-Teen-Numbers-Worksheets-Kindergarten-Math-Teen-Number-Activities-1301487",
"price": "$2.50",
"title": "Tricky Teens Teen Numbers Worksheets Kindergarten Math Teen Number Activities",
"author": "Crystal McGinnis",
"rating": null,
"thumbnail": "https://ecdn.teacherspayteachers.com/thumbitem/Tricky-Teens-Printables-to-Practice-Those-Tricky-Teen-Numbers-1301487-1728923156/original-1301487-1.jpg",
"author_url": "https://www.teacherspayteachers.com/store/crystal-mcginnis",
"review_count": null
}
]
},
"status": "success"
}
}About the teacherspayteachers.com API
This API exposes 7 endpoints covering Teachers Pay Teachers product listings, seller profiles, and user reviews. You can search and filter resources by keyword, grade level, subject, and resource type using search_resources and browse_resources, retrieve full product metadata including HTML descriptions, grade arrays, and pricing via get_resource_details, and pull structured review data with aggregate ratings from any product page.
Search and Browse Endpoints
The search_resources endpoint accepts a required query string plus optional page and sort parameters, returning arrays of product objects that include id, title, url, price, author, author_url, rating, review_count, and thumbnail. The browse_resources endpoint offers more granular filtering through subject (e.g. math, science), grade (e.g. kindergarten, 1st-grade), resource_type (e.g. worksheets, task-cards), and price_range (e.g. free, under-5, 5-10) parameters — useful when you want category-level results rather than keyword-driven ones. Both endpoints paginate via the page integer parameter.
Product Detail and Review Endpoints
get_resource_details takes a numeric product_id and returns a richer object: the name, description (HTML), images array with large-image URLs, prices object (including isFree boolean and nonTransferableLicense pricing), usGrades, subjects, types, and an evaluationRating object with count and scoreAverage. get_resource_reviews returns a structured reviews array — each item includes author, datePublished, reviewBody, and reviewRating — alongside an aggregate_rating object with ratingValue, ratingCount, reviewCount, bestRating, and worstRating.
Seller and Free Resource Endpoints
get_seller_profile accepts a store slug (e.g. little-achievers) and returns seller-level fields: bio, icon URL, name, slug, state, country, ratings (with ratingsCount and combinedRatingsScore), experience, and followerCount. get_seller_resources paginates through that seller's full product catalog using the same slug plus optional page. Finally, get_free_resources returns a paginated feed of zero-cost listings in the same product-array format shared across all listing endpoints.
Data Consistency
All listing endpoints — search, browse, seller store, and free resources — return product objects with a consistent set of fields: id, title, url, price, author, author_url, rating, review_count, and thumbnail. This makes it straightforward to normalize results from different listing sources into a single schema without conditional field handling.
- Aggregate free K-12 worksheets by grade level using browse_resources with price_range=free and grade filters.
- Monitor a specific seller's catalog changes over time by paginating get_seller_resources by slug.
- Build a resource recommendation engine using subject, grade, and rating fields from search_resources.
- Analyze review sentiment trends by pulling reviewBody text from get_resource_reviews across multiple product IDs.
- Compare seller reputation metrics by pulling followerCount and combinedRatingsScore from get_seller_profile.
- Identify top-rated science resources for a specific grade by combining browse_resources subject and grade filters with evaluationRating data from get_resource_details.
- Track pricing across resource categories by collecting the nonTransferableLicense price field from get_resource_details at regular intervals.
| 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 | 250 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 Teachers Pay Teachers have an official public developer API?+
What does get_resource_details return beyond what search results include?+
description, a structured images array with large-format URLs, a prices object with an isFree boolean and nonTransferableLicense pricing, usGrades and subjects arrays, types, and an evaluationRating object with count and scoreAverage. Listing endpoints like search_resources return only summary fields such as thumbnail, price, rating, and review_count.Can I filter search results by grade level or resource type in search_resources?+
query, page, and sort — it does not expose grade, subject, or resource_type filters. Those filters are available in browse_resources, which supports grade, subject, resource_type, and price_range parameters. You can combine a keyword search workflow with browse filters by using browse_resources with a subject or grade context instead.