REST API for IronSecureDoc

This is the REST API Reference for your instance of IronSecureDoc. This tutorial assumes you already have a container instance running. If you are looking to Get Started please follow our Guide.

Jump to features:

Tips

  • The placeholder of http://localhost:8080/ will be used for the URL in all examples. Please ensure you replace it with your URL.
  • Make sure to replace the placeholder values (e.g., path/to/your/file.pdf, certificate_password, etc.) with actual values.
  • The author, title, and subject headers are included in all request examples.

[GET] Health Check

Endpoint: http://localhost:8080/v1/document-services/ping

Health check endpoint to verify that the server is running.

Response: 200 OK: pong


[GET] Check License

Endpoint: http://localhost:8080/v1/document-services/check-license

Verifies the validity of the license.

Response: 200 OK: Valid


[POST] Redact Text

Endpoint: http://localhost:8080/v1/document-services/pdfs/redact-text

Hides sensitive words in a PDF format document using true redaction. Include a PDF file as a pdf_file object in the request body.

Required Request Body Parameters

NameData TypeDescription
pdf_fileapplication/pdf fileThe PDF file to redact.
words_to_redactarray[string]An array of words to be redacted from the document.

Optional Request Body Parameters

NameData TypeDefaultDescription
user_passwordstringnullUser password for the input PDF. Required if the PDF has a user password to grant read access.
owner_passwordstringnullOwner password for the input PDF. Required if the PDF has an owner password to grant access to make modifications.
specific_pagesarray[int]nullOptionally specify pages to apply to. If left empty, all pages will apply.
draw_black_boxboolTrueHave a Black Box drawn over redacted text areas.
match_whole_wordboolTrueAllow partial matches within words be redacted too.
match_caseboolnullMatch case for the words to be redacted.
overlay_textstringnullIf your prefer an Overlay Text on the redaction area such as words or symbols, set them here. If not set, a blank character will be used.
save_as_pdfaboolFalseSave the PDF with PDF/A-3 compliance.
save_as_pdfuaboolFalseSave the PDF with PDF/UA compliance.

Optional Headers

NameData TypeDescription
authorstringSet the PDF Metadata Author property.
titlestringSet the PDF Metadata Title property.
subjectstringSet the PDF Metadata Subject property.

Example:

Request

Required Parameters Only:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-text' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'words_to_redact=pdf' \
  -F 'draw_black_box=true' \
  -F 'match_whole_word=true' \
  -F 'match_case=true' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-text' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'words_to_redact=pdf' \
  -F 'draw_black_box=true' \
  -F 'match_whole_word=true' \
  -F 'match_case=true' \
SHELL

All Required and Optional Parameters:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-text' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'words_to_redact=word1' \
  -F 'words_to_redact=word2' \
  -F 'draw_black_box=true' \
  -F 'match_whole_word=true' \
  -F 'match_case=true' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'overlay_text=REDACTED' \
  -F 'specific_pages=0' \
  -F 'specific_pages=1' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-text' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'words_to_redact=word1' \
  -F 'words_to_redact=word2' \
  -F 'draw_black_box=true' \
  -F 'match_whole_word=true' \
  -F 'match_case=true' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'overlay_text=REDACTED' \
  -F 'specific_pages=0' \
  -F 'specific_pages=1' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
SHELL

Response:

  • 200 OK with the redacted PDF file attached.

[POST] Redact Regular Expression

Endpoint: http://localhost:8080/v1/document-services/pdfs/redact-regular-expression

Hides sensitive Regular Expression matches (such as dates, names, or patterns) in a PDF format document using true redaction. Include a PDF file as a pdf_file object in the request body.

Required Request Body Parameters

NameData TypeDescription
pdf_fileapplication/pdf fileThe PDF file to redact.
regular_expressionstringRegular Expression from which matching cases will be redacted from the document.

Optional Request Body Parameters

NameData TypeDefaultDescription
user_passwordstringnullUser password for the input PDF. Required if the PDF has a user password to grant read access.
owner_passwordstringnullOwner password for the input PDF. Required if the PDF has an owner password to grant access to make modifications.
specific_pagesarray[int]nullOptionally specify pages to apply to. If left empty, all pages will apply.
draw_black_boxboolTrueHave a Black Box drawn over redacted text areas.
overlay_textstringnullIf your prefer an Overlay Text on the redaction area such as words or symbols, set them here. If not set, a blank character will be used.
save_as_pdfaboolFalseSave the PDF with PDF/A-3 compliance.
save_as_pdfuaboolFalseSave the PDF with PDF/UA compliance.

