ARNPROXY

Renewal quote; no debit

POST/account/api/v1/renewals/quote

Authorization

AuthorizationBearer YOUR_ARNPROXY_API_KEY
Required permissionread
Acceptapplication/json
Content-Typeapplication/json

Parameters

NameTypeDescription
proxy_ids
bodyRequired
integer[]1–1000 unique owned proxy IDs; do not mix product types where a common scope/price is required. Some operations have tighter bounds.
time_id
bodyRequired
integerPeriod/GB-plan ID from the matching catalog/options, not a day/GB count.
promo_code
bodyOptional
stringOptional promo, up to 100 bytes. Keep it identical between quote and purchase/renewal.
Default: ""

Request body

Replace YOUR_/FROM_ placeholders with values from the relevant catalog, quote or scope. Examples leave consent false; only approve a real operation intentionally.

request.json
{
    "proxy_ids": [
        "YOUR_PROXY_ID"
    ],
    "time_id": "FROM_RENEWAL_OPTIONS",
    "promo_code": ""
}

Request example

cURL
printf 'Authorization: Bearer %s\n' "$ARNPROXY_API_KEY" |
  curl --silent --show-error --header @- \
    --header 'Accept: application/json' \
    --connect-timeout 10 --max-time 30 \
    --request POST --header 'Content-Type: application/json' \
    --data-binary @request.json \
    'https://www.arnproxy.com/account/api/v1/renewals/quote'

Examples are not executed on this page. Keep the API key in a server-side environment variable; do not put real keys in URLs or browser code. Prepare request.json for POST examples.

Responses

