API Quick Reference
A fast-reference guide to the most common LatticeZero API endpoints. For full documentation see the complete API Reference.
:::note All compute (docking, scoring) runs client-side via WebGPU. The API manages data - job configuration, results storage, target metadata, and project management. :::
Authentication
Authorization: Bearer lz_your_api_key_here
API keys are available in Account Settings → API Keys. Session cookies are accepted automatically when using the web interface.
Base URL: https://app.latticezero.com/api
Docking Jobs
Submit a Docking Job
POST /api/isopose/submit
Content-Type: application/json
{
"smiles": "CC(CS)C(=O)N1CCCC1C(=O)O",
"target": "ace",
"mode": "standard"
}
Response:
{
"job_id": "job_abc123",
"status": "running",
"profile_id": "ace_metal_v5",
"profile_tier": "platinum"
}
Parameters:
| Field | Required | Values | Description |
|---|---|---|---|
smiles |
Yes | string | Input compound as SMILES |
target |
Yes | string | Target ID (e.g., ace, cdk2) |
mode |
No | standard, pro |
Docking thoroughness (default: standard) |
profile_id |
No | string | Override profile selection |
Check Job Status
GET /api/isopose/status/{job_id}
{
"job_id": "job_abc123",
"status": "complete",
"runtime_ms": 8420,
"score": -5.23,
"pqs": "good"
}
Status values: queued · running · complete · failed
Get Full Results
GET /api/isopose/results/{job_id}
Returns dock score, per-term physics breakdown, pose coordinates, and metadata.
Submit Batch Job
POST /api/isopose/batch
Content-Type: application/json
{
"smiles_list": ["SMILES1", "SMILES2"],
"target": "ace",
"mode": "standard"
}
Returns a batch_id for status polling.
Targets & Profiles
List Available Targets
GET /api/isopose/targets
Returns all available targets with IDs, tiers, profile info, and pocket metadata.
Get Target Details
GET /api/isopose/targets/{target_id}
Reference Compounds (DEKOIS2)
GET /api/isopose/reference-compounds/{target_id}
Returns known actives and decoys for benchmark targets. Useful for score calibration.
Projects
List Projects
GET /api/projects
Create Project
POST /api/projects
Content-Type: application/json
{
"name": "My Kinase Screen",
"type": "virtual_screen"
}
Project types: virtual_screen · lead_optimization
Add Job to Project
POST /api/projects/{project_id}/jobs
Content-Type: application/json
{
"job_id": "job_abc123"
}
Platform
Health Check
GET /api/platform/health
Returns platform status, GPU availability, and service health.
Cache Statistics
GET /api/isopose/cache/stats
Returns conformer cache hit rate and memory usage (admin only).
Error Handling
All errors return a consistent format:
{
"error": "target_not_found",
"message": "No target found with ID 'xyz'",
"status": 404
}
Common error codes:
| Code | Meaning |
|---|---|
invalid_smiles |
Input SMILES could not be parsed |
target_not_found |
Unknown target ID |
job_not_found |
Unknown job ID |
rate_limited |
Too many requests |
insufficient_permissions |
Feature requires higher plan |
Rate Limits
| Plan | Jobs/hour | Batch size |
|---|---|---|
| Free | 10 | 5 |
| Starter | 100 | 50 |
| Pro | 1000 | 500 |
| Enterprise | Unlimited | Unlimited |
Rate limit headers: X-RateLimit-Remaining, X-RateLimit-Reset