Optional Headers

NameData TypeDescription
authorstringSet the PDF Metadata Author property.
titlestringSet the PDF Metadata Title property.
subjectstringSet the PDF Metadata Subject property.

Example:

Request

Required Parameters Only:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-regular-expression' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'regular_expression="[0-9]"' \
  -F 'draw_black_box=true' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-regular-expression' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'regular_expression="[0-9]"' \
  -F 'draw_black_box=true' \
SHELL

All Required and Optional Parameters:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-regular-expression' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'regular_expression="[0-9]"' \
  -F 'draw_black_box=true' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'overlay_text=*' \
  -F 'specific_pages=0' \
  -F 'specific_pages=1' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-regular-expression' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'regular_expression="[0-9]"' \
  -F 'draw_black_box=true' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'overlay_text=*' \
  -F 'specific_pages=0' \
  -F 'specific_pages=1' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
SHELL

Response:

  • 200 OK with the redacted PDF file attached.

[POST] Redact Region

Endpoint: http://localhost:8080/v1/document-services/pdfs/redact-region

Hides sensitive text in a specific region of a PDF document using true redaction. Include a PDF file as a pdf_file object in the request body.

Required Request Body Parameters

NameData TypeDescription
pdf_fileapplication/pdf fileThe PDF file to redact.
region_to_redact_xfloatX coordinate of the region to redact, starting from the bottom-left of the page.
region_to_redact_yfloatY coordinate of the region to redact, starting from the bottom-left of the page.
region_to_redact_wfloatWidth of the region to redact, starting from the specified X coordinate.
region_to_redact_hfloatHeight of the region to redact, starting from the specified Y coordinate.

Optional Request Body Parameters

NameData TypeDefaultDescription
user_passwordstringnullUser password for the input PDF. Required if the PDF has a user password to grant read access.
owner_passwordstringnullOwner password for the input PDF. Required if the PDF has an owner password to grant access to make modifications.
specific_pagesarray[int]nullOptionally specify pages to apply to. If left empty, all pages will apply.
draw_black_boxboolTrueHave a Black Box drawn over redacted text areas.
save_as_pdfaboolFalseSave the PDF with PDF/A-3 compliance.
save_as_pdfuaboolFalseSave the PDF with PDF/UA compliance.

Optional Headers

NameData TypeDescription
authorstringSet the PDF Metadata Author property.
titlestringSet the PDF Metadata Title property.
subjectstringSet the PDF Metadata Subject property.

Example:

Request

Required Parameters Only:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-region' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'region_to_redact_x=100' \
  -F 'region_to_redact_y=150' \
  -F 'region_to_redact_w=500' \
  -F 'region_to_redact_h=400' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-region' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'region_to_redact_x=100' \
  -F 'region_to_redact_y=150' \
  -F 'region_to_redact_w=500' \
  -F 'region_to_redact_h=400' \
SHELL

All Required and Optional Parameters:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-region' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'region_to_redact_x=100' \
  -F 'region_to_redact_y=150' \
  -F 'region_to_redact_w=500' \
  -F 'region_to_redact_h=400' \
  -F 'specific_pages=0' \
  -F 'specific_pages=1' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-region' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'region_to_redact_x=100' \
  -F 'region_to_redact_y=150' \
  -F 'region_to_redact_w=500' \
  -F 'region_to_redact_h=400' \
  -F 'specific_pages=0' \
  -F 'specific_pages=1' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
SHELL

Response:

  • 200 OK with the redacted PDF file attached.

[POST] Certify / Apply Digital Signature

Endpoint: http://localhost:8080/v1/document-services/pdfs/certify

Adds a certification to a PDF document to assert that it has not been tampered with by means of a Certificate file (.p12, .pfx). Include a PDF file as a pdf_file object in the request body, and a certificate file as a certificate_file object in the request body.

Required Request Body Parameters

NameData TypeDescription
pdf_fileapplication/pdf fileThe PDF file to certify.
certificate_fileapplication/x-pkcs12 fileThe certificate file (.p12, .pfx) to use for certification.
certificate_passwordstringPassword for the provided certificate file.
certificate_permissionsint
certificate_permissions valuePermissions
1No Changes Allowed. Any further document changes will invalidate the signature.
2Only Additional Signatures and Form Filling Allowed.
3Only AdditionalSignatures, Form Filling, and Annotations Allowed

Optional Request Body Parameters

