Extract

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 JSON schemaSchema generationMultiple URLsResults for each page
See the output

Your schema. Structured output.

Explore a real result in the shared playground. One free preview; create an account to unlock the full output.

URLs + your JSON schema

Structured JSON

Try Extract in your workspace

Example output

{
  "name": "Example product",
  "price": 49,
  "currency": "USD"
}
Define the result

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.

Use cases

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.

Build with the API

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
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
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
curl --fail-with-body "https://bulkgrid.com/api/v1/runs/$RUN_ID/results?page=1&limit=20" \
  -H "x-api-key: $BULKGRID_API_KEY"
Questions

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