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.