Price From Any URL API
Pricing
from $15.00 / 1,000 validated price extracteds
Price From Any URL API
Extract current public product price, currency, availability, and title from any product-page URL. MCP-ready JSON for agents and price pipelines.
Pricing
from $15.00 / 1,000 validated price extracteds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
Extract the current public product price, currency, and availability from any product-detail URL you already have. Paste up to 50 HTTP(S) product pages, and receive one validated dataset row per accepted URL with price, currency, title, stock signal when exposed, source URL, and ISO 8601 collection time.
This is a lean price-from-URL API for agents, sheets, and price-check workflows—not a competitor-monitoring suite. For same-currency own-vs-competitor gaps and alert flags, use the sibling Actor wiser-alternative. Choose a dedicated marketplace Actor when you need catalog search, reviews, or site-specific listing discovery.
Best fit
Use when you already have public product URLs (from a feed, scrape, or CRM) and need a reproducible price snapshot for MCP tools, BI, or internal review. It returns public price, currency, availability, brand/SKU/GTIN when exposed, retailer hostname, extraction and retrieval methods, source and canonical URLs, and collectedAt.
A row is billable only after both a public product title and a current price have been validated and written to the dataset. Pages that expose neither, or only one of those fields, produce no price-extracted charge.
Input
urls is the only required field: a list of 1–50 public product-detail URLs.
{"urls": ["https://www.nike.com/t/air-force-1-07-mens-shoes-WrLlWX/CW2288-111"],"maxConcurrency": 3,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
maxConcurrency (1–5, default 3) limits simultaneous page fetches. Residential proxy is the recommended default for many retailers; platform proxy usage is billed separately to the run user under PPE usage pass-through.
Output
Each dataset item is one current public product-page price extraction.
| Field | Meaning |
|---|---|
price, currency | Current public price and ISO currency when exposed. |
originalPrice, availability | Pre-discount price and stock signal when exposed. |
sku, gtin, brand | Public product identifiers when exposed. |
retailer | Hostname-derived retailer label. |
extractionMethod, retrievalMethod | json_ld / meta_html, plus static_html or rendered_page. |
sourceUrl, canonicalUrl, collectedAt | Evidence and freshness (ISO 8601). |
provenance | Always public_product_page for accepted rows. |
{"resultId": "0:2026-09-17T12:00:00.000Z","productTitle": "Air Force 1 '07","price": 115,"currency": "USD","originalPrice": null,"availability": "in_stock","brand": "Nike","sku": "CW2288-111","gtin": null,"imageUrl": "https://example.com/af1.jpg","sourceUrl": "https://www.nike.com/t/air-force-1-07-mens-shoes-WrLlWX/CW2288-111","canonicalUrl": "https://www.nike.com/t/air-force-1-07-mens-shoes-WrLlWX/CW2288-111","retailer": "nike.com","extractionMethod": "json_ld","retrievalMethod": "static_html","collectedAt": "2026-09-17T12:00:00.000Z","provenance": "public_product_page"}
Every run also writes OUTPUT and RUN_SUMMARY in the default key-value store. Terminal outcomes are COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT, UPSTREAM_FAILED, or CONFIG_ERROR. A successful platform status alone is not proof of useful data—inspect the dataset and these terminal records.
How it works
- Validate
urls(1–50 HTTP/HTTPS product pages). - Fetch each page over static HTML first (JSON-LD Product offer preferred, then product meta / constrained DOM).
- If static HTML lacks a validated title+price pair, queue a bounded rendered-page fallback for that URL.
- Persist only rows with both a product title and a current price; charge
price-extractedonce per persisted row. - Write
OUTPUT/RUN_SUMMARYwith accepted counts, fallback telemetry, and named-event reconciliation.
A generic landing-page title paired only with a bare .price element is rejected as a false positive so hollow marketing pages are not billed.
Sibling route: wiser-alternative
| Need | Actor |
|---|---|
| Price + currency from URLs you already have | price-from-url-api (this Actor) |
| Own price vs competitor URLs, same-currency gap, alert threshold | wiser-alternative |
Both share the same public-page extraction spine. This Actor omits comparison, own-price, and alert fields.
Pricing and cost controls
Pay per event (PPE) with caller-paid platform usage:
| Event | Price (USD) |
|---|---|
apify-actor-start | $0.00005 |
price-extracted (primary) | $0.015 |
One price-extracted event is charged only after the page provides both a product title and a current price and the row is persisted. Invalid input, empty pages, and transport failures do not create that event.
Apify compute and any selected proxy usage are billed separately to the run user. Keep batches small while evaluating a retailer and set an Apify run charge cap that matches your budget. This Actor makes no external paid data-provider API calls beyond Apify Proxy when you enable it.
Example: a ten-URL batch that yields eight validated rows creates eight price-extracted events plus the run-start event and applicable platform usage.
API example
curl -X POST 'https://api.apify.com/v2/acts/khadinakbar~price-from-url-api/runs?token=YOUR_APIFY_TOKEN' \-H 'content-type: application/json' \-d '{"urls": ["https://www.nike.com/t/air-force-1-07-mens-shoes-WrLlWX/CW2288-111"],"maxConcurrency": 1}'
Retrieve the default dataset and the OUTPUT record from the run before treating prices as actionable.
AI-agent / MCP prompt card
For each provided public product URL, return the latest validated price, currency, availability, source URL, and collection time. Do not invent prices. Treat
PARTIAL,VALID_EMPTY,INVALID_INPUT, andUPSTREAM_FAILEDas deliberate outcomes. Prefer this Actor for raw price-from-URL; use wiser-alternative when the caller supplies an own price and needs a same-currency gap.
An MCP agent should inspect the dataset plus OUTPUT before continuing. Retry a corrected public product URL, or route a site-specific catalog need to a dedicated marketplace Actor.
Honest limits
- Public product pages only. Login walls, private pricing, and cart-only totals are out of contract.
- No SKU matching, currency conversion, historical archives, MAP enforcement, or automated repricing.
- Some retailers block static and rendered fetches; those URLs finish as request failures or no-price outcomes without a hollow success.
- Variant / size / region prices may differ from the default offer the page exposes—confirm on the source URL before commercial decisions.
- Respect each retailer’s terms of service and applicable law. You are responsible for lawful use of the returned public data.
FAQ
Why did a URL return no row? The page did not expose both a product title and a parseable current price after static and (when queued) rendered recovery, or the request failed upstream.
Is SUCCEEDED enough? No. Check dataset row count, OUTPUT.outcome, RUN_SUMMARY, and price-extracted charges.
Can I compare against my own price? Use wiser-alternative for that workflow.
Support
Open an Issue on the Actor page for reproducible failures (URL, run ID, expected vs observed). Custom pipelines and dedicated retailer routes are available on request.