POST /v1/extractExtract to a schema
Supply a schema and get back JSON in that shape. The engine handles DOM traversal and structural mapping, so you are not writing per-site selectors or repairing them when a target changes its markup.
Request
curl -X POST https://api.datamint.xyz/v1/extract \
-H "Authorization: Bearer mint_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/item/123",
"schema": "ecommerce_item"
}'The difference from /v1/mint is what schema is allowed to be, and that the extraction pass is always applied.
Parameters
urlstringrequiredThe page to fetch. An absolute http or https URL.
schemastring | objectrequiredEither a registered schema name such as ecommerce_item, or an inline JSON Schema object. A registered name resolves to a mapping already maintained for that shape; an inline schema is used as given.
jsbooleanRender in a headless browser first, for client-rendered pages.
stealthbooleanRoute through residential proxies with fingerprint mutation.
Unlike /v1/mint, schema here is required: producing typed JSON is the entire purpose of the endpoint. Omitting it is a 400, not a request that falls back to Markdown.
Cost
The schema pass is always applied and is always additive, so this endpoint costs 2 credits more than the equivalent fetch on /v1/mint: 3 credits for a static fetch, 7 for a dynamic render, 17 for stealth armor.
Choosing between a name and an inline schema
Use a registered name when one matches your target. These map well to shapes that are the same across many sites (a product listing, an article, a job posting) and they are maintained as the targets change, which is the point of not writing selectors yourself.
Use an inline JSON Schema when your shape is specific to your own pipeline and no registered name fits.
Registered Canonical Schemas
"ecommerce_item"E-commerce product data across retail and marketplace platforms.
Fields: product_name, price, currency, in_stock, description, sku, brand, images, rating, review_count
"article"News, blog posts, essays, and editorial journalism.
Fields: headline, author, date_published, summary, content_markdown, lead_image, tags
"job_posting"Employment postings and career board listings.
Fields: title, company_name, location, remote_policy, employment_type, salary_range, requirements, posted_at
"company_profile"About pages, corporate directories, and startup registries.
Fields: name, domain, industry, headquarters, founded_year, employee_count, description, social_profiles
"real_estate_listing"Property listings for rent or purchase.
Fields: address, price, property_type, bedrooms, bathrooms, square_feet, description, amenities, mls_id
"faq"Extracted question-and-answer pairs across help centers and landing pages.
Fields: questions: Array<{ question: string, answer: string }>
Errors
400 if schema is missing or is neither a string nor an object. The rest are shared across the API. See Errors.
Need volume pricing or a custom parser?