Moore Threads · AsyncAPI Specification
Moore Threads Webhooks
Version
View Spec
View on GitHub
CompanyGPUArtificial IntelligenceMachine-LearningSemiconductorsSpeech RecognitionText-to-SpeechVoiceLLM InferenceCloud ComputingDeveloper ToolsChinaAsyncAPIWebhooksEvents
AsyncAPI Specification
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.
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.