Skip to content

Save a paper's PDF

Saves an arXiv link’s paper as its own document card. Saving the same link again returns that card; a save still running answers 409 IN_PROGRESS. Counts as a new card toward the plan’s limit.

POST/v1/cards/{cardId}/save-pdf
Authorization
AuthorizationBearer token (OAuth access token or teakapi_ API key) · headerrequired

Bearer token. Accepts either an OAuth 2.0 access token (obtained via browser sign-in; expires after 1 hour and is refreshable) or a teakapi_ API key.

Path parameters
cardIdstringrequired
Responses
200

The document an earlier save made from this link, with created: false

cardIdstringrequired

The document card holding the PDF

createdbooleanrequired

False when an earlier save already made the card

201

A new document card holding the paper's PDF

cardIdstringrequired

The document card holding the PDF

createdbooleanrequired

False when an earlier save already made the card

400

INVALID_INPUT: the card is not an arXiv link with a PDF (a withdrawn paper has none). CARD_LIMIT_REACHED: the free plan's card limit

codestringrequired
errorstringrequired
retryAtnumber | null
404

Card not found

codestringrequired
errorstringrequired
retryAtnumber | null
409

CONFLICT: the card is in Trash. IN_PROGRESS: a save of this PDF is still running; try again in a moment

codestringrequired
errorstringrequired
retryAtnumber | null
413

FILE_TOO_LARGE: the PDF is over 100 MB

codestringrequired
errorstringrequired
retryAtnumber | null
415

UNSUPPORTED_TYPE: arXiv didn't answer with a PDF

codestringrequired
errorstringrequired
retryAtnumber | null
429

RATE_LIMITED: 30 new cards a minute, as for creating cards

codestringrequired
errorstringrequired
retryAtnumber | null
503

SERVICE_UNAVAILABLE: arXiv couldn't be reached

codestringrequired
errorstringrequired
retryAtnumber | null
Try it
Server
Authorization
Parameters
Request
curl -X POST 'https://teakvault.com/api/v1/cards/string/save-pdf' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Accept: application/json'
Response
{
  "cardId": "string",
  "created": true
}

Was this page helpful?