Invoance
Get a DemoLog InSign Up
Developers
Search docs…⌘K
Getting started
OverviewConceptsAuthenticationCreate an API key
API reference
EndpointsErrors
Audit Logs
Quick startIntegrationsEmbeddable viewerEvent schemaExporting eventsSDK reference
AI Attestations
Quick startAttestation schemaVerification & proofSDK reference
Events
OverviewSDK reference
Documents
OverviewSDK reference
Traces
OverviewSDK reference
SDKs
PythonNode.jsGoJavaRubyRust.NETPHPcURL
Verification
How it works
Support
API FAQ

Exporting events

Exports are asynchronous. Create a job with the same filters you would pass to the list endpoint, poll until its status is ready, then download from the short-lived presigned URL. Choose csv for spreadsheets or ndjson for line-delimited JSON. A single export spans both hot and cold-storage rows, so an old range comes back whole.

1Create the export
curl -X POST https://api.invoance.com/v1/audit/exports \
  -H "Authorization: Bearer invoance_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "organization_id": "org_01J8F3KQ2R7VWX9YB4ND6MCZAH",
    "format": "csv",
    "filters": {
      "actions": "user.signed_in",
      "range_start": "2026-06-01T00:00:00Z",
      "range_end": "2026-06-30T23:59:59Z"
    }
  }'
2Poll until ready
curl https://api.invoance.com/v1/audit/exports/aexp_01J… \
  -H "Authorization: Bearer invoance_live_xxx"
3Download the file
curl -L "https://…r2.cloudflarestorage.com/…" -o audit-export.csv

With the SDK

Every SDK wraps the same create-then-poll flow under client.audit.exports: create a job with optional filters, then poll get until status is ready and read download_url.

Python
job = await client.audit.exports.create(
    organization_id="org_01J8F3KQ2R7VWX9YB4ND6MCZAH",
    format="csv",                                # "csv" | "ndjson"
    filters={"action": "user.signed_in"},        # optional
)

while True:
    status = await client.audit.exports.get(job["id"])
    if status["status"] in ("ready", "failed"):
        break
    await asyncio.sleep(2)

if status["status"] == "ready":
    print(status["download_url"])

Good to know

  • Filters mirror GET /audit/events: actions, actor_id, target_id, and a range_start/range_end window.
  • The download_url is presigned and short-lived. Re-poll the job to mint a fresh one if it expires.
  • Exports are read-only and never billed; reads and verification are always free.
Audit Logs quick startFull endpoint reference
01Audit logs02AI decisions03Documents04Business events05Whole workflows
Invoance

Neutral proof infrastructure for records that must survive scrutiny. Signed at creation. Verifiable outside your dashboard.

ALL SYSTEMS OPERATIONALEvidence infrastructure · Online

Build

  • Developer overview
  • API endpoints
  • Official SDKs
  • Authentication
  • Verification model

Use Invoance

  • Why Invoance
  • How it works
  • Compliance teams
  • Finance teams
  • Pricing

Verify

  • Audit log
  • AI attestation
  • Document
  • Ledger event
  • Sealed trace

Company

  • Help center
  • Resources
  • Security
  • Partners
  • Contact
  • System status
FIELD NOTES / 01Proof patterns for teams building trust.

Invoance provides cryptographic proof and verification infrastructure. It does not provide legal, financial, compliance, or regulatory advice.

Read proof disclaimer

Records anchored with Invoance are cryptographically signed and designed to reveal tampering. Invoance verifies that a specific record existed in a particular form at a particular time; it does not assess the record's accuracy, authenticity, legality, or underlying contents. Public verification links can be resolved without authentication. Invoance is not a custodian of funds, a legal authority, or a regulated financial institution. Using Invoance does not by itself satisfy any legal or regulatory requirement. Consult qualified legal or compliance professionals regarding your obligations.

© 2025 – 2026 Invoance, Inc. All rights reserved.
PrivacyLegalFAQ
PROOF, NOT PROMISES.