본문으로 건너뛰기

API Reference Overview

The SELab.ai API allows you to integrate our systems engineering platform with your existing tools and workflows.

Base URL

https://api.selab.ai/v1

Authentication

All API requests require authentication using an API key.

Getting Your API Key

  1. Log in to SELab.ai
  2. Navigate to SettingsAPI Keys
  3. Click "Generate New Key"
  4. Copy and securely store your key

Using Your API Key

Include your API key in the request header:

curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.selab.ai/v1/projects

Rate Limits

PlanRequests per HourRequests per Day
Free1001,000
Pro1,00010,000
Enterprise10,000100,000

API Endpoints

Projects

GET    /projects           # List all projects
POST /projects # Create a new project
GET /projects/{id} # Get project details
PUT /projects/{id} # Update a project
DELETE /projects/{id} # Delete a project

Models

GET    /projects/{id}/models        # List models
POST /projects/{id}/models # Create a model
GET /models/{id} # Get model details
PUT /models/{id} # Update a model
DELETE /models/{id} # Delete a model

Requirements

GET    /projects/{id}/requirements  # List requirements
POST /projects/{id}/requirements # Create a requirement
GET /requirements/{id} # Get requirement details
PUT /requirements/{id} # Update a requirement
DELETE /requirements/{id} # Delete a requirement

Documents

POST   /projects/{id}/documents/generate  # Generate document
GET /documents/{id} # Get document
GET /documents/{id}/download # Download document

Request Format

All POST and PUT requests should use JSON:

{
"name": "My Project",
"description": "Project description",
"domain": "aerospace"
}

Response Format

Successful responses return JSON:

{
"status": "success",
"data": {
"id": "proj_123456",
"name": "My Project",
"created_at": "2026-03-18T09:00:00Z"
}
}

Error responses include details:

{
"status": "error",
"error": {
"code": "INVALID_REQUEST",
"message": "Project name is required"
}
}

Status Codes

CodeMeaning
200Success
201Created
400Bad Request
401Unauthorized
403Forbidden
404Not Found
429Rate Limit Exceeded
500Internal Server Error

Examples

Create a Project

curl -X POST https://api.selab.ai/v1/projects \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Autonomous Vehicle System",
"description": "Self-driving car project",
"domain": "automotive"
}'

List Requirements

curl https://api.selab.ai/v1/projects/proj_123/requirements \
-H "Authorization: Bearer YOUR_API_KEY"

Generate Document

curl -X POST https://api.selab.ai/v1/projects/proj_123/documents/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template": "requirements_spec",
"format": "pdf"
}'

SDKs

Official SDKs are available for:

  • Python: pip install selab-sdk
  • JavaScript/Node.js: npm install @selab/sdk
  • Java: Maven/Gradle available
  • C#/.NET: NuGet package available

Python Example

from selab import SELabClient

client = SELabClient(api_key="YOUR_API_KEY")

# Create a project
project = client.projects.create(
name="My Project",
domain="aerospace"
)

# List requirements
requirements = client.requirements.list(project.id)

JavaScript Example

const { SELabClient } = require('@selab/sdk');

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

// Create a project
const project = await client.projects.create({
name: 'My Project',
domain: 'aerospace',
});

// List requirements
const requirements = await client.requirements.list(project.id);

Webhooks

Subscribe to events in your projects:

POST /webhooks

Supported events:

  • project.created
  • model.updated
  • requirement.created
  • document.generated

Support