proxy

Get Proxy Targeting

Return the values accepted in a scan's proxy block for one country.

Every value listed here is accepted by POST /api/v1/scans, in any case. That guarantee is about validation only: the provider's pool moves continuously, so a scan may still fail to find an exit node at crawl time.

An unsupported or unknown country returns 200 with empty arrays rather than 404 — the useful answer to "can I target here" is a list, possibly an empty one.

get/api/v1/proxy/targeting

Request

  • Base URL: https://app.kaminari.ad
  • URL: https://app.kaminari.ad/api/v1/proxy/targeting
  • Auth: HTTP bearer

Query parameters

country_codestring required

ISO 3166-1 alpha-2 country code. Case-insensitive.

proxy_type'residential' | 'mobile'

Which network to describe. Required in practice: the residential and mobile catalogues differ substantially, so values taken from one may be rejected for the other.

regionstring

Narrow cities to one region. Omit for the country-wide city list. Pass a value from this endpoint's own regions array.

Response

Successful Response

country_codestring required

ISO 3166-1 alpha-2 code, upper-case.

proxy_typestring required

Network these values belong to. The catalogues differ substantially between residential and mobile, so a value listed for one is not necessarily accepted for the other.

regionsstring[] required

Accepted values for proxy.region, ordered by pool size (largest first).

citiesstring[] required

Accepted values for proxy.city, ordered by pool size. Narrowed to the region query parameter when one is given; otherwise the country-wide list, which is what to pick from when targeting by country alone. Pairing a region with a city from a different region yields no exit node.

ispsstring[] required

Accepted values for proxy.isp, ordered by pool size. Mobile carriers when proxy_type=mobile.

refreshed_atstring date-time nullable required

When these lists were last verified against the upstream provider, or null if we have not synced this country yet. Null means 'not looked yet', which is different from empty lists with a timestamp, which means 'no targeting available here'. This moves on every sync whether or not the contents changed — use the ETag header to detect actual changes.

ttl_secondsinteger required

How long these lists may be cached before we re-verify them upstream. Send the ETag back as If-None-Match to revalidate cheaply.

Changes

No recorded changes to this operation across all 1 revision of this API.