---
title: "What a quantity costs at each provider, cheapest first"
method: GET
path: "/quote"
tags: ["database"]
---

# What a quantity costs at each provider, cheapest first

`GET /quote`

## Request

- Base URL: `https://workingproxysites.info/api/v1`
- URL: `https://workingproxysites.info/api/v1/quote`
- Auth: none required

Prices `quantity` units of `type` at every provider selling it in `pricing_model`, from the published price ladders. per_gb and per_request: the cheapest of volume tiers (quantity × unit price, or the tier minimum when that is cheaper) and plans (bought as many times as needed), over one-time and monthly tiers (a monthly plan counts once); one tier per quote, tiers are not combined, except that a graduated ladder is one candidate (each band's units at that band's rate, the lowest band from 0, at least the lowest band's quantity, which is the smallest purchase, and at least the minimum charge on the lowest band). per_ip, per_port and unlimited: the same over monthly tiers, times `months`, plus quarterly tiers when months is a multiple of 3 and yearly tiers when it is a multiple of 12 (price × months ÷ 3 or 12); a product with only daily or weekly prices is converted at 30 days or 4.345 weeks a month and says so in notes. Trial and other once-only tiers (once: true) are never used. Only tiers matching `ip_version` (default ipv4 for datacenter and isp, where tiers without an IP version count as IPv4; any otherwise) and `shared` (default any) are priced; each quote carries the ip_version and shared of its tier, and the result echoes both filters. Without a usable ladder the quote is an estimate (estimate: true). Quotes use each provider's published list prices in USD, excluding taxes, fees, promotions and coupon codes; confirm on the provider's site before buying. Invalid values are a 400 whose error lists the allowed values; a parameter given twice is a 400; unknown parameters are named in `warnings`.

## Query parameters

- `type` 'residential' | 'mobile' | 'datacenter' | 'isp', required
- `quantity` number, required
- `pricing_model` 'per_gb' | 'per_ip' | 'per_port' | 'per_request' | 'unlimited'
- `months` integer
- `ip_version` 'ipv4' | 'ipv6' | 'any'
- `shared` 'true' | 'false' | 'any'
- `listing_status` 'active' | 'pre-launch' | 'defunct' | 'suspended' | 'unverifiable' | 'any'
- `limit` integer

## Response `200`

Quotes, cheapest first.

- QuoteResult
  - `type` 'residential' | 'mobile' | 'datacenter' | 'isp', required
  - `pricing_model` 'per_gb' | 'per_ip' | 'per_port' | 'per_request' | 'unlimited', required
  - `quantity` number, required
  - `unit` string, required: What quantity counts: GB, IP, port, 1k requests, or port or plan.
  - `months` integer, nullable, required: Months priced for per_ip, per_port and unlimited; null for per_gb and per_request.
  - `ip_version` 'ipv4' | 'ipv6' | 'any', required: The ip_version filter applied (the type default when not given).
  - `shared` union, required: The shared filter applied: true, false or "any" (default).
    - boolean
    - string
  - `listing_status` string, required
  - `total` integer, required: Providers quoted (before limit).
  - `limit` integer, required
  - `quotes` Quote[], required: Cheapest first; at equal totals exact quotes come before estimates, then rank order.
    - `slug` string, required
    - `name` string, required
    - `total_usd` number, required: USD required for the quantity, raised to entry_price_usd when higher (list price, excluding taxes and promotions). Notes distinguish an initial funding minimum from the tier charge.
    - `effective_unit_price_usd` number, required: total_usd per requested unit (per unit per month for per_ip, per_port and unlimited).
    - `pricing_model` 'per_gb' | 'per_ip' | 'per_port' | 'per_request' | 'unlimited' | 'other', required
    - `price_unit` string, required: Canonical unit of the product (GB, IP/month, port/month, 1k requests, month).
    - `tier` PriceTier, required: One step of a published price ladder, at the regular list price.
      - `kind` 'volume' | 'plan' | 'graduated', required: volume: buying at least `quantity` units costs `unit_price_usd` each. plan: a fixed package of `quantity` units for `total_usd`. graduated: one band of a marginal ladder; units from this band's `quantity` up to the next graduated band's (same billing_period, ip_version and shared) cost `unit_price_usd` each, the lowest band starts at 0 (its `quantity` is the smallest purchase), and `total_usd` on the lowest band is a minimum charge per billing period.
      - `quantity` number, required: Units, counted in the product's pricing unit: GB (per_gb), IPs (per_ip), ports (per_port), thousands of requests (per_request), ports or plans (unlimited).
      - `unit_price_usd` number, nullable, required: Price per unit in USD for the billing period (required for volume and graduated tiers; null when a plan does not state one).
      - `total_usd` number, nullable, required: Price of the whole tier in USD for the billing period (required for plans). On the lowest graduated band: the minimum charge per period.
      - `billing_period` 'one_time' | 'day' | 'week' | 'month' | 'quarter' | 'year', required: one_time (pay as you go, a top-up or a pack that does not renew), day, week, month, quarter or year. Prices are for this period, not converted.
      - `note` string, required: Promotions, conditions or what the plan includes, as published. Empty when none.
      - `once` boolean, required: true for a trial, intro or new-user offer that can be bought only once. Such tiers are shown but never used in price quotes or in the derived price_from_usd and entry_price_usd.
      - `ip_version` 'ipv4' | 'ipv6' | 'null', nullable, required: IP version the tier sells (ipv4 or ipv6); null when the ladder does not say. Quotes count null as IPv4.
      - `shared` boolean, nullable, required: true: shared IPs; false: dedicated (private) IPs; null when the ladder does not say.
    - `billing_period` 'one_time' | 'day' | 'week' | 'month' | 'quarter' | 'year' | 'null', nullable, required: The tier's billing period; null for estimates.
    - `ip_version` 'ipv4' | 'ipv6' | 'null', nullable, required: The IP version of the tier used; null when the ladder does not say (counted as IPv4) and for estimates.
    - `shared` boolean, nullable, required: Whether the tier used sells shared (true) or dedicated (false) IPs; null when the ladder does not say and for estimates.
    - `purchased_quantity` number, required: Units actually bought: more than requested when a plan or a volume minimum makes that cheaper.
    - `estimate` boolean, required: true when the provider publishes no usable price ladder: price_from_usd × quantity (× months), raised to entry_price_usd when higher. A lower bound.
    - `notes` string[], required: How the price was built (plans bought several times, volume minimums, graduated bands and minimum charges, daily or weekly prices converted at 30 days or 4.345 weeks a month, quarterly or yearly billing, estimates).
    - `pricing_url` string, uri, required: The provider's pricing page (its website when none is recorded).
    - `checked_at` string, date, nullable, required: When the prices were last checked.
  - `warnings` string[], required: Ignored parameters, providers priced in another model, unpriced products, products left out because no tier matches ip_version / shared, how many quotes are estimates.
  - `caveats` string[], required: How to read the quotes.

## Other responses

- `400`: Invalid input (invalid_field, invalid_parameter, invalid_json…).

---

[API](https://skmtc.dev/workingproxysites/apis/working-proxy-sites-api.md) · [All operations](https://skmtc.dev/workingproxysites/apis/working-proxy-sites-api/llms.txt) · [OpenAPI document](https://skmtc.dev/workingproxysites/apis/working-proxy-sites-api/revisions/569b34abb022?raw)
