Complete API documentation for integrating NormaOS into your applications
Base URL
https://api.norma-ai.com/v1/documentsUpload a document for analysis
Parameters
documentjurisdictionnametags/v1/documents/:idGet document details
Parameters
id/v1/analyzeStart document analysis
Parameters
documentIdphasesjurisdictionasync/v1/analysis/:idGet analysis results
Parameters
id/v1/documents/:idDelete a document
Parameters
id/v1/documentsList all documents
Parameters
pagelimitstatustags// 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
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 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 }Get your API key and start building with NormaOS today.