> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ediphai.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ediphai.com/_mcp/server.

# What can an app send?

> Exact record types and versions currently accepted by the Ediphai API.

## Supported now

### Assessment result

* `record_type`: `formation.assessment_result`
* `record_type_version`: `1`
* Definition kind: `assessment`
* Body schema: [AssessmentResultBody](https://apps.ediphai.com/v1/schemas/AssessmentResultBody.json)
* Guide: [Assessment results](/api/v1/assessment-integration)

The app declares an assessment definition, then sends one record per completed assessment. Its own item keys, scales and definition versions stay under its control. Start with the [quickstart](/api/v1/quickstart).

## How type names work

`formation.assessment_result` is one exact identifier. The `formation.` prefix groups its name with formation data and avoids collisions with other domains; the dot has no special effect on HTTP, JSON or access permissions. Treat the whole value as opaque. Send it in `record_type` and in `{record_type}` URL paths. `assessment` and `assessment_result` are not aliases and will be refused.

All types use `POST /v1/records`; `record_type` selects the body's validation rules and is part of a record's address with the app's `record_id`. Its `record_type_version` is separate from the `/v1` API path and from a church's definition version. A future type can have its own version under `/v1`; existing assessment senders keep their current contract.

The API does not currently accept a general form, person update or event record. Check the service's [OpenAPI file](https://apps.ediphai.com/v1/openapi.json) and [schemas](https://apps.ediphai.com/v1/schemas/Envelope.json) for the current machine contract before generating a sender.