Base URL: https://api.geteridian.com/v1. All Dev routes require X-Eridian-Project or project_id. Keys: eridian_sk_. Models: gpt, gemini, auto.
Scopes
| Scope | Access |
|---|
dev:read | GET repositories, reviews, Q&A, test jobs |
dev:write | Connect repos, index, review, complete, Q&A, tests, apply |
inference:write | Implied by dev:write on current Enterprise keys; still send it on new keys |
Repositories
| Method | Path | Description |
|---|
POST | /v1/dev/repositories | Connect and start index |
GET | /v1/dev/repositories | List |
GET | /v1/dev/repositories/{id} | Retrieve |
PATCH | /v1/dev/repositories/{id} | Update globs, completion flag |
POST | /v1/dev/repositories/{id}/index | Reindex |
POST | /v1/dev/repositories/{id}/archive | Archive |
POST | /v1/dev/repositories/{id}/hooks/push | Ingest a push |
List uses cursor pagination.
Completions
POST /v1/dev/completions
See Code Completion. No GET. Completions are not stored on ZDR.
Reviews
| Method | Path |
|---|
POST | /v1/dev/reviews |
GET | /v1/dev/reviews/{id} |
GET | /v1/dev/reviews |
POST | /v1/dev/reviews/{id}/publish |
Q&A
| Method | Path |
|---|
POST | /v1/dev/qa |
GET | /v1/dev/qa/{id} |
Pull requests
| Method | Path |
|---|
POST | /v1/dev/pull-requests/summarize |
POST | /v1/dev/pull-requests/summarize/{id}/apply |
POST | /v1/dev/releases/notes |
Tests
| Method | Path |
|---|
POST | /v1/dev/tests |
GET | /v1/dev/tests/{id} |
POST | /v1/dev/tests/{id}/results |
POST | /v1/dev/tests/{id}/revise |
Objects
object | Id prefix |
|---|
eridian.dev.repository | repo_ |
eridian.dev.review | rev_ |
eridian.dev.completion | cmp_ |
eridian.dev.qa | qa_ |
eridian.dev.pull_request.summary | prs_ |
eridian.dev.test_job | tst_ |
Errors
| HTTP | Code | When |
|---|
| 400 | invalid_request | Schema |
| 409 | repository_not_indexed | Index not ready |
| 409 | diff_too_large | Diff exceeds limit |
| 403 | git_host_forbidden | App cannot comment |
| 403 | residency_violation | Host replica off pin |
| 429 | rate_limit_exceeded | See Dev Limits |
Retry only when Errors says Yes. Always send Idempotency-Key on POST.
Python
from eridian import Eridian
client = Eridian(api_key="eridian_sk_...", project_id="prj_dev_001")
review = client.dev.reviews.create(
repository_id="repo_payments_core",
model="auto",
pull_request={"host": "github", "number": 4821, "head_sha": "8f3a2b1c"},
)
print(review.id, review.status, review.eridian.route)
TypeScript
import { Eridian } from "@eridian/sdk";
const client = new Eridian({
apiKey: process.env.ERIDIAN_API_KEY!,
projectId: "prj_dev_001",
});
const review = await client.dev.reviews.create({
repositoryId: "repo_payments_core",
model: "auto",
pullRequest: { host: "github", number: 4821, headSha: "8f3a2b1c" },
});
See Python SDK, TypeScript SDK, and Go SDK.