For teams building in Mozambique

Integrate artificial intelligenceand pay in meticais

The TipoChat API returns text responses with prepaid credit, billing auditable to the micro-metical, and safe retries for your application.

Technical pilot validated · first billable call cost0.0094 MZN

Example HTTP request to the TipoChat API and its JSON response.
tipo-textPOST /v1/responses
curl https://api.tipochat.co.mz/v1/responses \  -H "Authorization: Bearer tc_live_7f2a…" \  -H "Idempotency-Key: 6be4c7eb-5319-4148…" \  -d '{       "model": "tipo-text",       "input": "Write a short greeting.",       "max_output_tokens": 180     }'
200412 msx-request-id: req_01JD7K2M4P
{  "model": "tipo-text",  "output_text": "Hello! How can I help?",  "usage": { "input_tokens": 15, "output_tokens": 8 },  "billing": { "currency": "MZN", "charged_micro_mzn": 9400 }}
Response200 · billed on real usage

Pilot technology and rules

  • M-Pesa
  • e-Mola
  • Idempotency
  • Immutable ledger
  • micro-MZN
  • Sandbox

Everything the API needs to be boring.

Reliability, visibility and safety, without configuration.

One contract, no surprises

Synchronous text, without streaming at this first stage — because paid content should not be streamed before there is a tested way to measure real usage.

Example HTTP request to the TipoChat API and its JSON response.
tipo-textPOST /v1/responses
curl https://api.tipochat.co.mz/v1/responses \  -H "Authorization: Bearer tc_live_7f2a…" \  -H "Idempotency-Key: 6be4c7eb-5319-4148…" \  -d '{       "model": "tipo-text",       "input": "Write a short greeting.",       "max_output_tokens": 180     }'
200412 msx-request-id: req_01JD7K2M4P
{  "model": "tipo-text",  "output_text": "Hello! How can I help?",  "usage": { "input_tokens": 15, "output_tokens": 8 },  "billing": { "currency": "MZN", "charged_micro_mzn": 9400 }}
Response200 · billed on real usage

Repeat the request. Not the charge.

If the network fails and your application retries, the same body returns the response already stored, at no extra cost.

  • 200Same key, same body
  • 409Same key, different body
  • 409Same key, still running
Direct contract

One JSON request to a responses endpoint, with no mandatory client layer.

Easy integration

Use HTTP from the server you already run. The examples are ready to copy and adapt.

Server-side keys

Keep the Bearer key on your server; it must never reach a browser or distributed application.

Usage billing

Cost is calculated per request and settled from prepaid credit in meticais.

Traceable usage

Each response carries an identifier, token usage and cost to support diagnosis.

Concrete documentation

Endpoint reference, HTTP examples, and a clear explanation of errors and safe retries.

Build in minutes.

One request-and-response contract, one server-side key, and a ledger that cannot be altered. Nothing else to install.

  1. 01

    Receive the key

    Separate test and production environments. Keys are issued by TipoChat during the pilot — there is no portal and no automatic sale.

  2. 02

    Call the API

    Send the key only from your own server, with one idempotency key per operation. Never in a browser or a distributed app.

  3. 03

    Track usage

    Every response carries usage, cost and a request identifier. The usage console opens when commercial access opens.

Diagram: the customer's server calls api.tipochat.co.mz, which authenticates the key, reserves balance, calls the model and settles the real cost.
Your server
api.tipochat.co.mzAuthenticated
tipo-text
Wallet and ledger
  • REST
  • JSON
  • cURL
  • Node.js
  • Python
  • PHP
Prepaid credit and usage billing
MZNPrepaid credit and usage billing
One public responses endpoint
RESTOne public responses endpoint
Synchronous request and response
JSONSynchronous request and response
Idempotency per request
IDIdempotency per request

Three integrations you can copy today

Each uses the same endpoint and the same contract. Only what you write in `instructions` changes.

