Coval Conversations API

Submit and evaluate production conversations.

Operations 9

POST /audio:upload Upload audio #
POST /conversations:submit Submit conversation for evaluation #
GET /conversations List conversations #
GET /conversations/{conversation_id} Get conversation details #
PATCH /conversations/{conversation_id} Attach audio to a conversation #
DELETE /conversations/{conversation_id} Delete or cancel conversation #
GET /conversations/{conversation_id}/audio Get conversation audio #
GET /conversations/{conversation_id}/metrics List conversation metrics #
GET /conversations/{conversation_id}/metrics/{metric_output_id} Get conversation metric output(s) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/coval-ai-conversations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

coval-ai-conversations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Coval Agents Conversations API
  description: Simulation and evaluation API for AI voice and chat agents. Manage agents, test sets and test cases, personas, metrics and their thresholds and baselines, simulation runs, run templates, scheduled runs, individual simulations, reports, and production conversations. All paths are relative to the production base URL https://api.coval.dev/v1 and authenticated with the X-API-Key header. Endpoints in this document are drawn from Coval's live per-resource OpenAPI specifications served from https://api.coval.dev/v1/openapi.
  termsOfService: https://coval.dev/terms
  contact:
    name: Coval API Support
    email: support@coval.dev
    url: https://docs.coval.dev
  license:
    name: Proprietary
    url: https://coval.dev/terms
  version: 1.0.0
servers:
- url: https://api.coval.dev/v1
  description: Production API
security:
- ApiKeyAuth: []
tags:
- name: Conversations
  description: Submit and evaluate production conversations.
paths:
  /audio:upload:
    post:
      operationId: createAudioUpload
      summary: Upload audio
      description: Upload an audio file for use with a submitted conversation.
      tags:
      - Conversations
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '201':
          description: Audio uploaded; returns an upload id.
  /conversations:submit:
    post:
      operationId: submitConversation
      summary: Submit conversation for evaluation
      description: Submit a production conversation (transcript and/or audio) to be evaluated against metrics for observability and monitoring.
      tags:
      - Conversations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConversationSubmit'
      responses:
        '201':
          description: Conversation submitted for evaluation.
  /conversations:
    get:
      operationId: listConversations
      summary: List conversations
      tags:
      - Conversations
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Cursor'
      responses:
        '200':
          description: A list of conversations.
  /conversations/{conversation_id}:
    parameters:
    - $ref: '#/components/parameters/ConversationId'
    get:
      operationId: getConversation
      summary: Get conversation details
      tags:
      - Conversations
      responses:
        '200':
          description: The requested conversation.
    patch:
      operationId: patchConversation
      summary: Attach audio to a conversation
      tags:
      - Conversations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                audio_url:
                  type: string
                upload_id:
                  type: string
      responses:
        '200':
          description: Conversation updated.
    delete:
      operationId: deleteConversation
      summary: Delete or cancel conversation
      tags:
      - Conversations
      responses:
        '204':
          description: Conversation deleted or cancelled.
  /conversations/{conversation_id}/audio:
    parameters:
    - $ref: '#/components/parameters/ConversationId'
    get:
      operationId: getConversationAudio
      summary: Get conversation audio
      tags:
      - Conversations
      responses:
        '200':
          description: A URL to the conversation audio file.
  /conversations/{conversation_id}/metrics:
    parameters:
    - $ref: '#/components/parameters/ConversationId'
    get:
      operationId: listConversationMetrics
      summary: List conversation metrics
      tags:
      - Conversations
      responses:
        '200':
          description: A list of metric outputs for the conversation.
  /conversations/{conversation_id}/metrics/{metric_output_id}:
    parameters:
    - $ref: '#/components/parameters/ConversationId'
    - name: metric_output_id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getConversationMetric
      summary: Get conversation metric output(s)
      tags:
      - Conversations
      responses:
        '200':
          description: A single conversation metric output.
components:
  parameters:
    ConversationId:
      name: conversation_id
      in: path
      required: true
      schema:
        type: string
    Limit:
      name: limit
      in: query
      description: Maximum number of items to return.
      schema:
        type: integer
    Cursor:
      name: cursor
      in: query
      description: Pagination cursor.
      schema:
        type: string
  schemas:
    ConversationSubmit:
      type: object
      properties:
        transcript:
          type: array
          items:
            type: object
        audio_url:
          type: string
        upload_id:
          type: string
        metrics:
          type: array
          items:
            type: string
        metadata:
          type: object
        external_conversation_id:
          type: string
        occurred_at:
          type: string
          format: date-time
        agent_id:
          type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Organization API key for authentication.