Eridian

Projects

Project objects, residency defaults, and membership.

A project is the unit of budget, residency, routing policy, and audit. Every inference call must name a project. Keys, templates, RAG collections, and webhooks are scoped to one project.

Object

{
  "id": "prj_legal_001",
  "object": "eridian.project",
  "name": "Legal production",
  "region": "eu-west-1",
  "routing_policy": "quality_optimized",
  "status": "active",
  "created_at": 1718400000
}

Create

POST /v1/projects
Authorization: Bearer eridian_sk_...
Content-Type: application/json
Idempotency-Key: create-prj-legal-001
{
  "name": "Legal production",
  "region": "eu-west-1",
  "routing_policy": "quality_optimized",
  "features_default": ["pii_redaction", "semantic_cache"]
}

Required scope: governance:manage. Creating a project in a residency the tenant is not entitled to returns HTTP 403 with error.code: residency_not_entitled.

Retrieve and List

GET /v1/projects/prj_legal_001
GET /v1/projects?starting_after=prj_legal_001&limit=20
Authorization: Bearer eridian_sk_...

List responses follow pagination.

Update

PATCH /v1/projects/prj_legal_001
Authorization: Bearer eridian_sk_...
{
  "routing_policy": "legal_strict_v2",
  "region": "eu-west-1"
}

Region changes after the project has stored Customer Data require dual control. The second approver must hold governance:manage. Until approved, inference continues in the previous region.

Membership

POST /v1/projects/prj_legal_001/members
Authorization: Bearer eridian_sk_...
{
  "email": "analyst@geteridian.com",
  "role": "operator"
}
RoleDashboardAPI
ownerFullAll scopes via keys they create
operatorInference, usage, templatesNo keys:manage unless granted
auditorRead-only usage and auditaudit:read, usage:read
viewerRead-only dashboardsNone

SSO groups map to these roles via SCIM. See Authentication.

Archive

POST /v1/projects/prj_legal_001/archive

Archived projects reject new inference with HTTP 403 error.code: project_archived. Audit events and evidence exports remain queryable.

Python

from eridian import Eridian

client = Eridian(api_key="eridian_sk_...")
project = client.projects.create(
    name="Legal production",
    region="eu-west-1",
)
print(project.id)

See Regions for pinning rules and Budgets for monthly ceilings.

Production API credentials are issued with an institution workspace. Contact sales if you need access.