> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openfi.co/llms.txt
> Use this file to discover all available pages before exploring further.

# API Reference Overview

> Base URL, environments, and conventions used across the OpenFi API.

## Base URL

```text theme={null}
https://api.openfi.co/v1
```

Testnet requests use the same base URL. The environment is determined by which API key you send (`sk_testnet_...` vs `sk_live_...`).

## Conventions

* All request and response bodies are JSON.
* Amounts are decimal strings or numbers in the currency's major unit (e.g. `25.00` = \$25.00), not minor units, unless otherwise noted.
* All timestamps are ISO 8601 UTC.
* Idempotency: pass an `Idempotency-Key` header on any `POST` to safely retry a request.

## Resource groups

> **[Payments](https://docs.openfi.co/api-reference/payments/create-payment.md)**
>
> One-time push/pull transfers. No standing authorization.

> **[Agentic](https://docs.openfi.co/api-reference/agentic/create-mandate.md)**
>
> Mandates, session keys, and debit pulls for recurring, agent-initiated transactions.

> **[Identity](https://docs.openfi.co/api-reference/identity/overview.md)**
>
> Verifiable Credential issuance and verification.

> **[Data](https://docs.openfi.co/api-reference/oracles/overview.md)**
>
> ZK-TLS financial data oracle (V2 roadmap).

## Errors

OpenFi uses standard HTTP status codes. Error responses share a common shape:

```json theme={null}
{
  "error": {
    "type": "invalid_request_error",
    "code": "mandate_not_found",
    "message": "No mandate found with id 'man_123'."
  }
}
```

| Status | Meaning |
| - | - |
| `400` | Malformed request or failed validation |
| `401` | Missing or invalid API key / session key |
| `403` | Authenticated, but not authorized for this action (e.g. session key over its velocity limit) |
| `404` | Resource not found |
| `409` | Conflict (e.g. idempotency key reused with a different payload) |
| `422` | Request understood but rejected by a rail-specific constraint (see [Supported Rails](https://docs.openfi.co/essentials/supported-rails.md)) |
| `429` | Rate limited |
| `5xx` | OpenFi-side error |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.