RequestPOST /v1/responses
{  "instructions": "Classify as: BILLING, SUPPORT, SALES. Reply with the label only.",  "input": "I was charged twice this month and I want a refund."}
Response200usage: 38 in · 3 out
BILLING
01

Classify incoming messages

Define the categories inside `instructions` and ask for the label alone. No training, no labelled data, no infrastructure.

For harder cases, ask for the reasoning before the label and read only the last line — more accurate, more tokens.

The model returns text. Compare it against your category list and handle anything that does not match.

RequestPOST /v1/responses
{  "instructions": "Summarise in three sections: Decision, Deadline, Owner.",  "input": "Minutes of the 12 March meeting…"}
Response200usage: 1,204 in · 96 out
Decision: proceed with the pilot…
02

Summarise long documents into a fixed shape

A free-form summary is hard to use downstream. Name the sections you want and the shape comes back the same every time.

Input is capped at 8,000 characters. Longer documents need splitting and summarising in parts.

RequestPOST /v1/responses
{  "instructions": "Extract name, amount and date. Return valid JSON only.",  "input": "Receipt: Ana Come, 1,250 MT, 04/08/2026"}
Response200usage: 46 in · 28 out
{"name":"Ana Come","amount":1250,"date":"2026-08-04"}
03

Extract fields into your own system

Ask for JSON and validate it on your side.

tipo-text has no guaranteed JSON mode: it returns text. Parse inside a try, and if it fails retry with a NEW idempotency key — retrying with the same key would hand back the same invalid text.

A different body under the same idempotency key is refused with 409.

A response with fifteen input tokens and eight output tokens debited 9,400 micro-MZN from a test wallet. Retrying with the same idempotency key returned the stored response, with no second call to the provider.
Internal technical pilot record4 August 2026 · api/README.md

0.0094

MZN

Cost of the first billable call

Pay only for API usage

There is no monthly fee, plan, or automatic top-up. Add credit when your team needs it and keep every request auditable.

Sandbox

To evaluate the contract

Available now

Start in the documentation
  • Idempotent test responses
  • Zero cost, balance untouched
  • Same contract as production
  • Full public documentation

Prepaid credit

How it works

To use the API in production

Pilot by invitation

Request pilot access
  • Production key issued by TipoChat
  • Prepaid wallet in micro-MZN
  • Reserve, settle and return
  • M-Pesa and e-Mola top-ups in final validation
  • Direct support during the pilot

Team operations

To manage and audit usage

Available in the portal

Talk to us
  • Up to 20 active API keys
  • Up to 20 organization members
  • 30-day request-content retention
  • Balance and payment history

Streaming, voice, and images are not part of the API at this stage.

We are opening deliberately.

The pilot validates consumption, top-ups and support before commercial opening. The public documentation shows exactly what exists today — and what does not yet.

View service status
Server-only key
We store only the SHA-256 of the secret
Validated webhooks
HMAC signature checked before crediting
Immutable ledger
No UPDATE, DELETE or TRUNCATE

Frequently asked questions

If something is missing, the public documentation describes the full contract, the limits and the errors.

  • It is the stable product name for the TipoChat API's text capability. It takes a text request and returns a text response, synchronously. It is the only model the endpoint accepts at this stage.

  • Not yet. The API is in controlled pilot: there is no portal, no automatic sale and no public top-up. Keys are issued by TipoChat during the pilot.

  • Not in this version. Paid content should not be streamed before there is a tested way to end the stream, measure real usage and settle the wallet even if the client disconnects.

  • No. A key must never reach a browser, a distributed mobile app, a repository or a public variable. Every integration must call the API from its own server.

  • Every request carries an idempotency key. The same body under the same key returns the stored response, with no new debit. A different body under the same key is refused with 409 rather than charged twice.

  • With prepaid balance in meticais. M-Pesa and e-Mola top-ups are published and in final validation; sales remain closed until a real controlled top-up has been reconciled.

Start with the sandbox

The sandbox returns idempotent, zero-cost responses under the same contract as production. It is the shortest path to knowing whether the API fits your product.