Product Information API

Live product data for commercial teams

Product Information API

A premium product data platform for teams that need current availability, product facts, account usage, and managed product monitoring without building supplier-specific collection infrastructure.

Base APIapi.productinformationapi.com
Customer appSeparate sign-in surface
Data modesStock and product facts
Commercial modelUsage-aware plans

Platform

Built for product teams that need reliable data workflows, not another scraping project.

Product Information API combines direct request/response access, managed product tracking, account usage visibility, and a customer app for token and product operations.

Direct product checks

Run single or bulk stock checks, or request product information snapshots with source, method, cache age, and idempotency controls.

Managed monitoring

Register products once, refresh stock or product information on demand, review history, and follow asynchronous operations.

Usage and credits

Expose remaining credits, recent usage rows, retry guidance, and charged outcomes to finance and engineering stakeholders.

Tenant boundaries

Client codes, actor identity, scopes, token prefixes, and product ownership stay separated across every API and app request.

Agency-ready onboarding

Start with a scoped integration token, add products in bulk, hand the app to operators, and keep technical setup focused.

Public docs, separate app

The marketing and docs site stays static at the apex domain while customer sessions live on the dedicated app host.

Workflow

From first token to monitored catalog.

01 Create access

Use the app to issue a scoped integration token for engineering and rotate it when required.

02 Call the direct API

Check live stock or product information for one item or a controlled bulk batch.

03 Register products

Add products to the customer app workflow for repeat refreshes, history, and status changes.

04 Track usage

Review remaining credits and recent request outcomes before increasing volume.

Pricing

Commercial plans for launches, growing catalogs, and enterprise data operations.

Checkout and billing portal URLs are not configured in this repo yet, so payment actions below route to sales until Stripe links are added.

Launch

Custom quote

For teams validating suppliers, catalog coverage, and data freshness.

  • Direct API access
  • Scoped integration token
  • Usage visibility
  • Email onboarding
Request checkout link

Enterprise

Custom terms

For multi-team programs that need governance, rollout planning, and high-volume controls.

  • Dedicated implementation plan
  • Account-level access design
  • Custom credit packaging
  • Commercial review
Talk to sales

Stripe checkout and customer portal placeholders are intentionally non-live here. Add real checkout and portal links when the billing account is configured.

Technical docs

Currently available endpoints.

The direct API base URL is https://api.productinformationapi.com. The customer app is hosted separately at https://app.productinformationapi.com and uses app-owned browser sessions for /web/api/* routes.

Direct API

Use a scoped tenant API token in the Authorization header. The full machine-readable contract is available at OpenAPI JSON.

POST/v1/scrape
Scrape one product now

Checks one external ID or approved product URL for stock or product information. Supports source, method, maxAgeS, and idempotency.

POST/v1/scrape/bulk
Scrape multiple products

Runs the same direct scrape workflow for an array of items. Each item can use externalId or url.

GET/v1/usage
Usage and credit summary

Returns remaining credits plus recent usage rows. Optional recent query range is 1 to 100.

Customer app API

These routes are available behind the customer app session. Unsafe methods require the app CSRF header that matches the app CSRF cookie.

GET/web/auth/config
Auth config

Returns configured login and signup URLs for the customer app shell.

GET/web/auth/login
Login redirect

Starts configured customer identity-provider login.

POST/web/auth/login
Token login

Accepts a customer identity token and creates an app session.

GET/web/auth/callback
Login callback

Completes the authorization-code callback and redirects into the app.

POST/web/auth/logout
Logout

Clears the app session cookie.

GET/web/api/session
Current session

Returns email, subject, active client code, and role for the authenticated customer.

POST/web/api/session/select
Select client

Switches the active client code after membership is resolved.

POST/web/api/scrape
App direct scrape

Runs the same one-product direct scrape through the customer session.

POST/web/api/scrape/bulk
App bulk scrape

Runs bulk direct scrape through the customer session.

GET/web/api/usage
App usage

Returns credit and recent usage data for the active client.

GET/web/api/tokens
List integration tokens

Returns token metadata and prefixes for the active client.

POST/web/api/tokens
Create integration token

Creates a new scoped token for direct API calls.

DELETE/web/api/tokens/{token_prefix}
Revoke integration token

Revokes a token by prefix.

POST/web/api/tokens/{token_prefix}/rotate
Rotate integration token

Rotates a token and returns the replacement value once.

GET/web/api/products
List products

Supports filters such as page size, page token, status, source site, and client product key.

POST/web/api/products
Create or update product

Adds a product using URL or external ID plus optional SKU, key, metadata, cadence, priority, and product-info preference.

POST/web/api/products/bulk
Bulk upsert products

Submits multiple product create/update items with an optional idempotency key.

POST/web/api/products/bulk/stop
Bulk stop products

Stops multiple products by ID or client product key.

GET/web/api/products/{client_product_id}
Get product

Returns one monitored product.

PATCH/web/api/products/{client_product_id}
Patch product

Updates mutable product fields such as status, cadence, priority, SKU, metadata, or product-info preference.

DELETE/web/api/products/{client_product_id}
Stop product

Stops one monitored product.

POST/web/api/products/{client_product_id}/stock/refresh
Refresh stock

Queues or runs a stock refresh for one product.

POST/web/api/products/{client_product_id}/product-info
Refresh product information

Requests product information using the configured refresh mode.

GET/web/api/products/{client_product_id}/history
Product history

Returns recent stock or product information history for one product.

GET/web/api/operations/{request_id}
Operation status

Returns status and counts for an asynchronous bulk or refresh operation.

Request examples

curl -sS https://api.productinformationapi.com/v1/scrape \
  -H "Authorization: $PIA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: scrape-B0EXAMPLE1-001" \
  --data '{
    "source": "amazon_gb",
    "method": "checkStock",
    "externalId": "B0EXAMPLE1",
    "maxAgeS": 120
  }'
curl -sS https://api.productinformationapi.com/v1/scrape/bulk \
  -H "Authorization: $PIA_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "source": "amazon_gb",
    "method": "getProductInformation",
    "idempotencyKey": "bulk-info-2026-06-26",
    "items": [
      {"externalId": "B0EXAMPLE1", "maxAgeS": 0},
      {"externalId": "B0EXAMPLE2", "maxAgeS": 3600}
    ]
  }'
curl -sS "https://api.productinformationapi.com/v1/usage?recent=10" \
  -H "Authorization: $PIA_API_TOKEN"
fetch("https://app.productinformationapi.com/web/api/products", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-HGR-CSRF": csrfToken
  },
  credentials: "include",
  body: JSON.stringify({
    sourceSite: "amazon_gb",
    externalId: "B0EXAMPLE1",
    clientSku: "SKU-1001",
    stockCadenceS: 3600,
    productInfoPreference: "cache_then_refresh_async"
  })
})

Errors and retrying

Error responses use an error object with code, message, requestId, and retryable. Capacity responses can include Retry-After; successful direct API responses can include X-Credits-Remaining.

FAQ

Commercial and integration questions.

Is the app the same as the marketing site?

No. The apex domain serves this static landing and docs site. Customer login and app workflows stay on the dedicated app host.

Are payment links live?

Not yet in this repo. Stripe checkout and portal links are placeholders until the billing account is connected.

Which direct endpoints are public?

The public direct API currently documents /v1/scrape, /v1/scrape/bulk, and /v1/usage.

How do customer app routes authenticate?

They use signed app sessions, client membership resolution, and CSRF checks for unsafe browser methods.

Contact

Plan a launch with real endpoints and controlled volume.

Send your source sites, expected monthly checks, product information needs, and preferred onboarding date.