canonical: https://jentic.com/apis/endorlabs.com/endorlabs

# Endor Labs AppSec API

Jentic publishes the only available OpenAPI specification for Endor Labs AppSec API, keeping it validated and agent-ready. Endor Labs is an application security platform focused on software supply chain risk; the API exposes namespace-scoped projects, findings, packages, scans, and policies. Security teams use it to enumerate vulnerabilities across repositories, kick off scans on demand, and check policy compliance. Each operation is namespaced, so multi-tenant CI integrations can isolate results per team or business unit.

## For AI agents

List projects, vulnerabilities, and packages, trigger scans, and check policies in an Endor Labs namespace for software supply chain security workflows.

## Scope

Does not handle source code repository management, secret scanning, or runtime workload protection - use for software supply chain vulnerability management, dependency scanning, and policy enforcement only.

## Capabilities

- Enumerate projects within an Endor Labs namespace for inventory checks
- List vulnerability findings filtered by namespace for triage
- Look up packages and their dependency graph metadata
- Trigger a fresh scan against a project or repository
- List active security policies enforced in a namespace

## Use cases

### Daily Vulnerability Triage

Pull the day's findings via GET `/v1/namespaces/{namespace}/findings`, filter by severity, and route critical issues to the right team. Endor Labs reports findings against the resolved dependency graph, so agents can ground triage in real call-path reachability rather than raw CVE lists. Most security teams run this kind of report once per workday.

Example prompt: List all findings in namespace 'prod' with severity 'CRITICAL' from the last 24 hours and post a summary to Slack

### On-Demand Scan from CI

Call POST `/v1/namespaces/{namespace}/scans` from a CI job to scan a freshly merged commit, then poll findings to fail the build on critical issues. This shifts security left without baking the scanner into every pipeline image.

Example prompt: POST a scan request for project 'svc-checkout' in namespace 'prod' and return the scan ID

### Project and Policy Inventory

Combine GET `/v1/namespaces/{namespace}/projects` and GET `/v1/namespaces/{namespace}/policies` to produce a one-shot view of what is being scanned and which guardrails are enforced. Useful for security architects auditing coverage across business units.

Example prompt: List every project and active policy in namespace 'security' and flag projects with no policy attached

### Agent-Driven AppSec Investigation

An agent receives a CVE alert, searches Jentic for 'find packages affected by a CVE', loads the Endor Labs packages operation, and returns the impacted projects. This compresses what was a multi-tab investigation into a single agent turn.

Example prompt: Given CVE-2025-1234, list packages in namespace 'prod' that are affected and return their parent projects

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/namespaces/{namespace}/projects` | List projects in a namespace |
| GET | `/v1/namespaces/{namespace}/findings` | List vulnerability findings |
| GET | `/v1/namespaces/{namespace}/packages` | List packages |
| POST | `/v1/namespaces/{namespace}/scans` | Create a scan |
| GET | `/v1/namespaces/{namespace}/policies` | List policies |

## Key resources

- **Projects** — List projects scanned within a namespace
- **Findings** — Vulnerability findings filtered by namespace
- **Packages** — Dependency packages and their metadata
- **Scans** — Trigger scans against projects
- **Policies** — List enforced security policies

## Why Jentic

- **Setup:** Wiring the Endor Labs AppSec API by hand means handling its bearer auth, threading your namespace through every route, and building your own error handling against https://api.endorlabs.com. Through Jentic you install once, import the Endor Labs AppSec API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The Endor Labs AppSec API puts the namespace in the URL path (`/v1/namespaces/{namespace}/...`), so a rule can pin your agent to one namespace: it can read that namespace's projects, findings, packages, and policies and nothing else. You choose the operations it may call, so triggering a scan is not included unless you add it.
- **Credential handling:** Your Endor Labs token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list vulnerability findings in a namespace' or 'read dependency packages', and Jentic returns the matching Endor Labs operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Endurain** — Different domain entirely (fitness vs security) - listed only because both APIs are namespace-scoped REST surfaces.
- **EngageBay CRM REST API** — EngageBay manages tickets and tasks where Endor Labs findings can be filed for remediation.
- **EnforcedFlow API** — EnforcedFlow can route Endor Labs findings into human-in-the-loop review tasks.

## FAQ

### Why is there no official OpenAPI spec for Endor Labs AppSec API?

Endor Labs does not publish a public OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Endor Labs AppSec API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Endor Labs AppSec API use?

The API uses bearer-token authentication via the standard `Authorization: Bearer <token>` header. Through Jentic, the token is stored encrypted in the vault and never enters the agent's prompt context.

### Can I trigger a scan from CI using the Endor Labs API?

Yes. POST `/v1/namespaces/{namespace}/scans` queues a scan against a project. CI jobs commonly call this endpoint after a merge and then poll findings before deciding to pass or fail the build.

### How are results scoped in the Endor Labs API?

Every operation is scoped to a namespace via the path parameter `{namespace}`, so findings, packages, projects, and policies are isolated per tenant or business unit. The agent must supply the namespace on every call.

### What are the rate limits for the Endor Labs AppSec API?

The spec does not declare rate limits. Endor Labs enforces per-tenant throttles in production; back off on HTTP 429 responses and confirm exact limits with your Endor Labs account team.

### How do I list critical findings through Jentic?

Run `pip install jentic`, search 'list endor labs vulnerability findings', and Jentic returns GET `/v1/namespaces/{namespace}/findings` with its input schema. The agent supplies the namespace and severity filter, then executes against base URL https://api.endorlabs.com.

### Can I limit what my agent is allowed to do with the Endor Labs AppSec API?

Yes. Because you run Jentic One yourself, your own rules decide which Endor Labs operations and credentials the agent may use. Every route carries the namespace in its path (`/v1/namespaces/{namespace}/...`), so you can pin the agent to a single namespace and let it read only that namespace's projects, findings, packages, and policies. You also choose the exact operations it may call, so triggering a scan via POST `/v1/namespaces/{namespace}/scans` stays off unless you explicitly allow it.
