Studocu APIstudocu.com ↗
Retrieve Studocu study documents, course materials, institution details, and user profiles via a structured API. 6 endpoints covering documents, courses, and more.
What is the Studocu API?
The Studocu API provides 6 endpoints for retrieving study documents, courses, institutions, and user profiles from Studocu. Using get_document, you can fetch a document's title, rating breakdown, page count, premium status, and thumbnail URLs without parsing HTML. Additional endpoints cover course document listings, institution metadata, user profile statistics, related document recommendations, and per-page asset URLs including signed CloudFront image links.
curl -X GET 'https://api.parse.bot/scraper/29af07cf-35c7-4b4c-bbf7-18574cc219ec/get_document?document_id=129273375' \ -H 'X-API-Key: $PARSE_API_KEY'
Get detailed information about a study document including title, rating, course, institution, page count, and thumbnail URLs. Returns the document's metadata but not its content.
| Param | Type | Description |
|---|---|---|
| document_idrequired | string | The numeric ID of the document. |
{
"type": "object",
"fields": {
"id": "integer document ID",
"slug": "URL-safe document slug",
"title": "string document title",
"course": "object with course id, name, code, regionCode",
"rating": "object with total, positive, negative, positiveExperienceProbability",
"category": "object with category id",
"createdAt": "ISO datetime string",
"isPremium": "boolean",
"thumbnails": "array of thumbnail objects with width, height, format, url",
"institution": "object with institution id, name, type",
"publishedAt": "ISO datetime string",
"numberOfPages": "integer page count"
},
"sample": {
"data": {
"id": 122755801,
"slug": "the-nepq-black-book-of-questions",
"title": "NEPQ 101: The Complete Black Book of Selling Questions",
"course": {
"id": 6835308,
"code": "ECO 1002",
"name": "Macro economics",
"regionCode": "en-us"
},
"rating": {
"total": 2814,
"negative": 1,
"positive": 2815,
"positiveExperienceProbability": 0.999
},
"category": {
"id": 4
},
"createdAt": "2025-04-03T05:19:03+02:00",
"isPremium": false,
"thumbnails": [
{
"url": "https://website-assets.studocu.com/img/document_thumbnails/1edf4c2696d3e5bb80550037f4db719f/thumb_115_163.png",
"width": 115,
"format": "png",
"height": 163
}
],
"institution": {
"id": 89260,
"name": "Hunter Business School",
"type": "UNIVERSITY"
},
"publishedAt": "2025-04-03T05:21:13+02:00",
"numberOfPages": 57
},
"status": "success"
}
}About the Studocu API
Documents and Page Assets
get_document returns metadata for a single study document identified by document_id: fields include title, slug, createdAt, isPremium, a rating object with positive, negative, and positiveExperienceProbability values, a category object, an institution object with name and type, and a thumbnails array. To retrieve the actual rendered page content, get_document_pages returns a pages array ordered by page_number, each entry containing a signed image_url (full-resolution PNG) and a page_html_url. The response also includes is_preview_mode, has_blurred_pages, number_of_pages, signed_urls_expire_at, and a pdf_download object indicating availability and a direct URL when available.
Courses, Institutions, and Recommendations
get_course_documents accepts a required course_id and an optional limit, and returns a paginated data array of course-document associations plus cursor-based links for navigating further pages via linkParameters. get_institution returns a single institution record including name, level (e.g. COMMUNITY_COLLEGE), stage, region, country, and a courses.count field. If the institution does not exist the response contains stale_input with kind: input_not_found.
get_document_recommendations returns a data array of related document references, each with a className relevance classifier and a document object carrying an id and links. Results may be an empty array when no recommendations exist for the given document.
User Profiles
get_user_profile exposes public-facing statistics for a Studocu user: uploads.count, followers.count, upvoteCount, downloadImpactScore, and counts of followed books, users, courses, and studylists. As with get_institution, a missing user returns stale_input with kind: input_not_found rather than a 404.
The Studocu API is a managed, monitored endpoint for studocu.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when studocu.com 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 studocu.com 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?+
- Index Studocu document metadata (title, rating, institution) for a study-resource search engine.
- Monitor which documents in a course have the highest
positiveExperienceProbabilityto surface top-rated materials. - Build a recommendation feed by chaining get_document_recommendations results with get_document lookups.
- Audit institution coverage by querying get_institution for
courses.countandlevelacross a list of institution IDs. - Track contributor growth by polling get_user_profile for changes in
uploads.countanddownloadImpactScoreover time. - Paginate through a course's full document list using get_course_documents with cursor-based
linkParameters. - Determine whether a document's PDF is accessible before presenting a download link using the
pdf_download.availablefield from get_document_pages.
| 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 Studocu have an official public developer API?+
What does get_document_pages return, and when do the URLs expire?+
pages array where each entry contains a page_number, a signed full-resolution image_url (PNG), and a page_html_url. It also returns stylesheet_url, is_preview_mode, has_blurred_pages, and a pdf_download object. The signed_urls_expire_at field is an ISO 8601 UTC datetime; all signed URLs in the response stop working after that point, so you should fetch and use them promptly rather than caching the URLs themselves.Does get_document_pages return the full document content for premium documents?+
is_preview_mode boolean indicates when only a restricted preview was served, and has_blurred_pages indicates when some pages are withheld. Full content for premium documents is not guaranteed. The API covers all metadata fields and whatever page assets the site exposes for a given document. You can fork the API on Parse and revise it to add logic that handles or flags preview-only responses differently.Can I search for documents by keyword or filter by subject area?+
How does pagination work in get_course_documents?+
links object with a next URL and a linkParameters object containing the parsed parameters needed to fetch the next page, including the cursor value. Pass the limit parameter to control page size. Iterate through pages by using the next link or reconstructing the request from linkParameters until no further next link is returned.