PageSum API
Summarize links, videos and text from your own code. Credit based.
Authentication
Create a key on your Account page and send it as a bearer token. Keep it secret: it spends your credits.
Authorization: Bearer psk_…POST /api/v1/summarize
Send exactly one of url or text.
curl https://pagesum.app/api/v1/summarize \
-H "Authorization: Bearer psk_…" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.youtube.com/watch?v=…", "mode": "quick"}'url: an article, YouTube, TikTok, Instagram, Facebook or X link.text: plain text, up to 200,000 characters.mode:auto(default),quick,key-points,detailed,eli5,eli10orone-liner.length:short,medium(default) orlong.language: a language code such asen. Default: the content's own language.
Response:
{
"title": "…",
"mode": "quick",
"language": "en",
"summary": "…",
"tldr": "…",
"source": { "type": "video", "url": "…", "durationSeconds": 312, "transcribedSeconds": null, "captions": true, "cut": false },
"credits": { "charged": 1, "balance": 99 }
}Nothing is saved to your PageSum history. The balance is also in the X-Credits-Balance header.
Credits
| Request | Credits |
|---|---|
| Article or text | 1 |
| Video with captions, up to 25 minutes | 1 |
| Video without captions, up to 10 minutes | 4 |
| Video without captions, each further 10 minutes (up to 25) | +2 |
Videos without captions longer than 25 minutes are cut to their first 25 minutes (source.cut is true). Captioned videos longer than 25 minutes are refused. A failed request costs nothing. While a video request runs, up to 8 credits are held and the unused part is returned when it finishes.
Plans and limits
| Plan | Credits a month | Requests a minute | Video requests a minute |
|---|---|---|---|
| Starter ($9) | 100 | 60 | 10 |
| Builder ($29) | 400 | 120 | 20 |
| Scale ($79) | 1,500 | 300 | 40 |
Credits reset at each renewal and do not roll over. Builder and Scale can buy extra credits from the Account page at their plan rate; they expire at the next reset. See the plans.
Errors
Errors return JSON with message and data.code.
401 invalid_api_key: missing, unknown or revoked key.402 insufficient_credits: the balance is below what the request could cost (data.balance,data.needed).422 media_too_long,video_no_captionsand similar: the video can't be processed.429 rate_limited: you sent more requests in a minute than your plan allows. TheRetry-Afterheader says when to try again.
Questions or more credits: [email protected]