Transformez vos fichiers en contenu structuré.
Un seul appel transforme un PDF, une numérisation, un fichier bureautique ou un enregistrement en markdown propre et en JSON structuré, avec une boîte englobante sur chaque bloc produit, pas seulement les tableaux et les images.
Regardez la page avant de la payer.
La plupart des API d'analyse exécutent le même modèle sur chaque page et vous les facturent toutes. Nous acheminons d'abord. Trois pages sur quatre n'atteignent jamais un modèle.
Envoyez le fichier. C'est toute la configuration.
Aucun schéma, aucun gabarit, aucune configuration à préparer. Parse prend une URL ou un identifiant de fichier et décide comment le lire. Forcez la décision avec un seul champ quand vous savez déjà, comme la ROC sur une mauvaise télécopie, la transcription sur un enregistrement arrivé en PDF.
Le lire avec le plus petit outil qui suffit
Un PDF nativement numérique a déjà une couche de texte. Une lettre à une colonne n'a aucune mise en page à résoudre. Ceux-là passent par un pipeline déterministe, sans GPU, au cinquième du prix du modèle. Seul le quart difficile (numérisations, tableaux denses, documents multicolonnes) atteint la ROC et rakedoc-nano-2.
Markdown pour les gens. JSON pour tout le reste.
Une seule lecture produit deux artefacts. Du markdown qu'une personne peut ouvrir et qu'un modèle peut découper, et du JSON structuré qui porte les blocs, leur page et leur position. L'audio saute le markdown et retourne la transcription, avec une langue détectée et des segments minutés.
Chaque élément garde sa boîte
Paragraphes, titres, éléments de liste, cellules de tableau, figures, notes. Chacun revient avec le rectangle qu'il occupait. La plupart des services encadrent les images et les tableaux et laissent le texte en flux continu. Encadrer le texte, c'est ce qui permet ensuite de caviarder une clause, de signer à un ancrage, de citer une région source, ou de montrer à un vérificateur la cellule exacte d'où vient un chiffre.
Un seul point d'entrée. Tout ce qui arrive.
Le courrier ne se trie pas tout seul avant de vous arriver. Parse ne vous demande donc pas de le trier d'abord.
PDF nativement numériques
Le texte est déjà dans le fichier. Nous le lisons directement, gardons l'ordre de lecture, et ne facturons rien. C'est l'essentiel de ce que la plupart des équipes envoient.
Numérisations, télécopies et photos
Aucune couche de texte, pages de travers, un tampon sur le total. Ceux-là passent par la ROC et rakedoc-nano-2, le quart du trafic qui mérite qu'on y consacre un modèle.
Enregistrements, avec locuteurs
Transcription en 24 langues, avec identification optionnelle des locuteurs : chaque tour porte un locuteur et un minutage. La transcription revient en segments minutés, pas en un mur de texte.
Tableaux qui débordent d'une page
Un tableau de taux avec un en-tête à trois niveaux qui court sur deux pages reste un seul tableau, l'en-tête rattaché aux lignes qu'il coiffe. C'est le cas sur lequel nous avons le plus travaillé.
L'analyseur est le nôtre. Les poids aussi.
rakedoc-nano-2 est le modèle qui lit le quart difficile. Il est n° 1 parmi les modèles à poids ouverts sur ParseBench et devance tous les LLM de pointe, et il est publié sur Hugging Face sous AGPL-3.0, pour que vous puissiez le vérifier vous-même.
- ParseBench, global
- 80,1
- N° 1 parmi les modèles à poids ouverts, cinquième au total
- Paramètres
- 1,2 B
- Tourne sur tout GPU de 8 Go, ~6 pages/s sur un H100
- Par 1 000 pages
- 5,20 $
- Au volume entreprise; 10 $ au tarif du catalogue, et seulement sur les pages qui exigent le modèle
- Poids ouverts
- AGPL-3.0
- Exécutez-le, inspectez-le, ajustez-le, gardez les documents dans votre périmètre
- LlamaParse Agentic Plus 86,7
- LlamaParse Agentic 82,8
- Pulse Ultra 2 81,6
- Upstage Document Parse 2 80,6
- rakedoc-nano-2 le nôtre, poids ouverts 80,1
- anyformat 80,0
- KDL-Frontier-Parser-nano-v2 ouvert 79,1
- Opus 5.5 (Effort High) 78,8
- oi-parser 78,3
- Fable 5.1 77,8
- LlamaParse Cost Effective 77,7
- LightOnOCR-3-4B ouvert 75,6
- Nemotron-3.5-Parse 75,1
- GPT-5.6 Sol (Reasoning High) 74,4
- Gemini 3 Flash (Thinking Medium) 74,1
- Fidélité du contenu À 3,5 points du meilleur du banc 87,8
- Tableaux En-têtes fusionnés compris, gardés en structure 85,9
- Mise en forme sémantique Troisième au total, derrière deux paliers LlamaParse Agentic 80,0
- Ancrage Les boîtes, évaluées 75,1
- Graphiques 6,8 points de plus que notre premier modèle, encore notre plus faible 71,7
Chaque chiffre ici vient du classement public ParseBench, y compris notre propre soumission. Notre score est la moyenne de trois exécutions complètes sur un seul GPU; le score global a varié de moins de ±0,1 entre les exécutions. Les modèles sans prix publié figurent quand même au graphique. Nous préférons que vous vérifiiez les chiffres plutôt que de nous croire sur parole.
Vous payez probablement pour lire des pages qui se lisent seules.
L'analyse est vendue à la page parce que c'est facile à facturer, pas parce que chaque page coûte le même prix à lire.
| Ce que tout le monde facture | Ce que nous facturons | |
|---|---|---|
| Facturation | Un tarif par page, peu importe ce qu'elle contient. | Rien pour les pages qu'une règle peut lire, soit trois sur quatre dans notre propre trafic. Le modèle n'est facturé que sur le quart qui l'exige. |
| Boîtes | Mise en page et structure des tableaux en options payantes. | Inclus, sur chaque élément, texte compris. Il n'existe aucune version de Parse qui retourne un flux de mots sans coordonnées. |
| Dépendance | Un modèle fermé, et une facture qui suit votre volume pour toujours. | Les poids sont sur Hugging Face sous AGPL-3.0. Auto-hébergez à forte utilisation et le coût marginal tombe sous 0,30 $ par 1 000 pages, sur votre matériel, avec notre bénédiction. |
| Preuve | Un chiffre marketing tiré d'une évaluation interne. | Un classement public, une demande de tirage soumise, le commit exécuté, et un écart sous ±0,1 sur trois exécutions. Reproduisez-le si vous voulez. |
Un appel. Markdown, JSON et boîtes.
Aucun schéma à définir d'abord, rien à configurer. Le deuxième appel ci-dessous est extract, réutilisant le même identifiant de fichier. La page est déjà lue, elle n'est donc pas relue.
import { CloudRakerClient } from "@cloudraker/api";
const client = new CloudRakerClient({ token: "YOUR_API_KEY" });
// 1 - Read the file. Routing is automatic; override it when you know better.
const run = await client.parse({
body: { file: { url: "https://example.com/rate-filing.pdf" } },
});
console.log(run.output?.markdownUrl); // rendered markdown, time-limited URL
console.log(run.output?.jsonUrl); // blocks, page, and position
// 2 - Every block carries the rectangle it came from
const parsed = await client.fetch(run.output!.jsonUrl);
for (const block of parsed.blocks) {
console.log(block.type, block.page, block.bbox, block.text.slice(0, 60));
}
// 3 - The read is attached to the file, not the call. No second parse.
const data = await client.extract({
body: {
files: [{ id: run.file.id }],
schema: {
type: "object",
properties: { effective_date: { type: ["string", "null"] } },
},
citations: true,
},
});
console.log(data.output?.value);from cloudraker.client import CloudRaker
client = CloudRaker(token="YOUR_API_KEY")
# 1 - Read the file. Routing is automatic; override it when you know better.
run = client.parse(file={"url": "https://example.com/rate-filing.pdf"})
print(run.output.markdown_url) # rendered markdown, time-limited URL
print(run.output.json_url) # blocks, page, and position
# 2 - Every block carries the rectangle it came from
for block in client.fetch(run.output.json_url)["blocks"]:
print(block["type"], block["page"], block["bbox"], block["text"][:60])
# 3 - The read is attached to the file, not the call. No second parse.
data = client.extract(
files=[{"id": run.file.id}],
schema={
"type": "object",
"properties": {"effective_date": {"type": ["string", "null"]}},
},
citations=True,
)
print(data.output.value)Envoyez-nous la page qui le met en échec.
Le palier gratuit couvre des milliers de pages par mois. Pointez Parse vers votre pire document et lisez ce qui revient.