Skip to main content

API Overview

The ArchiCore REST API allows you to integrate architecture analysis into your workflows.

Base URL

https://api.archicore.io/api/v1

Authentication

All API requests require authentication using a Bearer token:

curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.archicore.io/api/v1/projects

See Authentication for details on obtaining API keys.

Response Format

All responses are JSON:

{
"success": true,
"data": { ... }
}

Error responses:

{
"success": false,
"error": "Error message",
"code": "ERROR_CODE"
}

HTTP Status Codes

CodeDescription
200Success
201Created
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing token
403Forbidden - Insufficient permissions
404Not Found
429Too Many Requests - Rate limit exceeded
500Internal Server Error

Rate Limits

TierRequests/dayRequests/minute
Free10010
Pro10,000100
EnterpriseUnlimited1,000

Rate limit headers are included in all responses:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640000000

Endpoints Summary

Projects

MethodEndpointDescription
GET/projectsList all projects
POST/projectsCreate a project
GET/projects/:idGet project details
DELETE/projects/:idDelete a project
POST/projects/:id/indexTrigger indexing

Analysis

MethodEndpointDescription
POST/projects/:id/searchSemantic search
POST/projects/:id/askAsk AI assistant
GET/projects/:id/metricsGet code metrics
GET/projects/:id/securitySecurity scan results
POST/projects/:id/analyzeImpact analysis

Webhooks

MethodEndpointDescription
GET/webhooksList webhooks
POST/webhooksCreate webhook
DELETE/webhooks/:idDelete webhook

SDKs

Official SDKs are available for:

  • JavaScript/TypeScript: npm install @archicore/sdk
  • Python: pip install archicore

Quick Example

import { ArchiCore } from '@archicore/sdk';

const client = new ArchiCore({ apiKey: 'YOUR_API_KEY' });

// Search code
const results = await client.projects.search('project-id', {
query: 'authentication logic'
});

// Ask AI
const answer = await client.projects.ask('project-id', {
question: 'How does the auth system work?'
});