Skip to main content
Use extraction when you want fields, not just content.

When extraction is the right tool

Extraction is a strong fit for:
  • company and product profiles
  • pricing or policy extraction
  • structured enrichment for downstream systems
  • repeatable data collection from public pages

Design the request carefully

Good extraction quality usually depends more on request design than on retry count. Keep the request:
  • narrow enough to be realistic
  • specific about what should be extracted
  • backed by a schema that downstream systems can actually use

Generate a schema

Write the JSON schema yourself, as in the examples below, or generate a draft from your extraction goal. Schema generation requires the extract:schema:generate scope. Node.js and Python examples use the Bulkgrid SDKs. Set BULKGRID_API_KEY in your backend environment; cURL examples also use BULKGRID_BASE_URL=https://bulkgrid.com.
cURL
Schema generation is currently available through the REST API; the SDK has no schema-generation method. The response contains schema and optional notes. Review the result before passing schema to /api/v1/extract. Provide a query, optional context, and allowNulls to control whether nulls are allowed. Generated schemas are validated before being returned; if validation fails, the service retries once and then returns a structured error. Review and tighten the draft, then test it with a small extraction run before expanding its scope. Schema generation prepares the request; submit the extraction separately to process your URLs.

Request examples

Workflow

  1. submit the extraction request
  2. store the run ID
  3. poll GET /api/v1/runs/{runId}
  4. fetch GET /api/v1/runs/{runId}/results
  5. read extraction_data from the result records

Common quality problems

  • the schema asks for data the source does not contain
  • the query is too broad
  • the page requires interaction or access patterns the request does not account for

Recommendation

Start with the smallest schema that delivers value. Expand later once the output is stable.