Reson8 Custom Models API

Domain adaptation via custom phrase models.

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/reson8-custom-models-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 email required.

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

OpenAPI Specification

reson8-custom-models-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Reson8 Speech-to-Text Auth Custom Models API
  version: v1
  description: 'Reson8 provides infrastructure-grade automatic speech recognition (ASR): realtime WebSocket streaming, prerecorded file transcription, speaker diarization, turn detection, and text-based custom-model domain adaptation. This OpenAPI description was transcribed by API Evangelist from the published documentation at https://docs.reson8.dev/api/ — Reson8 does not publish its own OpenAPI file. WebSocket endpoints (realtime, turns) are described here as GET upgrade operations with the x-reson8-transport extension; consult the docs for the full message protocol.'
  contact:
    name: Reson8 (Resonate Labs B.V.)
    url: https://www.reson8.dev/
  termsOfService: https://www.reson8.dev/terms
servers:
- url: https://api.reson8.dev
  description: Production
security:
- ApiKeyAuth: []
- BearerAuth: []
tags:
- name: Custom Models
  description: Domain adaptation via custom phrase models.
paths:
  /v1/custom-model:
    post:
      operationId: createCustomModel
      tags:
      - Custom Models
      summary: Create a custom model
      description: Create a new custom model with an initial, non-empty set of phrases.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomModelCreate'
            example:
              name: Cardiology
              description: Cardiology-specific terminology
              phrases:
              - myocardial infarction
              - atrial fibrillation
              - echocardiogram
      responses:
        '201':
          description: Custom model created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomModel'
              example:
                id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                name: Cardiology
                description: Cardiology-specific terminology
                phraseCount: 3
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
    get:
      operationId: listCustomModels
      tags:
      - Custom Models
      summary: List custom models
      description: List all custom models for the authenticated organization.
      responses:
        '200':
          description: Array of custom models.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomModel'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
  /v1/custom-model/{id}:
    get:
      operationId: getCustomModel
      tags:
      - Custom Models
      summary: Get a custom model
      description: Fetch a single custom model by ID.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: ID of the custom model
      responses:
        '200':
          description: The custom model.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomModel'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
  /v1/custom-model/{id}/phrases:
    get:
      operationId: listPhrases
      tags:
      - Custom Models
      summary: List phrases
      description: List the phrases in a custom model. Results are paginated with page/size.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: number
          default: 0
        description: Zero-based page index
      - name: size
        in: query
        schema:
          type: number
          default: 100
          minimum: 1
          maximum: 10000
        description: Page size
      responses:
        '200':
          description: A page of phrases.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhrasePage'
              example:
                phrases:
                - value: myocardial infarction
                - value: atrial fibrillation
                page: 0
                size: 100
                total: 2
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
    post:
      operationId: addPhrases
      tags:
      - Custom Models
      summary: Add phrases
      description: 'Add phrases to a custom model. Idempotent: phrases already present are left unchanged and reported as skipped.'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhraseList'
            example:
              phrases:
              - pericarditis
              - atrial fibrillation
      responses:
        '200':
          description: Result of the add operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddPhrasesResult'
              example:
                added: 1
                skipped: 1
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
  /v1/custom-model/{id}/phrases/delete:
    post:
      operationId: deletePhrases
      tags:
      - Custom Models
      summary: Delete phrases
      description: 'Remove phrases from a custom model by value. Idempotent: phrases not present are reported as skipped.'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhraseList'
            example:
              phrases:
              - pericarditis
              - tachycardia
      responses:
        '200':
          description: Result of the delete operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletePhrasesResult'
              example:
                deleted: 1
                skipped: 1
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  responses:
    InternalError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: INTERNAL_ERROR
    Unauthorized:
      description: Missing or invalid credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: UNAUTHORIZED
    InvalidRequest:
      description: Missing or invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: INVALID_REQUEST
    NotFound:
      description: Custom model not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: NOT_FOUND
  schemas:
    CustomModel:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        phraseCount:
          type: number
    CustomModelCreate:
      type: object
      required:
      - name
      - description
      - phrases
      properties:
        name:
          type: string
        description:
          type: string
        phrases:
          type: array
          items:
            type: string
          minItems: 1
    Phrase:
      type: object
      properties:
        value:
          type: string
    DeletePhrasesResult:
      type: object
      properties:
        deleted:
          type: number
        skipped:
          type: number
    Error:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code.
          enum:
          - INVALID_REQUEST
          - UNAUTHORIZED
          - NOT_FOUND
          - PAYLOAD_TOO_LARGE
          - INTERNAL_ERROR
    PhrasePage:
      type: object
      properties:
        phrases:
          type: array
          items:
            $ref: '#/components/schemas/Phrase'
        page:
          type: number
        size:
          type: number
        total:
          type: number
    PhraseList:
      type: object
      required:
      - phrases
      properties:
        phrases:
          type: array
          items:
            type: string
          minItems: 1
    AddPhrasesResult:
      type: object
      properties:
        added:
          type: number
        skipped:
          type: number
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Server-to-server. Value form: ApiKey <your_api_key>'
    BearerAuth:
      type: http
      scheme: bearer
      description: Short-lived access token from POST /v1/auth/token, for client-side use.
x-generated: '2026-07-20'
x-method: generated
x-source: https://docs.reson8.dev/api/ (transcribed verbatim from published REST reference)