Annotations

Update Annotations

This endpoint allows you to update multiple annotations in the document's default layer.

The annotation's content will be completely replaced with the content provided in the request, and its updatedBy field will be set to user_id.

The endpoint accepts two content types:

  • application/json - in this case, the request body is a JSON representation of one or more annotation; you can check the schema for more details.
  • multipart/form-data - with multipart request, annotation(s) can be uploaded along with a new attachment. Annotations are one part of the request, followed by attachments.

The annotation id is required, and it should correspond to an already existing annotation in the document. The user_id is set as the creator of the annotation.

put/api/documents/{documentId}/annotations

Request

  • Base URL: http://localhost:5000
  • URL: http://localhost:5000/api/documents/{documentId}/annotations
  • Auth: one of:
    • API key in header Authorization
    • HTTP bearer

Path parameters

documentIdstring required

The document ID

Headers

pspdfkit-pdf-passwordstring

The PDF document password.

The value can be either a plain-text password or a base64 encoded password in a form base64:<encoded-password>. Use the Base64 encoding if your password contains characters that are not allowed in HTTP header or would be otherwise mangled (e.g. trailing or leading spaces)

If the document is password protected, any operations performed on it require supplying a password.

Request body

Example request

{
  "annotations": [
    {
      "content": {
        "bbox": [
          255.10077620466092,
          656.7566095695641,
          145.91672653256705,
          18.390804597701162
        ],
        "action": {
          "relativePath": "/other_document.pdf"
        },
        "id": "01DNEDPQQ22W49KDXRFPG4EPEQ",
        "createdAt": "2019-09-16T15:05:03.712909Z",
        "updatedAt": "2019-09-16T15:05:03.712909Z",
        "customData": {
          "foo": "bar"
        },
        "rects": [
          [
            100,
            200,
            300,
            400
          ]
        ],
        "color": "#fcee7c",
        "note": "This is a note."
      },
      "id": "replace_this_with_an_actual_annotation_id"
    }
  ]
}

Response

Annotation(s) updated

detailsstring

A text summary of the status of the request

request_idstring
result'partial_failure' | 'success' | 'failure'

If all the items in the batch request were successful, then the status will be a success. A partial_failure will occur if only a few of the items in the batch request succeeded. Failure is when none of the items in the batch succeed.

status200 | 400 | 500

HTTP status code for the request. The status code is 200 if the request was processed. This does not have anything to do with the result - the status code will be 200 even if part of the request failed. In the case of total failures such as malformed JSON, or document not found, this status will be other than 200.

Example response

{
  "details": "Operation was partially successful",
  "data": [
    {
      "content": {
        "bbox": [
          255.10077620466092,
          656.7566095695641,
          145.91672653256705,
          18.390804597701162
        ],
        "action": {
          "relativePath": "/other_document.pdf"
        },
        "id": "01DNEDPQQ22W49KDXRFPG4EPEQ",
        "createdAt": "2019-09-16T15:05:03.712909Z",
        "updatedAt": "2019-09-16T15:05:03.712909Z",
        "customData": {
          "foo": "bar"
        },
        "rects": [
          [
            100,
            200,
            300,
            400
          ]
        ],
        "color": "#fcee7c",
        "note": "This is a note."
      },
      "id": "01DNEDPQQ22W49KDXRFPG4EPEQ"
    }
  ],
  "failing_paths": [
    {
      "path": "$.annotations[0]",
      "error": "Page index out of bounds.",
      "details": "The page index of the given annotation was greater than the number of pages in the document."
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.