Update Links in PDF
Finds every link annotation in a PDF pointing to a given URL and replaces it with a new URL, optionally restyling the link's appearance, then makes the modified PDF available for download.
Endpoint
OAuth Scope
curl --request POST \
--url https://www.zohoapis.com/pdfeditor/api/v1/pdf/annotation/link/update \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'content-type: multipart/form-data' \
-F 'file=@file_path' \
-F 'input_options={
"target_link": "https://zylker.com/annual-report-old",
"new_link": "https://zylker.com/annual-report",
"link_style": {
"color": "blue",
"rect_type": "visible rectangle"
}
}' \
-F 'password=OpenSesame123'Request Body
multipart/form-dataThe source PDF whose links are updated, uploaded directly or imported from a publicly accessible URL. The file must be no larger than 50 MB, contain no more than 400 pages, and have no page larger than 2,400 square inches. Its filename must not exceed 255 characters. Supported formats: pdf.
Configures which link to update and its new appearance.
{
"target_link": "https://zylker.com/annual-report-old",
"new_link": "https://zylker.com/annual-report",
"link_style": {
"color": "blue",
"rect_type": "visible rectangle"
}
}Show Sub-Attributes
The existing link URL to search for across every page. At least one link in the PDF must have this exact target, or the request fails.
The URL that replaces target_link on every matching link.
Restyles the appearance of every updated link.
{
"color": "blue",
"rect_type": "visible rectangle"
}Show Sub-Attributes
The color applied to each updated link.
The border style applied to each updated link.
The password to unlock the source PDF, if it is password-protected.
// Note: payload contains multiple type attributes
// type: file
file = quarterly-review.pdf
// type: object
input_options = {
"target_link": "https://zylker.com/annual-report-old",
"new_link": "https://zylker.com/annual-report",
"link_style": {
"color": "blue",
"rect_type": "visible rectangle"
}
}
// type: string
password = OpenSesame123 {
"status": "inprogress",
"status_check_url": "https://www.zohoapis.com/pdfeditor/api/v1/pdf/annotation/link/update/job/3f65c7592a741d98e46bf310cbe678f574a1d51fce306a8d9b6430217e538acd"
}
Rate Limits
Duration - Time window for the threshold.
Threshold - Number of API calls allowed within the specified duration.
Lock Period - Wait time before consecutive API requests.
© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.