Skip to content
ZicoderaAttesta

Developers

Send events in. Verify the record.

Illustrative examples of the API, CLI, and CI action. The interface is subject to change during private preview.

Illustrative — interface subject to change

These snippets show the shape of the interface we are designing. Endpoints, flags, and field names will change, and the hostname below is a placeholder that does not resolve.

Event ingest

Send a provenance event for a change. Events are appended to your workspace's ledger and assigned a tier based on how they were authenticated.

Event ingest: curlIllustrative — interface subject to change
curl -X POST https://api.example.invalid/v1/events \
  -H "Authorization: Bearer $ATTESTA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "ai-session",
    "repo": "payments-api",
    "change": "PR-2041",
    "tools": ["Code assistant"],
    "occurred_at": "2026-09-02T05:14:00Z"
  }'

CI attestation

Add one step to your pipeline. It signs an event using the job's workload identity, so no long-lived secret is stored in CI.

CI attestation: YAMLIllustrative — interface subject to change
- name: Attest change provenance
  uses: zicodera/attesta-action@v1
  with:
    tier: attested

Webhooks

Subscribe to policy results and new evidence. Deliveries are signed so you can verify the sender.

Webhooks: JSONIllustrative — interface subject to change
{
  "id": "evt_0001",
  "type": "policy.failed",
  "policy": "payments-human-review",
  "change": "PR-2043",
  "repo": "payments-api",
  "mode": "warn"
}

Verification

Anyone holding an evidence pack can recompute the hash chain. The rule is the same one shown on the Platform page.

Verification: CLIIllustrative — interface subject to change
attesta verify ./evidence-pack.json
# recomputes hash_n = SHA-256(hash_{n-1} + canonicalJSON(payload_n))
# exits non-zero and prints the first broken event on failure

Authentication model

  • Scoped API keys

    Keys are limited to a workspace and to specific actions, such as ingest-only or read-only.

  • CI workload identity

    CI jobs authenticate with short-lived tokens from the CI provider, so no long-lived secret is stored in pipelines.

  • Read-only git app

    The git app requests read-only metadata scopes and cannot push code.

Know how your software was made.