200Success response
application/json
{
    "ok": true,
    "data": {
        "product_id": 5,
        "currency": "TRY",
        "proxy_ids": [
            12345
        ],
        "quantity": 1,
        "selection_hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "time_id": 101,
        "period": "7 days",
        "days": 7,
        "base_total": "10.00",
        "quantity_discount_amount": "0.00",
        "subtotal": "10.00",
        "promotion": {
            "code": "",
            "rate": "0.00",
            "amount": "0.00"
        },
        "total": "10.00",
        "total_minor": 1000,
        "lines": [
            {
                "location_id": 10,
                "country": "Example country",
                "quantity": 1,
                "base_unit_price": "10.0000",
                "unit_price": "10.0000",
                "quantity_discount_rate": "0.00",
                "total_minor": 1000,
                "total": "10.00"
            }
        ],
        "proxies": [
            {
                "id": 12345,
                "location_id": 10,
                "last_service_date": "2030-02-01",
                "projected_last_service_date": "2030-02-08",
                "total": "10.00",
                "total_minor": 1000
            }
        ],
        "discount_scope": "country",
        "timezone": "Europe/Istanbul",
        "estimate_only": true,
        "renewal_available": true,
        "provider_checked": false,
        "calculated_at": "2030-01-01T12:00:00+00:00"
    },
    "meta": {
        "request_id": "000000000000000000000001",
        "phase": "public_v1",
        "source": "arnproxy_records"
    }
}
Response fields and types
NameTypeDescription
okbooleanSuccess envelope flag; on false inspect error.code.
dataobjectOperation-specific result; examples are illustrative and synthetic.
data.product_idintegerLocal catalog location or product-type ID.
data.currencystringAccount transaction currency: TRY or USD.
data.proxy_idsarrayProxy IDs in the scope visible to this account.
data.proxy_ids[]integerProxy IDs in the scope visible to this account.
data.quantityintegerSelected or ordered proxy quantity.
data.selection_hashstringFreshness fingerprint to copy unchanged to the corresponding write/price confirmation.
data.time_idintegerLocal period/GB-plan record ID, not a day or GB count.
data.periodstringHuman-readable catalog period name.
data.daysintegerPlan duration in days, separate from a GB plan’s traffic amount.
data.base_totalstringMoney amount; preserve the returned string/integer representation for precision.
data.quantity_discount_amountstringOperation-specific quantity discount amount value; preserve its demonstrated type and consult the behavior notes.
data.subtotalstringMoney amount; preserve the returned string/integer representation for precision.
data.promotionobjectOperation-specific promotion value; preserve its demonstrated type and consult the behavior notes.
data.promotion.codestringOperation-specific code value; preserve its demonstrated type and consult the behavior notes.
data.promotion.ratestringOperation-specific rate value; preserve its demonstrated type and consult the behavior notes.
data.promotion.amountstringMoney amount; preserve the returned string/integer representation for precision.
data.totalstringMoney amount; preserve the returned string/integer representation for precision.
data.total_minorintegerInteger minor units: 1000 means 10.00 TRY/USD.
data.linesarrayOperation-specific lines value; preserve its demonstrated type and consult the behavior notes.
data.lines[]objectOperation-specific lines value; preserve its demonstrated type and consult the behavior notes.
data.lines[].location_idintegerLocal catalog location or product-type ID.
data.lines[].countrystringOperation-specific country value; preserve its demonstrated type and consult the behavior notes.
data.lines[].quantityintegerSelected or ordered proxy quantity.
data.lines[].base_unit_pricestringOperation-specific base unit price value; preserve its demonstrated type and consult the behavior notes.
data.lines[].unit_pricestringOperation-specific unit price value; preserve its demonstrated type and consult the behavior notes.
data.lines[].quantity_discount_ratestringOperation-specific quantity discount rate value; preserve its demonstrated type and consult the behavior notes.
data.lines[].total_minorintegerInteger minor units: 1000 means 10.00 TRY/USD.
data.lines[].totalstringMoney amount; preserve the returned string/integer representation for precision.
data.proxiesarrayOperation-specific proxies value; preserve its demonstrated type and consult the behavior notes.
data.proxies[]objectOperation-specific proxies value; preserve its demonstrated type and consult the behavior notes.
data.proxies[].idintegerRelevant ARNPROXY record ID; use it instead of the upstream internal ID.
data.proxies[].location_idintegerLocal catalog location or product-type ID.
data.proxies[].last_service_datestringLast service day: current, previous or projected by the quote. A projection does not renew.
data.proxies[].projected_last_service_datestringLast service day: current, previous or projected by the quote. A projection does not renew.
data.proxies[].totalstringMoney amount; preserve the returned string/integer representation for precision.
data.proxies[].total_minorintegerInteger minor units: 1000 means 10.00 TRY/USD.
data.discount_scopestringOperation-specific discount scope value; preserve its demonstrated type and consult the behavior notes.
data.timezonestringTimezone for related date fields; null means no verified timezone.
data.estimate_onlybooleanOperation-specific estimate only value; preserve its demonstrated type and consult the behavior notes.
data.renewal_availablebooleanAvailability under the result’s conditions/permissions, not a stock or provider guarantee.
data.provider_checkedbooleanA price/local result is not by itself a provider or stock guarantee.
data.calculated_atstringTimestamp in the API’s returned representation; example dates are synthetic.
metaobjectRequest correlation and data-source metadata.
meta.request_idstringThis HTTP request’s correlation ID, not an operation key or order ID.
meta.phasestringOperation-specific phase value; preserve its demonstrated type and consult the behavior notes.
meta.sourcestringData source; local records and a live provider lookup are different evidence.

Error response

HTTP 401 · INVALID_API_KEY
{
  "ok": false,
  "error": { "code": "INVALID_API_KEY" },
  "meta": { "request_id": "000000000000000000000001" }
}

Authentication and validation may reject a request before execution. Consult the error reference and retain request_id when contacting support. Never send keys or passwords. Errors & limits →

Behavior & important notes

  • Renewal uses existing website pricing and balance processing. Copy amount, days and selection hash from the same renewal_quote. It does not enable automatic renewal.
  • Proxies in one renewal request must share the same product type. Quantity discounts are calculated separately using each country’s selected quantity, not the combined country total.

Search the current language. Close with Esc