Mistral — MPP Grade B
On-chain Activity
Compliance Checks
2 issues
- POST endpoint challenge missing digest parameter (SHOULD per spec)
- Multiple recipient addresses detected across endpoints (2 unique)
Paid Operations (3)
POST /ocr dynamic
Run Mistral OCR (mistral-ocr-latest) on a document or image URL and get markdown per page, plus optional structured annotations. Mirrors POST api.mistral.ai/v1/ocr: same request and response shape, swap only the host. Price is $0.01 per page, or $0.02 per page when any annotation option is set. pages accepts an array like [0, 1, 2] or a range string like "0,2-4"; omit it to process the whole document, in which case the service counts the PDF pages itself before quoting the price (PPTX/DOCX need explicit pages; max 1000 pages per call). Image inputs always count as one page. The body is validated before charging, and upstream failures (including pages past the end of the document) are refunded automatically. For private files, upload to storage.payweave.services first and pass the returned URL.
- Amount
- map[amount:0.010000 currency:USD mode:fixed]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:10000 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| bbox_annotation_format | No | Structured format for per-image bbox annotations (upstream accepts json_schema only). Setting this prices the call at the annotation rate. | |
| confidence_scores_granularity | No | Granularity for OCR confidence scores: "word" (per-word) or "page" (aggregate only). Omit for no confidence scores. | |
| document | Yes | The document or image to process | |
| document_annotation_format | No | Structured format for a whole-document annotation (upstream accepts json_schema only). Setting this prices the call at the annotation rate. | |
| document_annotation_prompt | [string null] | No | Optional prompt guiding structured extraction over the whole document. Requires document_annotation_format. Setting this prices the call at the annotation rate. |
| extract_footer | boolean | No | Extract page footers separately |
| extract_header | boolean | No | Extract page headers separately |
| image_limit | No | Maximum number of images to extract | |
| image_min_size | No | Minimum height and width, in pixels, for an image to be extracted | |
| include_image_base64 | [boolean null] | No | Return base64 image data for images extracted from the document |
| model | [string null] | No | Mistral OCR model id. Defaults to mistral-ocr-latest. |
| pages | No | 0-indexed pages to process: an array like [0, 1, 2] or a range string like "0,2-4", same grammar as upstream (max 1000 distinct pages per call). Each distinct page adds to the price. Omit (or send null or []) to process the whole document: the service then counts the PDF pages itself and prices the full document. PPTX and DOCX inputs must pass explicit pages since their page count depends on rendering. Ignored for image inputs, which always count as one page. Requesting pages beyond the end of the document may fail upstream, in which case the charge is refunded automatically. | |
| table_format | No | Output format for extracted tables |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| document_annotation | [string null] | - |
| model | string | - |
| pages | array[object] | - |
| usage_info | object | - |
POST /ocr/image dynamic
Run Mistral OCR on a single image (PNG, JPEG, or AVIF) by URL and get the text back as markdown. $0.01 flat, or $0.02 when any annotation option is set. Works on photos of receipts, tickets, signs, screenshots, and scanned pages. Same engine as POST /ocr (which also handles PDFs and mirrors api.mistral.ai/v1/ocr); use POST /ocr/upload to send a local image file instead of a URL. The body is validated before charging and upstream failures are refunded automatically.
- Amount
- map[amount:0.010000 currency:USD mode:fixed]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:10000 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| bbox_annotation_format | No | Structured format for per-image bbox annotations (upstream accepts json_schema only). Setting this prices the call at the annotation rate. | |
| confidence_scores_granularity | No | Granularity for OCR confidence scores: "word" (per-word) or "page" (aggregate only). Omit for no confidence scores. | |
| document_annotation_format | No | Structured format for a whole-document annotation (upstream accepts json_schema only). Setting this prices the call at the annotation rate. | |
| document_annotation_prompt | [string null] | No | Optional prompt guiding structured extraction over the whole document. Requires document_annotation_format. Setting this prices the call at the annotation rate. |
| extract_footer | boolean | No | Extract page footers separately |
| extract_header | boolean | No | Extract page headers separately |
| image_limit | No | Maximum number of images to extract | |
| image_min_size | No | Minimum height and width, in pixels, for an image to be extracted | |
| image_url | string (uri) | Yes | Publicly reachable URL of a PNG, JPEG, or AVIF image, or a data: URI |
| include_image_base64 | [boolean null] | No | Return base64 image data for images extracted from the document |
| model | [string null] | No | Mistral OCR model id. Defaults to mistral-ocr-latest. |
| table_format | No | Output format for extracted tables |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| document_annotation | [string null] | - |
| model | string | - |
| pages | array[object] | - |
| usage_info | object | - |
POST /ocr/upload dynamic
Upload a file directly via multipart/form-data and run Mistral OCR on it — no hosting step needed. Same pricing as POST /ocr: $0.01 per page, $0.02 per page with annotation options. Fields: file (PDF or PNG/JPEG/AVIF image, max 50 MB), pages (optional, a range string like "0,2-4" or JSON array string like "[0,1]"; omit to process the whole PDF, counted from the uploaded bytes, max 25 MB for whole-document pricing), and options (optional JSON object string with the same option fields as POST /ocr). Images always count as one page. The body is validated before charging and upstream failures are refunded automatically.
- Amount
- map[amount:0.010000 currency:USD mode:fixed]
- Currency
- -
- Method
- Intent
- -
- 402 Declared
- Yes
price: map[amount:0.010000 currency:USD mode:fixed] protocols: [map[mpp:map[amount:10000 currency:0x20c000000000000000000000b9537d11c60e8b50 intent:charge method:tempo network:eip155:4217]] map[mpp:map[amount:10000 currency:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v intent:charge method:solana network:solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp]]]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| file | Yes | The document (PDF) or image (PNG, JPEG, AVIF) to process | |
| options | object | No | Optional JSON object string with the same option fields as POST /ocr (model, include_image_base64, image_limit, image_min_size, bbox_annotation_format, document_annotation_format, document_annotation_prompt, table_format, extract_header, extract_footer, confidence_scores_granularity). Annotation options price the call at the annotation rate. |
| pages | No | Same semantics as POST /ocr pages, as a form field: a range string like "0,2-4" or a JSON array string like "[0, 1, 2]". Omit to process the whole document (PDF page count is determined from the uploaded bytes; images always count as one page). |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| document_annotation | [string null] | - |
| model | string | - |
| pages | array[object] | - |
| usage_info | object | - |
Payment Methods
- Methods
- solana, tempo (from challenge)
- Intents
- charge (from challenge)
- Currencies (discovery)
- -
- Currency (challenge)
- USDC
- Multiple Challenges
- Yes
Recipients (Multi-Recipient)
- 0x19491164262c8963b11E1BcB1E4351c101B420FF
- 2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb
Per-endpoint breakdown
- POST /ocr
- 2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb
- POST /ocr/image
- 2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb
- POST /ocr/upload
- 2SbhPjHwijJExLcjjDuk6hAgxHCbBqs7xu45cXz5DCEb
Security
- TLS Version
- TLSv1.3
- Challenge ID Unique
- Yes
- Challenge ID Length
- 43
- Digest Binding
- -
Uptime
- Discovery
- Reachable (699ms)
- Challenge
- Reachable (263ms)
- Last Checked
Schema Completeness
- Paid Operations
- 3
- With Input Schema
- 3
- With Description
- 3
Documentation
- Homepage
- -
- API Reference
- -
- llms.txt
- -
Discovery
- OpenAPI URL
- https://mistral.payweave.services/openapi.json
- OpenAPI Version
- 3.1.0
- Service Version
- 1.0.0
- Document Size
- 18314 bytes
- Document Hash
- 4403807777a51d3f25af7c6c8c28cde065e16fce29e925c456e0786efdff40d2
Version History (4 snapshots)
Scan snapshots
| Date | Grade | Score | Response | Status |
|---|---|---|---|---|
| 2026-06-17 | B | 80% | 365ms | Up |
| 2026-06-18 | B | 80% | 329ms | Up |
| 2026-06-19 | B | 80% | 213ms | Up |
| 2026-06-20 | B | 80% | 363ms | Up |