API Reference

OpenAPI Specification

You can download the complete API spec. The API spec is subject to change while in Early Access (EA). EA participants are encouraged to provide feedback to NVIDIA prior to the General Access (GA) release.

API Examples

Extract Text Data from Image

The v1/infer endpoint accepts multiple images and returns a list of text extracted from each image.

Each image must be base64 encoded, and should be represented in the following JSON format. The supported image formats are png and jpeg.

{
  "type": "image_url",
  "image_url": {
    "url": "data:image/<IMAGE_FORMAT>;base64,<BASE64_ENCODED_IMAGE>"
  }
}

Example:

{
  "type": "image_url",
  "image_url": {
    "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAB41BMVEUAAABtr0FtsUFssEJtsEJusUN0sVxtrkFtsUNztkdtsUJus0R0s0ZvskNrrT9sr0JwtUZtsEFusEJtsEJusUNusUNtsEJusUNusUNusUNtsEJusUNusUNusUNusENtsUJusUNusUNusUNtsUNusUNusUNusUNusUNusUNusUNusUNusUNtsEJusUNusUNtsEFusUJusUNusUNtsUJusEJtsEJtsENusUNusUNusUNusUNusUNtsEJusEJtsEJusUNusUNusUJusUNusUNtsEJusEJusUNusUNusUNusEJusUNusUNusEJtsUNusUNusUNtsUNusEJusUNusUNtsEFusUNusUNsrkFusUNusEJusUNusUNtsUJtsUNusUNusUJusUNusUNusUJusUJusUNusUNtsEJusEJusUNusUNssEFtsUFusUNusUNssEJusUNusUNusEJusUNusUNtsUJusEJusUNusUNssUJusUNusUNusUNusUNusUJtsEJusUJusUNtsEJusUNusUNusUJusUJusUNusUNusEJusUNusUNtsUJusUNusUNtsEJrrz9pqz5usUNusUNusUNtsEJusUNusUNusUNusEJtsUJusUNusUNusUNusUNusUNtsUJusUNteYTkAAAAoHRSTlMAAAAAAAAAAAAAAAAAAAAAAAAAJOT+Kdfz/B1bmqlGOVKL0SCAz8mUc6GYZBpr2Ahd0tBgFRVErMjp3XUOKBz0sCLKvwwyl/CmGb28GD7N02FCslwEk6oDhCHn60FKVTzl7z4t5roPIOPZCQJ4uRJpjTP9w0Mco5EQatyGh1goWcwY95shKWhuEX7WVsKZFgQBM8s1ISlFdxA8tcfU6PggwJY8TQAAAQBJREFUeJxjYAADRiZhkQWiIADmMrOwsomJS0guAAIgl52DU0paRlZOXkFRSRIowMWtrKKqpq6hqaUtrKOrx8Cib2BoZGxiamZuYWllbWPLYKdu7+Bop+LkbOvi6ubu4cngJert4+vnHxAYFMwTErpAnSFoQVh4xAJd3sio6JhYveg4hviExKTklNS09IwFmdGW0lkM2TmSuXn5EgWFKQuKiktKQxm40sokyysqq7yra2rr6hskGRhYGj2amltaK3XbFJ3sDduBLuXq6Ezo6uzu8S/ujevrBwrwsU6YqDipePKUyKnTpjuAPcfPKjBj5qzZc+bOA3sOBASF5icsAAMAFI5IFASP0tsAAAAASUVORK5CYII="
  }
}

An inference request has entries for model and messages. The value for model must be "baidu/paddleocr". The value for messages must be an array of exactly one message object. A message contains a content array of all images in the inference request, declared in the format specified above. For example, a JSON payload of three images would look like:

{
    "model": "baidu/paddleocr",
    "messages": [
      {
        "content": [
          {
            "type": "image_url",
            "image_url": {
              "url": "data:img/png;base64,<BASE64_ENCODED_IMAGE>"
            }
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "data:img/png;base64,<BASE64_ENCODED_IMAGE>"
            }
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "data:img/png;base64,<BASE64_ENCODED_IMAGE>"
            }
          }
        ]
      }
    ]
  }

cURL Request

HOSTNAME="localhost"
SERVICE_PORT=8000
curl -X "POST" \
  "http://${HOSTNAME}:${SERVICE_PORT}/v1/infer" \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
        "model": "baidu/paddleocr",
        "messages": [
          {
            "content": [
              {
                "type": "image_url",
                "image_url": {
                  "url": "data:image/<IMAGE_FORMAT>;base64,<BASE64_ENCODED_IMAGE>"
                }
              }
            ]
          }
        ]
      }'

Response

{
  "object": "list",
  "data": [
    {
      "index": 0,
      "content": "<text from image>",
      "object": "string"
    },
  ],
  "model": "baidu/paddleocr",
  "usage": null
}

Health Check

cURL Request

Use the following command to query the health endpoints.

HOSTNAME="localhost"
SERVICE_PORT=8000
curl "http://${HOSTNAME}:${SERVICE_PORT}/v1/health/ready" \
-H 'Accept: application/json'
HOSTNAME="localhost"
SERVICE_PORT=8000
curl "http://${HOSTNAME}:${SERVICE_PORT}/v1/health/live" \
-H 'Accept: application/json'

Response

{
  "ready": true
}
{
  "live": true
}

Reference

PaddleOCR NIM API