Skip to main content

Endpoint

POST https://api.documind.cloud/api/v1/upload

Authentication

Requires write:extractions scope.

Request

Headers

HeaderValueRequired
X-API-KeyYour API keyYes

Body

Form data with file uploads:
FieldTypeRequiredDescription
filesfileYesOne or more files to upload (can repeat for multiple files)

Supported File Types

  • PDF: .pdf
  • Word: .docx
  • Images: .jpg, .jpeg, .png, .tiff

File Size Limits

  • Maximum file size: 50 MB per file
  • Maximum files per request: 10 files

Response

Success Response (200)

Returns an array of document IDs:
[
  "123e4567-e89b-12d3-a456-426614174000",
  "223e4567-e89b-12d3-a456-426614174001"
]

Examples

import requests

API_KEY = "your_api_key_here"
headers = {"X-API-Key": API_KEY}

# Upload single file
with open("invoice.pdf", "rb") as f:
    files = {"files": f}
    response = requests.post(
        "https://api.documind.cloud/api/v1/upload",
        headers=headers,
        files=files
    )

document_ids = response.json()
print(f"Uploaded document: {document_ids[0]}")

# Upload multiple files
files = [
    ("files", open("invoice1.pdf", "rb")),
    ("files", open("invoice2.pdf", "rb")),
    ("files", open("invoice3.pdf", "rb"))
]

response = requests.post(
    "https://api.documind.cloud/api/v1/upload",
    headers=headers,
    files=files
)

document_ids = response.json()
print(f"Uploaded {len(document_ids)} documents")

# Close files
for _, f in files:
    f.close()

Error Responses

400 Bad Request

Invalid file type or size:
{
  "detail": "Unsupported file type. Supported types: pdf, docx, jpg, jpeg, png, tiff"
}

401 Unauthorized

Missing or invalid API key:
{
  "detail": "Invalid or missing API key"
}

413 Payload Too Large

File exceeds size limit:
{
  "detail": "File size exceeds 50 MB limit"
}

500 Internal Server Error

Server error during upload:
{
  "detail": "Failed to upload documents. Please try again later."
}

Best Practices

Upload multiple files in a single request instead of making multiple requests. This is faster and more efficient.
Validate file sizes client-side to avoid failed uploads and improve user experience.
Implement retry logic with exponential backoff for failed uploads, especially for large files.
Save the returned document IDs for future extraction requests. Document IDs are permanent and can be used repeatedly.

Rate Limits

Upload endpoint is subject to rate limits based on your subscription tier. Contact support for higher limits.

Notes

  • Uploaded documents are stored securely and retained for 90 days
  • Document IDs are permanent and don’t change
  • Multiple uploads of the same file (within 5 minutes) return the same document ID
  • Files are automatically processed for OCR and layout analysis

Next Steps