Purchase parameters may be sent in the JSON body and/or the query string (body wins on conflicts). Dynamic purchases accept session_mode (sticky default; rotating requires the standard line s=3/4 — s=1/2 with rotating returns 422) and session_duration (sticky minutes, whitelist 10/30/60/120, standard line only; the duration joins the idempotency fingerprint, so changing it needs a new idempotency_key). Subnational targeting: state_id/city_id ride the premium line only — s=1/2 with country_id(+state_id)(+city_id) provisions through the verified gateway bridge; s=3/4 with state_id/city_id is rejected. ISP targeting: the isp catalog key (see GET /proxy/isp/catalog) requires the premium line s=1/2 plus country_id and is rejected elsewhere.