Moore Threads · AsyncAPI Specification

Moore Threads Webhooks

Version

View Spec View on GitHub CompanyGPUArtificial IntelligenceMachine-LearningSemiconductorsSpeech RecognitionText-to-SpeechVoiceLLM InferenceCloud ComputingDeveloper ToolsChinaAsyncAPIWebhooksEvents

AsyncAPI Specification

moore-threads-webhooks.yml Raw ↑
generated: '2026-08-26'
method: searched
source: https://docs.mthreads.com/asr/recording-recognition/introduction
name: Moore Threads Event and Webhook Surface
description: >-
  Moore Threads has a genuine asynchronous surface and describes none of it in AsyncAPI. It
  consists of one true webhook — the ASR recording-recognition callback, where the server POSTs the
  finished transcript to a caller-supplied URL — plus three WebSocket event streams with documented
  message types. No asyncapi.yaml, asyncapi.json or event catalogue is served on any host, so this
  file captures the surface from the API references rather than fabricating a specification.
asyncapi_spec_published: false
asyncapi_probed:
- {url: 'https://docs.mthreads.com/asyncapi.yaml', status: 200, verdict: Docusaurus HTML shell, not a spec}
- {url: 'https://aibook-api.mthreads.com:62220/asyncapi.json', status: 404}
webhooks:
- id: asr-recording-callback
  api: Moore Threads AIBook Speech Recognition API
  direction: server-to-caller
  transport: HTTP POST
  trigger: A recording-file recognition task finishes.
  subscription: >-
    Not a subscription. The callback URL is supplied per-task in the `callback` field of the submit
    request body — there is no webhook registration endpoint, no endpoint management UI and no list
    of configured endpoints.
  payload: >-
    The same document the Query operation returns: task_id, status, status_text, duration,
    finished_time, cost_time, text, and sentences[] with per-sentence channel, start_time,
    end_time, text, speaker, confidence and optional words[].
  security:
    signature: false
    secret: false
    note: >-
      No HMAC signature, no shared secret, no timestamp and no replay protection is documented for
      the callback. A receiver cannot verify that a callback POST actually came from Moore Threads.
      This is the most consequential gap on the whole event surface.
  delivery:
    retries: not documented
    ordering: not documented
    at_least_once: not documented
  related_parameter:
    name: enable_query
    note: >-
      When enable_query is false, the Query API stops working once the callback has fired — the
      callback becomes the ONLY delivery path for that result, with no signature and no documented
      retry. Setting enable_query true keeps polling available as a fallback.
  errors:
  - {code: 4011, text: callback url is invalid}
  source: https://docs.mthreads.com/asr/recording-recognition/introduction
channels:
- id: asr-realtime
  protocol: wss
  address: 'wss://aibook-api.mthreads.com:62220/api/v1/asr'
  auth: token query parameter
  send:
  - type: StartTranscription
    encoding: json
    note: 'header{appid,type} + payload{domain,language,format,vocabulary_id,lm_id,enable_punctuation,enable_itn,remove_disfluency,enable_speaker_info,nbest,show_confidence,show_words,show_intermediate_result,enable_semantic_sentence_detection,special_word_filter}'
  - type: SendData
    encoding: binary
    note: 16 kHz 16-bit mono PCM, recommended 160 ms per frame
  - {type: StopTranscription, encoding: json}
  receive:
  - {type: TranscriptionStarted}
  - {type: SentenceBegin}
  - {type: SentenceChanged, note: Emitted only when show_intermediate_result is true}
  - {type: SentenceEnd}
  - {type: TranscriptionCompleted}
  - {type: Warning}
  - {type: Error}
  source: https://docs.mthreads.com/asr/realtime-recognition/introduction
- id: tts-stream
  protocol: wss
  address: 'wss://aibook-api.mthreads.com:32414/api/v2/tts/stream_generate'
  auth: access_token field in the request body (documented as not yet enforced)
  send:
  - type: synthesis request
    encoding: json
    note: 'access_token, cluster (mt_tts | mt_llm_tts), input{text,text_type,enable_subtitle,enable_phoneme_timestamp}, voice_config{voice_name,emotion,language}, audio_config{encoding,sample_rate,compression_rate,bits,channel,speed_ratio,volume_ratio,pitch_ratio}, is_final'
  receive:
  - type: audio chunk
    encoding: json
    note: 'task_id, status, status_text, is_final, data (base64 audio), addition{duration, subtitles[], phoneme_timestamps[]}'
  note: >-
    One synthesis per connection. Timestamps are continuous within a connection; resetting them
    requires a new connection. The streaming-TEXT mode is the notable capability — a caller can
    push an LLM's tokens in as they arrive and get continuous prosody-coherent audio out.
  source: https://docs.mthreads.com/tts/stream-tts/introduction
- id: voice-conversion-stream
  protocol: wss
  address: 'wss://aibook-api.mthreads.com:32314/api/v1/streaming_vc'
  auth: token query parameter
  send:
  - type: StartConversion
    encoding: json
    note: 'payload{voice, input_info{sample_rate:16000,channels:1,bits:16,audio_encoding:pcm}, output_info{sample_rate:48000,channels:1,bits:16,audio_encoding:pcm}}'
  - {type: audio, encoding: binary}
  - {type: StopConversion, encoding: json}
  receive:
  - {type: ConversionStarted}
  - {type: converted audio, encoding: binary}
  - {type: ConversionCompleted}
  - {type: Error}
  source: https://docs.mthreads.com/vc/stream-vc/introduction
- id: digital-human-session
  protocol: websocket/webrtc
  address: '{customer-hosted}:32101'
  note: >-
    The mtai Web SDK opens a duplex session against a customer-hosted digital-human server and
    emits typed messages (status_change, message/audio_text) while accepting wakeup, sleep, input,
    bot_text and asr_session commands. Included for completeness — the endpoint is the customer's,
    not Moore Threads'.
  source: https://docs.mthreads.com/digital-human/digital-human-doc-online/sdk
gaps:
- No AsyncAPI document for any of the four channels.
- No webhook signature or secret on the only true webhook.
- No webhook registration/management API — the callback URL is per-request only.
- No documented retry or delivery guarantee for the callback.
checked: '2026-08-26'

Work with this as data

Every AsyncAPI spec 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 asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • 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 AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/moore-threads-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?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.