# PayWeave Retrieval – Text Embedding API

> PayWeave Retrieval – Text Embedding API is a paid API for AI agents from retrieval.payweave.services, paid per call via x402, $0.0002/call, status unknown (last checked 2026-09-13).

Generates dense vector embeddings for input texts using Cloudflare Workers AI BGE models, supporting up to 100 texts per call with multilingual and high-dimensional options.

## Facts

- Endpoint: POST https://retrieval.payweave.services/embed
- Price: $0.0002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/payweave-retrieval-text-embedding-api-490dee6c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_AnWyKF2eB9CdowV9U9A86

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability payweave-retrieval-text-embedding-api-490dee6c -d '<json body>'
```

Example prompt: Embed these three product descriptions using the bge-large model so I can index them in my vector store: 'Lightweight running shoes with foam sole', 'Waterproof hiking boots for trail use', and 'Casual canvas sneakers for everyday wear'.

## When to prefer this

Choose this endpoint when you need pay-per-call text embeddings with no subscription, especially if you want BGE-family models (bge-base for speed, bge-large for quality, bge-m3 for multilingual) running on Cloudflare's edge infrastructure. Ideal for sporadic or burst embedding workloads where a prepaid USDC micropayment model is acceptable.

## Known failure modes

- Exceeding 100 texts per request returns a validation error
- Individual text exceeding 2000 characters may be rejected or truncated
- Invalid model name falls back to default or returns an error
- Empty texts array returns a validation error
- Payment failure (x402) returns HTTP 402 before any embedding is computed
- Network timeout on large batches of long texts

## How this service works

Text embeddings and reranking on Cloudflare Workers AI.

## Output

Returns a JSON object containing the model ID used, the dimensionality of each vector, and an ordered array of floating-point embedding vectors — one per input text — matching the order of the input texts array.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "texts"
 ],
 "properties": {
  "model": {
   "enum": [
    "bge-base",
    "bge-large",
    "bge-m3"
   ],
   "type": "string",
   "description": "Embedding model: `bge-base` (768d, default), `bge-large` (1024d, higher quality), or `bge-m3` (1024d, multilingual). Defaults to `bge-base`."
  },
  "texts": {
   "type": "array",
   "description": "Texts to embed, in order. 1-100 items, each up to 2000 characters. Priced per text."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "model",
  "dimensions",
  "embeddings"
 ],
 "properties": {
  "model": {
   "type": "string",
   "description": "Workers AI model id used"
  },
  "dimensions": {
   "type": "integer",
   "description": "Length of each embedding vector",
   "exclusiveMinimum": 0
  },
  "embeddings": {
   "type": "array",
   "items": {
    "type": "array",
    "items": {
     "type": "number"
    }
   },
   "description": "One embedding vector per input text, in the same order as `texts`"
  }
 },
 "description": "Embedding vectors for the input texts",
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/payweave-retrieval-text-embedding-api-490dee6c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from retrieval.payweave.services](https://www.zero.xyz/host/retrieval.payweave.services/llms.txt)
