API Documentation

Integrate Understify into your applications with our RESTful API. Build decision workflows with simple HTTP requests.

Quick Start

Get started in minutes. All you need is an API key from your settings page.

curl -X POST https://www.understify.com/api/v1/documents/upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@document.pdf"

Authentication

Secure API access with bearer token authentication

All API requests require authentication using an API key. Include your API key in the Authorization header using the Bearer token format:

Authorization: Bearer YOUR_API_KEY

Get Your API Key

API keys are available for Pro, Team, and Business plans. Create and manage your keys from the API settings page in your dashboard.

Base URL

All API requests should be made to this base URL

https://www.understify.com/api/v1

API Endpoints

Complete reference for all available endpoints

POST
/documents/upload

Upload a document for AI analysis. Supports PDF, images (PNG, JPG, JPEG), and other common formats. The document will be processed asynchronously.

Request

Content-Type: multipart/form-data

Form Data:
- file: (required) The document file to upload

Response (200 OK)

{
  "id": "doc_123456",
  "title": "document.pdf",
  "status": "processing",
  "file_type": "pdf",
  "file_size": 1024000,
  "created_at": "2024-01-15T10:30:00Z"
}

Example

curl -X POST https://www.understify.com/api/v1/documents/upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@document.pdf"
GET
/documents

List all your documents with pagination support. Filter by status and file type.

Query Parameters

  • page - Page number (default: 1)
  • limit - Items per page (default: 50, max: 100)
  • status - Filter by status (ready, processing, pending, failed)
  • file_type - Filter by file type (pdf, image, other)

Response (200 OK)

{
  "documents": [
    {
      "id": "doc_123456",
      "title": "document.pdf",
      "status": "ready",
      "file_type": "pdf",
      "file_size": 1024000,
      "created_at": "2024-01-15T10:30:00Z",
      "has_analysis": true
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 50,
    "total": 100,
    "totalPages": 2
  }
}

Example

curl -X GET "https://www.understify.com/api/v1/documents?page=1&limit=50&status=ready" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET
/documents/:id

Retrieve detailed information about a specific document, including analysis results if available.

Path Parameters

  • id - The document ID (required)

Response (200 OK)

{
  "id": "doc_123456",
  "title": "document.pdf",
  "status": "ready",
  "file_type": "pdf",
  "file_size": 1024000,
  "created_at": "2024-01-15T10:30:00Z",
  "analysis": {
    "status": "complete",
    "summary": "Document summary...",
    "key_points": ["Point 1", "Point 2"],
    "insights": [
      {
        "heading": "Key Insight",
        "content": "Detailed insight content..."
      }
    ]
  }
}

Example

curl -X GET "https://www.understify.com/api/v1/documents/doc_123456" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST
/documents/:id/qa

Ask questions about a document and get AI-powered answers based on the document content and analysis.

Path Parameters

  • id - The document ID (required)

Request Body

{
  "question": "What are the key terms in this contract?"
}

Response (200 OK)

{
  "answer": "The key terms include...",
  "confidence": 0.95,
  "sources": ["Section 2.1", "Section 3.4"]
}

Example

curl -X POST "https://www.understify.com/api/v1/documents/doc_123456/qa" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question": "What are the key terms?"}'

Rate Limits

API rate limits are based on your subscription plan

Rate limits help ensure fair usage and system stability. Limits are applied per API key and reset monthly.

Free

100 requests/month

Pro

1,000 requests/month

Team

5,000 requests/month

Business

Unlimited

Rate Limit Headers

All API responses include rate limit information in headers: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

Error Handling

Standard error response format for all API endpoints

All errors follow a consistent format with appropriate HTTP status codes:

{
  "error": "Error message describing what went wrong"
}

Common Status Codes

400 - Bad Request
401 - Unauthorized
403 - Forbidden
404 - Not Found
429 - Too Many Requests
500 - Internal Server Error

Need Help?

Have questions about the API? Our support team is here to help. Check out our documentation or contact us directly.