# Yappr ## Docs - [Create Case](https://docs.goyappr.com/api-reference/agent-eval/cases/create.md): Required scope `agent_eval:create`. The `agent_id` must reference a non-deleted agent in this company; `persona_id` must reference a non-deleted persona. Suites are optional — you can create stand-alone ad-hoc cases. - [Delete Case](https://docs.goyappr.com/api-reference/agent-eval/cases/delete.md): Soft-delete. Required scope `agent_eval:delete`. Existing runs are kept as history. - [Get Case](https://docs.goyappr.com/api-reference/agent-eval/cases/get.md) - [List Cases](https://docs.goyappr.com/api-reference/agent-eval/cases/list.md): Returns non-deleted cases. Optional filter by `agent_id`, `persona_id`, `suite_id`. - [Run a Case](https://docs.goyappr.com/api-reference/agent-eval/cases/run.md): Trigger one execution of the case. Blocks up to 60 seconds waiting for the run to fully finish (worker assertions + billing complete) so simple callers don't have to poll for short runs. - [Update Case](https://docs.goyappr.com/api-reference/agent-eval/cases/update.md): Required scope `agent_eval:update`. Send only the fields you want to change. - [Create Persona](https://docs.goyappr.com/api-reference/agent-eval/personas/create.md): Required scope: `agent_eval:create`. - [Delete Persona](https://docs.goyappr.com/api-reference/agent-eval/personas/delete.md): Soft-delete (sets `deleted_at`). Required scope `agent_eval:delete`. Existing cases referencing the persona keep working until the next case PATCH. - [Get Persona](https://docs.goyappr.com/api-reference/agent-eval/personas/get.md) - [List Personas](https://docs.goyappr.com/api-reference/agent-eval/personas/list.md): Returns non-deleted personas for the authenticated company, ordered by name. - [Update Persona](https://docs.goyappr.com/api-reference/agent-eval/personas/update.md): Send only fields you want to change. Required scope `agent_eval:update`. - [Cancel a Run](https://docs.goyappr.com/api-reference/agent-eval/runs/cancel.md): Best-effort cancel. If the worker has not yet claimed the run, it transitions to `cancelled` immediately and is never executed. If the worker already claimed it, the cancellation is signalled and the run terminates at the next turn boundary with `termination_reason='cancelled'`. Cancelled runs are s… - [Get Run Evaluation](https://docs.goyappr.com/api-reference/agent-eval/runs/evaluation.md): Returns just the assertion roll-up. Equivalent to `runs/:id` but trimmed to the `evaluation` field — useful for CI checks where you don't need the transcript. Returns 422 when the run is still in flight (status `queued` or `running`). - [Get Run](https://docs.goyappr.com/api-reference/agent-eval/runs/get.md): Returns the full run, with `case` (and nested `agent`+`persona`) expanded inline. Use the dedicated sub-routes for turns and evaluation. - [List Runs](https://docs.goyappr.com/api-reference/agent-eval/runs/list.md): Returns runs for the authenticated company, newest-first. Filterable. - [Get Run Turns](https://docs.goyappr.com/api-reference/agent-eval/runs/turns.md): Returns every turn from the run, ordered by `turn_number` ascending. Includes persona text, agent text, tool results, and flow events. - [Create Suite](https://docs.goyappr.com/api-reference/agent-eval/suites/create.md): Required scope `agent_eval:create`. Suites are containers — add cases by setting their `suite_id`. - [Delete Suite](https://docs.goyappr.com/api-reference/agent-eval/suites/delete.md): Soft-delete. Required scope `agent_eval:delete`. Cases under this suite have their `suite_id` set to null but are not deleted. - [Get Suite](https://docs.goyappr.com/api-reference/agent-eval/suites/get.md) - [List Suites](https://docs.goyappr.com/api-reference/agent-eval/suites/list.md) - [Run a Suite](https://docs.goyappr.com/api-reference/agent-eval/suites/run.md): Enqueue every case under the suite as a fresh `eval_runs` row. Returns immediately with a synthetic `suite_run_id` that groups the spawned runs. Workers pick up the runs and process up to `suite.parallelism` at a time. - [Get Suite Execution](https://docs.goyappr.com/api-reference/agent-eval/suites/runs/get.md): Aggregate view of one suite execution, computed on demand from the runs grouped by `suite_run_id`. Poll this every few seconds; once `in_flight === 0` the metrics are final. - [List Suite Executions](https://docs.goyappr.com/api-reference/agent-eval/suites/runs/list.md): List past executions of one suite, newest-first. Each entry is an aggregate roll-up — fetch one execution's per-run details with `GET /agent-eval/suites/{id}/runs/{suite_run_id}`. - [Update Suite](https://docs.goyappr.com/api-reference/agent-eval/suites/update.md): Required scope `agent_eval:update`. - [Create Agent](https://docs.goyappr.com/api-reference/agents/create.md): All field names must be snake_case. The API will reject camelCase field names with a 400 error listing the correct snake_case alternatives. The underlying model is managed internally and cannot be configured. - [Flow Config Schema](https://docs.goyappr.com/api-reference/agents/flow-config-schema.md): JSON shape for `agents.flow_config` — node types, transitions, validation rules. - [Get Agent](https://docs.goyappr.com/api-reference/agents/get.md) - [List Agents](https://docs.goyappr.com/api-reference/agents/list.md) - [Update Agent](https://docs.goyappr.com/api-reference/agents/update.md): Send only the fields you want to change. All field names must be snake_case. - [Billing Consumption](https://docs.goyappr.com/api-reference/billing/consumption.md): Aggregated negative-balance debits from your credit account, bucketed by date and product. Useful for usage dashboards, monthly invoice reconciliation, and anomaly detection. Required scope `billing:read`. - [Get Billing Status](https://docs.goyappr.com/api-reference/billing/get-status.md): Returns current balance, payment method status, and auto top-up settings. - [Setup Payment Method](https://docs.goyappr.com/api-reference/billing/setup-payment.md): Generates a Stripe Checkout URL to add a payment method. - [Top Up Credits](https://docs.goyappr.com/api-reference/billing/topup.md): Charges the saved card immediately and adds credits to the balance. - [Create Outbound Call](https://docs.goyappr.com/api-reference/calls/create.md): Place an outbound call using a Yappr agent. Requires $3+ balance and an active Yappr phone number assigned to your account. If server capacity is fully utilized, the call is queued automatically and returns HTTP 202 instead of 201. - [Get Call](https://docs.goyappr.com/api-reference/calls/get.md) - [List Calls](https://docs.goyappr.com/api-reference/calls/list.md) - [Get Call Recording](https://docs.goyappr.com/api-reference/calls/recording.md): Redirects (302) to the audio file for the call's recording. No Authorization header required — the `sig` query parameter (included in the `recording_url` from GET /calls responses) serves as authentication. Open directly in a browser, use as an `