AntFleet

Public API · v1

AntFleet API

Public, read-only JSON for AntFleet's code-quality data layer. Versioned. Rate-limited. Stable.

What it is

Every finding AntFleet publishes — investigations on launchpad agents, drift snapshots, the agents directory — is exposed as paginated JSON under /api/v1. Downstream dashboards, Dune workspaces, ecosystem watchers, and operator tooling can read AntFleet as a data source without scraping.

The contract under /api/v1 is frozen. Breaking changes ship at /api/v2. Additive changes — new optional fields, new endpoints, new query parameters — ship in-place and never remove what was there.

Endpoints

GET /api/v1/findings
list of all published findings, filterable by agent, repo, severity, and date.
GET /api/v1/findings/{finding_id}
one finding by id.
GET /api/v1/agents
the agents directory.
GET /api/v1/agents/{address}
one agent with finding + drift summary.
GET /api/v1/agents/{address}/findings
findings for one agent.
GET /api/v1/agents/{address}/drift
drift snapshots for one agent.
GET /api/v1/stats
aggregate counts (no caching, real-time).

Pagination + filters

Lists return { "data": [...], "next_cursor": "string|null" }. Pass ?cursor=<value> to fetch the next page. limit defaults to 20, max 100. Cursors are opaque — pass them back exactly as received.

Filter parameters on /findings: agent_token_address, repo_full_name, severity (info, low, med, high), since (ISO date).

Example

curl https://antfleet.dev/api/v1/findings?severity=high&limit=5
{
  "data": [
    {
      "finding_id": "feelocker-selector-2026-05-18",
      "agent_token_address": "0xB3D7e0c3C39A1D3F1B304663065A2F83Ddf56d8e",
      "agent_name": "autonomopoly",
      "repo_full_name": "Liquid-Protocol-Ops/agent-autonomopoly",
      "title": "FeeLocker selector mismatch …",
      "severity": "high",
      "summary": "…",
      "evidence": "…",
      "upstream_pr_url": null,
      "upstream_merged_sha": null,
      "published_at": "2026-05-18T12:34:56.000Z"
    }
  ],
  "next_cursor": null
}

Rate limit

60 requests per 60 seconds per IP, across all /api/v1 paths combined.

The 61st request returns 429 with a Retry-After header. No authentication; no per-partner bypass.

Versioning

/api/v1 is stable. Adding optional fields, endpoints, or query parameters is non-breaking and ships in-place. Removing or renaming a field, changing sort order, or changing default behaviour is breaking and ships at /api/v2. The OpenAPI document at /api/v1/openapi.json is the canonical machine-readable contract.

How to cite

AntFleet findings are stable artefacts. Cite them by finding_id:

https://antfleet.dev/api/v1/findings/<finding_id>

Linking to the human surface (https://antfleet.dev/agents/<address>) is fine for prose. The API URL is the form analysts should embed in dashboards and notebooks.