Turn webpages into structured JSON.
Give Bulkgrid your URLs and the fields you need. Extract company details, product attributes, or pricing into consistent records shaped by your schema and instructions.
Your schema. Structured output.
Explore a real result in the shared playground. One free preview; create an account to unlock the full output.
Example output
{
"name": "Example product",
"price": 49,
"currency": "USD"
}Ask for the fields your application needs
Start with a focused schema that matches the data available on the pages you provide.
Start with your fields
Write a JSON schema, or describe your goal to the schema-generation API. Review the draft so field names and types fit your application.
Explain what matters
Describe the information you want and how to interpret it. Keep the instructions focused on fields available in the pages you provide.
Apply it across pages
Use the same schema across a list of URLs. Retrieve individual page records and review results before sending them downstream.
From page content to usable records
Build repeatable workflows around the information published on your selected pages.
Company enrichment
Collect company names, product descriptions, and other published details into a consistent record.
Product and pricing data
Extract product attributes, plan names, prices, or availability when the source pages contain them.
Policies and requirements
Turn relevant policy details or documented requirements into fields your application can compare and review.
A schema your application can build on
Try the product, company, or pricing request. Replace the sample URLs, then retrieve the structured results for each page.
Set BULKGRID_API_KEY to a workspace API key in your backend environment. Required scopes: extract:write, runs:read, results:read.
Read the full guide · SDK examples
1. Start extraction
Replace the example URLs. Apply one schema and instruction across the pages; save the returned run id.
curl --fail-with-body "https://bulkgrid.com/api/v1/extract" \
-H "x-api-key: $BULKGRID_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "extract",
"urls": [
"https://example.com/products/notebook",
"https://example.com/products/planner"
],
"query": "Extract the product name, price in USD, and whether it is in stock.",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"priceUsd": {
"type": "number"
},
"inStock": {
"type": "boolean"
}
},
"required": [
"name",
"priceUsd",
"inStock"
]
}
}'2. Check progress
Set RUN_ID to the id returned above. Check every few seconds with a maximum wait time. Stop on completed, failed, or cancelled; inspect last_error on failure.
curl --fail-with-body "https://bulkgrid.com/api/v1/runs/$RUN_ID" \
-H "x-api-key: $BULKGRID_API_KEY"3. Retrieve results
After completion, list results. Check each error_message before using its output; paginate for larger runs. Read extraction_data on each successful record.
curl --fail-with-body "https://bulkgrid.com/api/v1/runs/$RUN_ID/results?page=1&limit=20" \
-H "x-api-key: $BULKGRID_API_KEY"Before you start
Choose the right scope and understand what you receive.
Get the fields your application needs
Start with one representative page and a few fields. Review the JSON, then use the same request across your URL list.
Try Extract