# Changelog

> What changed in the API, and the rules for what may change.

## What may change, and what may not

- **Additions ship at any time** without a new version: new endpoints, new optional request fields,
  new fields in an answer, new values in a field like `status`, and new event types. Read the fields
  you know and ignore the rest, and treat a value you do not recognise as "something else".
- **Anything that would break a working integration goes into `/v2`.** `/v1` keeps working.
- **A planned removal is announced** here, and the responses it affects carry `Deprecation` and
  `Sunset` headers before anything is removed.

## October 2026 — `/v1`

The first release of the API.

- **Calls**: place a call with an outbound agent, with its variables and your metadata, safely
  retried with an `Idempotency-Key`; end a call, or cancel one still ringing; name the hours a
  call may start in.
- **Scheduled calls**: ask for a call later, placed at its time or at the next opening of its
  calling hours, and cancel it before then.
- **Campaigns**: call a list of people at a pace you set, in calling hours read in each person's
  own time zone; start, pause, resume and cancel it; read how each person's calls went; and hear
  each step as an event.
- **Contacts**: keep each project's phonebook in step — add, change, find by number, delete, and
  import up to 1,000 people a request. An inbound agent can fill its fields from the caller's entry.
- **Knowledge**: add, replace and delete the files your agents answer from, follow their indexing,
  and have a website read again.
- **Browser calls**: start a voice call with an agent from your server and join it from your own
  page, with `@aigently/web`.
- **Chats**: start and continue a chat with any agent, one message at a time, as a whole reply or
  streamed; send pictures.
- **Conversations**: list, read and sync them, with transcripts, analyses and five-minute recording
  links; find them by what was said or by your own `external_id`; read what each cost; run the
  analysis again; delete them, and list the ones deleted.
- **Inbound calls**: the context lookup asks your server who is calling while the phone is
  answered.
- **Webhooks**: an event for each change in a conversation's life, signed the Standard Webhooks way,
  with live and test receivers. Manage receivers through the API, and rotate a secret with an
  overlap so no event is refused while you update.
- **Events**: every event your receivers were sent, kept for 30 days, to recover what one missed.
- **Billing**: the credit balance and every movement of credit.
- **Phone numbers**: list them, and point one at an agent with a live key.
- **Do not call**: one list per organization that no agent rings, kept from your own systems.
- **Keys**: limit a key to your servers' addresses. A key pushed to a public repository on GitHub
  is revoked, once our place in GitHub's secret scanning program is confirmed.
- **Test mode**: test keys, test numbers that ring nobody, test calls to your own agents, and
  `aigently listen` for your laptop.
- **AI assistants**: the API as an MCP server, read-only unless a key allows changes.
- **Audit log**: everything people and keys did in your organization, for your security system.
- **Versions**: list the versions an agent was published as, and pin a conversation to one.
- **Agents as code**: read, create, replace, publish and delete agents from their definitions.
- **Tools and credentials**: make, change and delete tools and MCP servers, and add tool credentials
  to the vault, where no answer ever carries one back.
- **Evaluations**: rehearse an agent's saved conversations from your build pipeline and read how
  each did; `aigently evaluate` fails the build step when one no longer passes.
- **Live calls**: follow a call's transcript while it happens, and have the agent say a sentence,
  take a note from your systems, or transfer the caller to a person.
- **Mobile apps**: iOS and Android SDKs that join a call your server started and run a chat, as
  `@aigently/web` does in a page.
- **Terraform**: keep agents, tools, credentials, evaluations and webhook receivers in Terraform.
- **WhatsApp**: start a WhatsApp conversation with an approved template, and the number's agent
  answers when the person writes back.
- **The command line**: every operation as a command, and an agent's fields written as TypeScript
  or Python types.
- **Examples** in seven languages for every operation, run against the platform before publishing.
