Cloud Storage
Stockez les pages crawlées dans le stockage géré par Crawlbase. Récupérez-les ensuite par URL ou RID. Pas besoin de base de données, ni de bucket S3, ni de cron qui les relie.
Endpoint
# Two operations: store (write) and retrieve (read).
# Storage is implicit — set store=true on a Crawling API call to write.
# Use this endpoint to read.Stockage des pages
Vous n'appelez pas cet endpoint pour stocker. Ajoutez plutôt store=true à n'importe quel appel à la Crawling API. La page est stockée automatiquement et vous recevez un rid dans la réponse.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://example.com' \
--data-urlencode 'store=true' -G
# Response includes rid: a1B2c3D4e5F6Récupération des pages
Par RID
curl 'https://api.crawlbase.com/storage?token=YOUR_TOKEN&rid=a1B2c3D4e5F6'from crawlbase import StorageAPI
api = StorageAPI({'token': 'YOUR_TOKEN'})
res = api.get(rid='a1B2c3D4e5F6')
print(res['body'])const { StorageAPI } = require('crawlbase');
const api = new StorageAPI({ token: 'YOUR_TOKEN' });
const res = await api.get({ rid: 'a1B2c3D4e5F6' });
console.log(res.body);Par URL
Récupérez une page stockée à partir de son URL d'origine. Renvoie la version stockée la plus récente.
curl 'https://api.crawlbase.com/storage?token=YOUR_TOKEN&url=https%3A%2F%2Fexample.com'Paramètres
json encapsule le body et les métadonnées.Récupération en masse
Récupérez jusqu'à 100 pages stockées en un seul aller-retour par RID. Envoyez en POST un body JSON contenant la liste et (en option) demandez au serveur de supprimer chaque entrée au fur et à mesure de son renvoi — pratique pour les pipelines de type « vidage de file » qui n'ont pas besoin de garder le stockage actif.
curl -X POST 'https://api.crawlbase.com/storage/bulk?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{ "rids": ["RID1","RID2","RID3"], "auto_delete": true }'true, chaque entrée renvoyée avec succès est supprimée du stockage dans le même appel. Utilisez cette option lorsque vous videz une file de résultats à usage unique que vous n'avez pas besoin de conserver.La réponse est un tableau JSON, avec un objet par RID renvoyé. Le champ body est encodé en base64 et compressé en gzip — décodez le base64 puis décompressez le gzip pour obtenir la page d'origine.
[
{
"stored_at": "2021-03-01T14:22:58+02:00",
"original_status": 200,
"pc_status": 200,
"rid": "RID1",
"url": "https://example.com/a",
"body": "H4sIAAAA…" // base64(gzip(html))
},
{
"stored_at": "2021-03-01T14:30:51+02:00",
"original_status": 200,
"pc_status": 200,
"rid": "RID2",
"url": "https://example.com/b",
"body": "H4sIAAAA…"
}
]Suppression en masse
Supprimez une liste de RIDs en un seul appel. Renvoie un statut par RID afin que vous puissiez repérer ceux qui avaient déjà disparu ou qui ont échoué.
curl -X POST 'https://api.crawlbase.com/storage/bulk_delete?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{ "rids": ["RID1","RID2","RID3"] }'La réponse est un tableau JSON, avec une entrée par RID soumis. status: true signifie que l'entrée a été supprimée ; status: false avec result: "Not Found" signifie que le RID n'existait pas (déjà nettoyé, expiré ou jamais écrit).
[
{ "rid": "RID1", "result": "Deleted", "status": true },
{ "rid": "RID2", "result": "Not Found", "status": false },
{ "rid": "RID3", "result": "Failed", "status": false }
]Vérifiez deux fois la liste de RIDs avant l'envoi. Il n'y a ni suppression douce ni annulation — si vous avez besoin d'un workflow réversible, récupérez d'abord avec auto_delete=false et n'appelez /bulk_delete qu'une fois le body persisté localement.
Supprimer une seule page
Retirez une entrée du stockage par RID. Utilisez DELETE /storage avec le RID dans la query string.
curl -X DELETE 'https://api.crawlbase.com/storage?token=YOUR_TOKEN&rid=RID'Trois formes de réponse :
| Résultat | Body |
|---|---|
| Trouvée et supprimée | {"success": "The Storage item has been deleted successfully"} |
| Trouvée mais suppression échouée | {"error": "The Storage item could not be deleted"} |
| Absente du stockage | {"error": "Not Found"} |
Lister les RIDs
Parcourez les RIDs de votre zone de stockage — l'appel d'inventaire. Pour les jeux de données plus volumineux qu'une seule réponse, utilisez la pagination par scroll (scroll=true initialise une session de scroll et renvoie un scroll_id à rejouer sur les appels suivants).
# First page
curl 'https://api.crawlbase.com/storage/rids?token=YOUR_TOKEN&limit=100&scroll=true'
# Next page — replay the scroll_id from the previous response
curl 'https://api.crawlbase.com/storage/rids?token=YOUR_TOKEN&scroll_id=dXVlcnlUaGVuRmV0Y2g7…'true , la réponse inclut un scroll_id que vous pouvez rejouer pour récupérer la page suivante. Sans cela, vous n'obtenez que la première page.scroll=true sur les appels suivants — uniquement sur le premier appel.{
"rids": ["RID1", "RID2", "RID3", "..."],
"scroll_id": "dXVlcnlUaGVuRmV0Y2g7NTs1NDpDV…"
}Un scroll_id est valable environ 15 secondes d'inactivité. Si vous voyez "Scroll session has expired or is invalid" , recommencez avec une nouvelle requête scroll=true — le curseur a disparu.
Nombre total
Un seul entier : le nombre de pages actuellement présentes dans votre zone de stockage.
curl 'https://api.crawlbase.com/storage/total_count?token=YOUR_TOKEN'
# Response
# { "totalCount": 5491078 }Rétention et tarification
- Les pages stockées sont conservées 14 jours par défaut . Extensible sur les plans entreprise.
- Chaque appel
store=truecompte comme une seule requête — sans frais supplémentaires. - La récupération (ce point de terminaison) est gratuite . Lisez autant de fois que nécessaire.
- Si une page est re-crawlée avec
store=true, la nouvelle version remplace l'ancienne.
Pistes d'audit (« que disait la page lorsque nous l'avons crawlée ? »), pipelines de retraitement (re-parser le HTML stocké lorsque la logique de votre scraper s'améliore) et diffusion de résultats mis en cache aux lecteurs sans re-crawler.