NameData TypeDefaultDescription
user_passwordstringnullUser password for the input PDF. Required if the PDF has a user password to grant read access.
owner_passwordstringnullOwner password for the input PDF. Required if the PDF has an owner password to grant access to make modifications.
save_as_pdfaboolFalseSave the PDF with PDF/A-3 compliance.
save_as_pdfuaboolFalseSave the PDF with PDF/UA compliance.

Optional Headers

NameData TypeDescription
authorstringSet the PDF Metadata Author property.
titlestringSet the PDF Metadata Title property.
subjectstringSet the PDF Metadata Subject property.

Example:

Request

Required Parameters Only:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/certify' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'certificate_file=@sample.pfx;type=application/x-pkcs12' \
  -F 'certificate_password=p4ssw0rd' \
  -F 'certificate_permissions=1' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/certify' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'certificate_file=@sample.pfx;type=application/x-pkcs12' \
  -F 'certificate_password=p4ssw0rd' \
  -F 'certificate_permissions=1' \
SHELL

All Required and Optional Parameters:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/certify' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'certificate_file=@sample.pfx;type=application/x-pkcs12' \
  -F 'certificate_password=p4ssw0rd' \
  -F 'certificate_permissions=1' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/certify' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'certificate_file=@sample.pfx;type=application/x-pkcs12' \
  -F 'certificate_password=p4ssw0rd' \
  -F 'certificate_permissions=1' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
SHELL

Response:

  • 200 OK with the certified PDF file attached.

[POST] Sign with Signature and Certificate

Endpoint: http://localhost:8080/v1/document-services/pdfs/sign

Adds an image and certification to that image in a PDF document to assert that it has not been tampered with by means of a Certificate file (.p12, .pfx). Include a PDF file as a pdf_file object in the request body, and a certificate file as a certificate_file object in the request body.

Required Request Body Parameters

NameData TypeDescription
pdf_fileapplication/pdf fileThe PDF file to certify.
signature_image_fileimage/jpeg or image/png fileThe signature image (.png, .jpg, .jpeg) to use for certification. Can be a logo, autograph, etc.
certificate_fileapplication/x-pkcs12 fileThe certificate file (.p12, .pfx) to use for certification.
certificate_passwordstringPassword for the provided certificate file.
certificate_permissionsint
certificate_permissions valuePermissions
1No Changes Allowed. Any further document changes will invalidate the signature.
2Only Additional Signatures and Form Filling Allowed.
3Only AdditionalSignatures, Form Filling, and Annotations Allowed

sign_specific_pageintSpecify page to apply the image and certificate to. First page is 0. If left empty, only first page will apply.
signature_image_xfloatThe X coordinate of the Rectangle region of the signature image. This starts from the top-left of the page.
signature_image_yfloatThe Y coordinate of the Rectangle region of the signature image. This starts from the top-left of the page.
signature_image_wfloatThe Width of the Rectangle region of the signature image. This starts from the top-left of the page.
signature_image_hfloatThe Height of the Rectangle region of the signature image. This starts from the top-left of the page.

Optional Request Body Parameters

NameData TypeDefaultDescription
user_passwordstringnullUser password for the input PDF. Required if the PDF has a user password to grant read access.
owner_passwordstringnullOwner password for the input PDF. Required if the PDF has an owner password to grant access to make modifications.
specific_pagesarray[int]nullOptionally specify pages to apply to. If left empty, all pages will apply.
save_as_pdfaboolFalseSave the PDF with PDF/A-3 compliance.
save_as_pdfuaboolFalseSave the PDF with PDF/UA compliance.

Optional Headers

NameData TypeDescription
authorstringSet the PDF Metadata Author property.
titlestringSet the PDF Metadata Title property.
subjectstringSet the PDF Metadata Subject property.

Example:

Request

Required Parameters Only:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/sign' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'signature_image_file=@autograph.png;type=image/png' \
  -F 'certificate_file=@sample.pfx;type=application/x-pkcs12' \
  -F 'certificate_password=p4ssw0rd' \
  -F 'certificate_permissions=1' \
  -F 'sign_specific_page=0' \
  -F 'signature_image_x=100' \
  -F 'signature_image_y=150' \
  -F 'signature_image_w=500' \
  -F 'signature_image_h=400' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/sign' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'signature_image_file=@autograph.png;type=image/png' \
  -F 'certificate_file=@sample.pfx;type=application/x-pkcs12' \
  -F 'certificate_password=p4ssw0rd' \
  -F 'certificate_permissions=1' \
  -F 'sign_specific_page=0' \
  -F 'signature_image_x=100' \
  -F 'signature_image_y=150' \
  -F 'signature_image_w=500' \
  -F 'signature_image_h=400' \
SHELL

