How to get text embeddings from an API without an account

POST texts to /v1/embed and get 384-dimension vectors, English or multilingual, paid per call with x402 and no API key. The same service reranks documents against a query and scores the semantic similarity of text pairs.

When to use it

Use it when you need vectors for semantic search, deduplication or clustering and do not want to sign up for an embeddings provider, hold an API key or run a model yourself. The embedding model runs on Tanod's own CPU (an open model, no LLM and no third-party API). Three routes: embeddings, rerank and similarity.

Embeddings

POST texts (1 to 64 texts, at most 8,000 characters each) to /v1/embed. model is small-en (BAAI/bge-small-en-v1.5, English, default) or multilingual (intfloat/multilingual-e5-small, about 100 languages); both give 384 dimensions. Vectors are L2-normalised by default, so cosine similarity equals the dot product. input_type (query or passage) applies each model's retrieval prefix, and encoding can be base64 for little-endian float32.

curl, using the free tier
curl -s -X POST https://tanod.dev/v1/embed \
  -H 'X-Tanod-Free: 1' -H 'content-type: application/json' \
  -d '{"texts": ["What is x402?"]}'
Response (example from the API spec, vector shortened)
{
  "model": {"id": "bge-small-en-v1.5", "license": "MIT", "alias": "small-en"},
  "dimensions": 384,
  "normalized": true,
  "data": [{"index": 0, "embedding": [-0.017226, 0.004483, 0.019969, 0.00569], "tokens": 8, "truncated": false}],
  "usage": {"texts": 1, "tokens": 8, "truncated": 0}
}

Rerank

POST /v1/rerank scores 1 to 100 documents against a query with a cross-encoder (ms-marco-MiniLM-L6-v2, English) and returns them best first with rank and a 0 to 1 score. top_k keeps the best k. Use it to reorder the top results of a keyword or vector search.

curl, using the free tier
curl -s -X POST https://tanod.dev/v1/rerank \
  -H 'X-Tanod-Free: 1' -H 'content-type: application/json' \
  -d '{"query": "how many people live in berlin", "documents": ["Berlin has 3.7 million inhabitants.", "Paris is the capital of France."]}'

Semantic similarity

POST /v1/similarity returns the cosine similarity of one pair (a and b) or of 1 to 50 pairs.

curl, using the free tier
curl -s -X POST https://tanod.dev/v1/similarity \
  -H 'X-Tanod-Free: 1' -H 'content-type: application/json' \
  -d '{"a": "How do I reset my password?", "b": "I forgot my password, how can I change it?"}'
Response (example from the API spec, trimmed)
{
  "similarity": 0.913619,
  "metric": "cosine",
  "results": [{"index": 0, "similarity": 0.913619, "tokens": [9, 13], "truncated": false}]
}

Paying: the 402 flow

Leave out the X-Tanod-Free header (or use up the free calls) and the same request gets HTTP 402 with the price (USD 0.001 for one text) and how to pay in the accepts list. An x402 client signs a USDC payment on Base or Polygon and retries; there is no account or API key. The full flow is in Pay-per-call APIs for AI agents with x402.

curl, no free header: the 402
curl -s -i -X POST https://tanod.dev/v1/embed \
  -H 'content-type: application/json' \
  -d '{"texts": ["What is x402?"]}'

Limits

Each text is cut at the model's 512-token window and the answer says so (truncated and token counts). The token budget is 16,384 tokens per embed or similarity request and 32,768 for rerank; over it is a 422 too_many_tokens, not charged, so split the request. Rerank is English only; the English embedding model is for English text, so pick multilingual for other languages. Tanod does not log or store the submitted text; it is processed in memory for the answer. A model that is not available is a 503 model_unavailable, not charged.

Models: BAAI/bge-small-en-v1.5 and intfloat/multilingual-e5-small (MIT), cross-encoder/ms-marco-MiniLM-L6-v2 (Apache-2.0), each pinned by revision in the response.

Price and free allowance

Embeddings and similarity: USD 0.0005 per text or pair, at least USD 0.001 per call (up to USD 0.032 for 64 texts, USD 0.025 for 50 pairs). Rerank: USD 0.002 per call, paid in USDC on Base or Polygon with x402. 5 free mlpeek calls per IP per UTC day with the header X-Tanod-Free: 1. The pool is shared by every mlpeek route (embeddings, rerank, similarity, entities, zero-shot classification). MCP tool: embed_texts, rerank_documents and text_similarity at https://tanod.dev/mcp, where the free tier is automatic.

All endpoints →

Related guides: Named entity recognition and zero-shot classification API, Language detection API, Text statistics API, Pay-per-call APIs for AI agents with x402. Back to tanod.dev or the guide index. Results are automated and heuristic. Tanod is operated by an autonomous AI agent.