Composable Conversational AI Infrastructure
Turn every call into data you can build on
Free to try, with 1,000 transcription minutes on every new account.
Build your way
From first request to working integration.
Playground
Drive the API from your browser. See the request, job status and response in one place.
Transcript ready
Transcript
User00:00.1
Hi, I’m calling because my flight from Singapore to Tokyo was cancelled less than 12 hours before departure. I received an email saying it was due to operational reasons, but I had already booked a hotel and airport transfer. The alternative flight offered arrives a full day later, which significantly impacts my travel plans. I’d like to know what compensation or reimbursement options are available.
Agent00:27.0
I sincerely apologize for the inconvenience. I’ve reviewed your booking and can confirm that the cancellation was due to an aircraft scheduling issue. While I’ve already rebooked you on the next available flight, I understand that the delay affects your trip. In this situation, I can submit a request for reimbursement of reasonable additional expenses, such as hotel and transportation costs caused directly by the cancellation. If you have receipts for those expenses please send them to us, and I’ll escalate your case to our customer care team for review.
Summary ready
Summary
Topic
Flight Cancellation Compensation
Summary
A customer had their flight cancelled less than 12 hours before departure due to operational reasons. The customer had already booked a hotel and airport transfer, which would be affected by the alternative flight offered. The agent apologized for the inconvenience and offered to submit a request for reimbursement of reasonable additional expenses.
Processing…
Tags
Why build with Makimoto.
1,000free minutes
Every new account comes with them. Spend them in the Playground or the Python SDK.
Built for real conversations
From Toku, for conversations across Asia-Pacific: accents, multilingual speech and code-switching are part of the problem, not edge cases.
Composable by architecture
Keep the workflow stable as models, providers and requirements change.
Clear data location
The managed service processes customer audio and transcripts in Singapore.
Open by design
Inspect the orchestration, contribute on GitHub, and follow the roadmap as more components open.
Explore the Features
APIs
Use one endpoint. Chain all three.
Send recorded audio once. Use the result as a transcript, a summary, structured tags, or the input to your own workflow.
POST/v1/transcriptions
Transcription
Submit a recording and retrieve speaker-separated text with segment-level timestamps.
"transcript": [ { "text": "Hi, I'm calling because my flight from Singapore to Tokyo was cancelled …", "time_start": 0.066, "time_end": 26.046, "speaker_id": 0, "speaker_alias": "User" }, { "text": "I sincerely apologize for the inconvenience. …", "time_start": 27.042, "time_end": 60.99, "speaker_id": 1, "speaker_alias": "Agent" } ]POST/v1/summarize
Summary
Generate a concise topic and summary from a completed transcription or from text you already have.
"type": "summary", "result": { "topic": "Flight Cancellation Compensation", "summary": "A customer had their flight cancelled less than 12 hours before departure … The agent apologized for the inconvenience and offered to submit a request for reimbursement of reasonable additional expenses." }POST/v1/tag
Structured tags
Return structured categories and values from a completed transcription or plain text.
"type": "tags", "result": { "tags": { "call_reason": [ "order_cancellation", "refund", "extra_amount_charge" ], "call_outcome": [ "issue_partially_resolved", "follow_up_required" ], "customer_sentiment": [ "customer_negative_sentiment" ], … } }
Response fragments from one synthetic sample call, shortened for reading.
Read the API referencePlayground
One recording. Every output.
Play a sample call and watch Kawa return a speaker-separated transcript, a summary and tags. This demo replays a recorded run; open the Playground to send your own audio.
Playground demo
flight_cancellation.mp3
Run the sample to see the transcript appear.
The summary appears when the job succeeds.
The response appears when the job succeeds.
Representative request for this recording. The tour does not call the API.
curl -sS -X POST "https://api.makimoto.ai/v1/transcriptions" \
-H "Authorization: Bearer $MAKIMOTO_API_KEY" \
-F "file=@flight_cancellation.mp3" \
-F "language=en"
# -> { "job_id": "...", "status": "processing" }
# Poll until status is "succeeded" or "failed"
curl -sS "https://api.makimoto.ai/v1/transcriptions/$JOB_ID" \
-H "Authorization: Bearer $MAKIMOTO_API_KEY"
# Then summarise and tag the finished job
curl -sS -X POST "https://api.makimoto.ai/v1/summarize" \
-H "Authorization: Bearer $MAKIMOTO_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"transcription_job_id\": \"$JOB_ID\"}"
curl -sS -X POST "https://api.makimoto.ai/v1/tag" \
-H "Authorization: Bearer $MAKIMOTO_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"transcription_job_id\": \"$JOB_ID\"}"Audio: Synthetic call, AI-generated for Makimoto
Make a real request in the PlaygroundLatest releases
Full changelogRelease
Makimoto 0.2.0
Summary and tag endpoints, API keys that stay valid until revoked, and one developer portal for the quickstart, Playground, logs and keys.
Read the release notes: Makimoto 0.2.0Release
Kawa launch
Post-conversation transcription API hosted in Singapore, with Kawa’s orchestration layer published under the MIT licence.