All Required and Optional Parameters:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/sign' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'signature_image_file=@autograph.png;type=image/png' \
  -F 'certificate_file=@sample.pfx;type=application/x-pkcs12' \
  -F 'certificate_password=p4ssw0rd' \
  -F 'certificate_permissions=1' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
  -F 'sign_specific_page=0' \
  -F 'signature_image_x=100' \
  -F 'signature_image_y=150' \
  -F 'signature_image_w=500' \
  -F 'signature_image_h=400' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/sign' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'signature_image_file=@autograph.png;type=image/png' \
  -F 'certificate_file=@sample.pfx;type=application/x-pkcs12' \
  -F 'certificate_password=p4ssw0rd' \
  -F 'certificate_permissions=1' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
  -F 'sign_specific_page=0' \
  -F 'signature_image_x=100' \
  -F 'signature_image_y=150' \
  -F 'signature_image_w=500' \
  -F 'signature_image_h=400' \
SHELL

Response:

  • 200 OK with the certified PDF file attached.

[POST] Verify Signatures

Endpoint: http://localhost:8080/v1/document-services/pdfs/verify-signatures

Verifies that the signatures within the PDF file are valid.

Required Request Body Parameters

NameData TypeDescription
pdf_fileapplication/pdf fileThe PDF file to encrypt.

Optional Request Body Parameters

NameData TypeDefaultDescription
user_passwordstringnullUser password for the input PDF. Required if the PDF has a user password to grant read access.
owner_passwordstringnullOwner password for the input PDF. Required if the PDF has an owner password to grant access to make modifications.

Example:

Request

Required Parameters Only:

curl -X POST 'https://api.securedoc.com/v1/document-services/pdfs/verify-signatures' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
curl -X POST 'https://api.securedoc.com/v1/document-services/pdfs/verify-signatures' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
YAML

All Required and Optional Parameters:

curl -X POST 'https://api.securedoc.com/v1/document-services/pdfs/verify-signatures' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
curl -X POST 'https://api.securedoc.com/v1/document-services/pdfs/verify-signatures' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
YAML

Response:

  • 200 OK if there are signatures and they are all valid
  • 400 Bad Request if there are no signatures or at least one is invalid.

[POST] Encrypt / Add Password & Permissions

Endpoint: http://localhost:8080/v1/document-services/pdfs/encrypt

Adds a layer of security to a PDF document by encrypting it with a user and owner password. Include a PDF file as a pdf_file object in the request body.

Required Request Body Parameters

NameData TypeDescription
pdf_fileapplication/pdf fileThe PDF file to encrypt.
allow_extracting_contentboolAllow the extraction of content from the PDF file.
allow_form_fillingboolAllow the filling of forms in the resulting PDF.
allow_annotationsboolAllow the addition or modification of annotations in the resulting PDF.
allow_printingboolAllow printing of the resulting PDF.
allow_modificationsboolAllow modifications to the resulting PDF.
new_owner_passwordstringNew owner password for the output PDF. Grants full access, including changing permissions and passwords.

Optional Request Body Parameters

NameData TypeDefaultDescription
user_passwordstringnullUser password for the input PDF. Required if the PDF has a user password to grant read access.
owner_passwordstringnullOwner password for the input PDF. Required if the PDF has an owner password to grant access to make modifications.
new_user_passwordstringnullNew user password for the output PDF. Grants read access and other specified permissions.
save_as_pdfaboolFalseSave the PDF with PDF/A-3 compliance.
save_as_pdfuaboolFalseSave the PDF with PDF/UA compliance.

Optional Headers

NameData TypeDescription
authorstringSet the PDF Metadata Author property.
titlestringSet the PDF Metadata Title property.
subjectstringSet the PDF Metadata Subject property.

Example:

Request

Required Parameters Only:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/encrypt' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'allow_extracting_content=true' \
  -F 'allow_form_filling=true' \
  -F 'allow_annotations=true' \
  -F 'allow_printing=true' \
  -F 'allow_modifications=false' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/encrypt' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'allow_extracting_content=true' \
  -F 'allow_form_filling=true' \
  -F 'allow_annotations=true' \
  -F 'allow_printing=true' \
  -F 'allow_modifications=false' \
SHELL

All Required and Optional Parameters:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/encrypt' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'allow_extracting_content=true' \
  -F 'allow_form_filling=true' \
  -F 'allow_annotations=true' \
  -F 'allow_printing=true' \
  -F 'allow_modifications=false' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'new_user_password=p4ssw0rd' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/encrypt' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'allow_extracting_content=true' \
  -F 'allow_form_filling=true' \
  -F 'allow_annotations=true' \
  -F 'allow_printing=true' \
  -F 'allow_modifications=false' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'new_user_password=p4ssw0rd' \
  -F 'save_as_pdfa=false' \
  -F 'save_as_pdfua=false' \
