API v1.0

API Reference

Complete API documentation for integrating NormaOS into your applications

Base URL

https://api.norma-ai.com
Available Endpoints
All API endpoints with parameters and examples
POST
/v1/documents
Auth Required

Upload a document for analysis

Parameters

document
file
Required
The document file (PDF, DOCX, TXT)
jurisdiction
string
Target jurisdiction (EU, US, UK)
name
string
Custom document name
tags
array
Tags for organization
GET
/v1/documents/:id
Auth Required

Get document details

Parameters

id
string
Required
Document ID
POST
/v1/analyze
Auth Required

Start document analysis

Parameters

documentId
string
Required
Document ID
phases
array
Specific phases to run
jurisdiction
string
Required
Jurisdiction for compliance check
async
boolean
Run analysis asynchronously
GET
/v1/analysis/:id
Auth Required

Get analysis results

Parameters

id
string
Required
Analysis ID
DELETE
/v1/documents/:id
Auth Required

Delete a document

Parameters

id
string
Required
Document ID
GET
/v1/documents
Auth Required

List all documents

Parameters

page
integer
Page number (default: 1)
limit
integer
Items per page (max: 100)
status
string
Filter by status
tags
array
Filter by tags
Code Examples

Upload Document

// Upload a document
const formData = new FormData();
formData.append('document', file);
formData.append('jurisdiction', 'EU');
formData.append('name', 'Contract Q4 2025');

const response = await fetch('https://api.norma-ai.com/v1/documents', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: formData
});

const result = await response.json();
// Returns: { documentId: "doc_abc123", status: "uploaded", ... }

Start Analysis

// Start analysis
const response = await fetch('https://api.norma-ai.com/v1/analyze', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    documentId: 'doc_abc123',
    jurisdiction: 'EU',
    phases: ['structure', 'compliance', 'risk'],
    async: true
  })
});

const analysis = await response.json();
// Returns: { analysisId: "ana_xyz789", status: "processing", ... }

List Documents

// List documents with pagination
const response = await fetch('https://api.norma-ai.com/v1/documents?page=1&limit=20&status=analyzed', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

const documents = await response.json();
// Returns: { data: [...], page: 1, total: 47, hasMore: true }

Ready to Integrate?

Get your API key and start building with NormaOS today.