---
title: API overview
description: Public VaniAgent API resources, conventions, and machine-readable schema.
---
import Endpoint from '../../../components/Endpoint.astro';
The Developer API controls supported VaniAgent resources programmatically.
**Base URL:** `https://api.vaniagent.com`
**Authentication:** `X-API-Key`
**Schema:** [/openapi-public.yaml](/openapi-public.yaml)
The published schema is curated from the deployed FastAPI contract. Dashboard, admin, OAuth, provider credential, and private integration routes are excluded.
## Resources
Create and configure conversation agents.
Initiate and inspect direct calls; bulk initiation is also supported.
Upsert Contacts individually or in batches of up to 100.
Create uploaded-audience campaigns and control their lifecycle.
Maintain text knowledge sources used by agents.
Create short-lived voice-widget sessions.
## Conventions
- IDs are opaque strings; never derive meaning from their format.
- Timestamps are returned in the API's documented ISO format.
- List endpoints may evolve with pagination or filters; preserve unknown fields.
- A successful request does not guarantee a phone provider later connects the call.
- Use idempotent application logic around contacts and webhook processing.