InvoanceInvoance
Log inStart free
Developers
Search docs…⌘K
Getting started
OverviewConceptsAuthenticationCreate an API key
API reference
EndpointsErrors
Audit Logs
Quick startEvent schemaExporting eventsSDK reference
Resources
EventsDocumentsAI AttestationsTraces
SDKs
PythonNode.jscURL
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 Python SDK

The SDK wraps the same create-then-poll flow. Node is identical under client.audit.exports.

import asyncio
from invoance import InvoanceClient

async with InvoanceClient() as client:
    job = await client.audit.exports.create(
        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"},
    )
    while True:
        status = await client.audit.exports.get(job["id"])
        if status["status"] in ("ready", "failed"):
            break
        await asyncio.sleep(2)
    print(status["status"], status.get("download_url"))

Good to know

  • Filters mirror GET /v1/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
Invoance

Neutral digital proof infrastructure for business. Tamper-evident, independently verifiable records.

Subscribe to our newsletter

Products
Platform
How It Works
Developers
Verify
Resources
Help & Legal
Products
  • Event Ledger
  • Document Anchoring
  • AI Attestation
  • Audit Logs
Platform
  • Why Invoance
  • For Compliance Teams
  • For Finance Teams
  • Pricing
How It Works
  • Overview
  • Event Ledger
  • Document Anchoring
  • AI Attestation
Developers
  • Overview
  • Endpoints
  • Authentication
  • Concepts
Verify
  • Verify Document
  • Verify AI Attestation
  • Verify Event
  • Verify Trace
Resources
  • All Resources
  • SOC 2 Guide
  • HIPAA Guide
  • ISO 27001 Guide
Help & Legal
  • Support
  • Status
  • Verification Help
  • FAQ

Invoance provides technical verification and proof infrastructure for digital records. Invoance does not issue legal, financial, or regulatory advice.

Records anchored through Invoance are cryptographically signed and tamper-evident by design. Invoance does not verify the accuracy, legality, or authenticity of document contents, only that a record existed in a specific form at a specific time. Verification links are publicly resolvable and do not require authentication. Invoance does not act as a custodian of funds, a legal authority, or a regulated financial entity. Use of Invoance does not constitute legal compliance. Consult qualified counsel for your specific obligations.

© 2025 – 2026 Invoance, Inc. All rights reserved.••