SHELL

Response:

  • 200 OK with the encrypted PDF file attached.

[POST] Extract Text from a Document

Endpoint: http://localhost:8080/v1/document-services/pdfs/extract

Extracts text embedded in the pages of a document. Include a PDF file as a pdf_file object in the request body.

Required Request Body Parameters

NameData TypeDescription
pdf_fileapplication/pdf fileThe PDF file to encrypt.

Optional Request Body Parameters

NameData TypeDefaultDescription
user_passwordstringnullUser password for the input PDF. Required if the PDF has a user password to grant read access.
owner_passwordstringnullOwner password for the input PDF. Required if the PDF has an owner password to grant access to make modifications.
specific_pagesarray[int]nullOptionally specify pages to apply to. If left empty, all pages will apply.

Example:

Request

Required Parameters Only:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/extract' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/extract' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
SHELL

All Required and Optional Parameters:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/extract' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'specific_pages=0' \
  -F 'specific_pages=1' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/extract' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
  -F 'specific_pages=0' \
  -F 'specific_pages=1' \
SHELL

Response:

  • 200 OK with the extracted text as a response.

[POST] Verify Document Password

Endpoint: http://localhost:8080/v1/document-services/pdfs/verify-password

Verifies that the user and owner passwords supplied are valid for the pdf_file.

Required Request Body Parameters

NameData TypeDescription
pdf_fileapplication/pdf fileThe PDF file.
user_passwordstringUser password for the input PDF. Required if the PDF has a user password to grant read access.
owner_passwordstringOwner password for the input PDF.

Example:

Request

Required Parameters Only:

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/verify-password' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/verify-password' \
  -H 'accept: */*' \
  -H 'author: Iron Software | IRONSECUREDOC' \
  -H 'title: WEBSITE DEMO 2024' \
  -H 'subject: DEMO EXAMPLE' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@sample.pdf;type=application/pdf' \
  -F 'user_password=password' \
  -F 'owner_password=5yug2RT45th32h78' \
SHELL

Response:

  • 200 OK

Frequently Asked Questions

What is the IronSecureDoc REST API?

IronSecureDoc REST API is a service that allows you to secure and manage documents through various functionalities such as redacting text, applying digital signatures, and setting document permissions.

How do I check if my server is running using the IronSecureDoc REST API?

You can perform a health check by sending a GET request to the endpoint `/v1/document-services/ping`. A successful response will return 200 OK: `pong`.

Can I redact text in a PDF using the IronSecureDoc REST API?

Yes, you can redact text in a PDF by sending a POST request to `/v1/document-services/pdfs/redact-text` with the necessary request body parameters, including the PDF file and words to redact.

How do I verify digital signatures in a PDF using IronSecureDoc REST API?

To verify signatures, send a POST request to `/v1/document-services/pdfs/verify-signatures` with the PDF file. The API will confirm if all signatures are valid.

What is required to encrypt a PDF using IronSecureDoc REST API?

To encrypt a PDF, send a POST request to `/v1/document-services/pdfs/encrypt` with the PDF file and specify permissions like allowing content extraction, form filling, and setting passwords.

How can I apply a digital signature to a PDF using IronSecureDoc REST API?

You can apply a digital signature by sending a POST request to `/v1/document-services/pdfs/certify` with the PDF file, a certificate file, and the certificate password.

What functionality does IronSecureDoc provide for protecting PDFs?

IronSecureDoc offers functionality to encrypt PDFs, set permissions, add passwords, and verify passwords to protect the content of your documents.

Can IronSecureDoc REST API extract text from a PDF?

Yes, you can extract text from a PDF by sending a POST request to `/v1/document-services/pdfs/extract` with the PDF file. Optional parameters allow specifying which pages to extract from.

How do I verify document passwords using IronSecureDoc REST API?

To verify document passwords, send a POST request to `/v1/document-services/pdfs/verify-password` with the PDF file and both user and owner passwords.

What are the key features of IronSecureDoc REST API?

Key features include checking server health, verifying license, redacting text, applying digital signatures, encrypting PDFs, and extracting text from documents.

Chaknith Bin
Software Engineer
Chaknith works on IronXL and IronBarcode. He has deep expertise in C# and .NET, helping improve the software and support customers. His insights from user interactions contribute to better products, documentation, and overall experience.