GET /cvs/{cvId}/file
Get a short-lived signed URL for a stored CV file. Fetch a fresh URL each time rather than storing the one you were given.
GET /cvs/{cvId}/file returns a signed URL for the stored CV, valid for one hour. The file is always served as a PDF — Word uploads are converted. It is the source CV you uploaded, not a document rendered into your template. Request a fresh URL each time rather than persisting one.
Request
GET /cvs/{cvId}/file · Authentication required
cvIdintegerrequiredThe stored CV's identifier.
curl "https://app.remakecv.com/api/public/v1/cvs/1234/file" \
-H "Authorization: Bearer $REMAKECV_API_KEY"Response
{
"data": {
"url": "https://storage.googleapis.com/...",
"expires_in": 3600
},
"pagination": null,
"error": null
}urlstringSigned download URL for the stored CV, always a PDF. In practice this is never null on a 200 response — a genuinely missing file surfaces as 500 internal_error instead.
expires_inintegerSeconds until the URL stops working. Currently 3600.
The file is the source CV, converted to PDF where it was uploaded as Word. RemakeCV's public API does not render CVs into your template — see POST /cvs/process.
How should I use it?
Store the id, not the URL
Persist
cvIdin your own system. Signed URLs are ephemeral by design.Fetch on demand
Call this endpoint at the moment a user asks for the file, then redirect or stream.
Download server-side where you can
Fetching the file on your server and serving it through your own authenticated route keeps the signed URL out of browsers, logs and referrer headers.
A signed URL grants access to a candidate's CV to anyone holding it, with no authentication. Do not put one in an email, a shared document, a client-side log or a support ticket.
Related
GET /cvs— find thecvIdto pass here- Sync formatted CVs back to your ATS — where this endpoint is normally used
Errors
| Status | Code | Cause |
|---|---|---|
401 | invalid_api_key | Key invalid, revoked or expired |
403 | api_disabled | Public API not enabled |
403 | cv_storage_disabled | CV storage is off for this company |
404 | not_found | No such CV for this company |
429 | rate_limit_exceeded | Over the rate limit |
Frequently asked questions
- How long is the URL valid?
- One hour, reported as expires_in: 3600. Fetch a fresh URL rather than storing one.
- What format is the file?
- Always PDF. Word uploads are converted. It is the source CV you uploaded, not a template-rendered document.
- Can I share the signed URL with a client?
- Technically it works until expiry, but it is a bad idea — it grants unauthenticated access to candidate personal data. Download the file and send it through your normal channel.
Related articles
Last updated . Still stuck? Email support@remakecv.com or book a call.