Skip to content

Proxy for API Requests: A Static IP for Scheduled Data Sync

Give every scheduled job one fixed IP that APIs can allowlist — and that doesn't share its rate limit with anything else.

Why scheduled API jobs need a fixed IP

APIs increasingly tie access to the caller's IP. Stripe lets you restrict a key to specific IPv4 addresses — the approach it suggests when 'your servers have fixed IP addresses' — and its advanced policies can block residential proxies, public proxies, VPNs and Tor. A job on a laptop, a serverless function or a rotating proxy has no fixed address to allowlist.

CI is no help here: GitHub advises against using the GitHub-hosted runner IP ranges as allowlists because there are so many of them, and recommends larger runners with static IP ranges or self-hosted runners instead.

Rate limits are often counted per IP too. GitHub's REST API allows 60 unauthenticated requests per hour per originating IP and tells you when to retry with retry-after or x-ratelimit-reset. Jobs behind one office or NAT address share that budget; a static datacenter IP per job keeps limits and allowlist entries separate.

Recommended setup for API sync

Scroll horizontally with the arrow keys to read all content.

Recommended setup for API sync
CriterionChooseWhy
ProductStatic datacenter proxyOne fixed IP for the whole term, priced per IP — easy to allowlist
How many IPsOne per job or per API accountSeparate rate limits and separate allowlist entries
CountryClose to the API, or where it expects callers: US, CA, GB, DE, NL, JP, KR or SGSome APIs filter by country as well as by IP
ProtocolHTTPWorks with httpx, requests, curl and most HTTP clients
IP changesNever during the term — renew before it endsAn allowlist breaks when the IP changes
Residential proxiesNot for API callsSome APIs let account owners block residential proxy traffic

The button below opens Static Datacenter Proxies with the AI and automation use case. Choose Region, Term, Protocol and Quantity (up to 100 IPs at a time) before you pay.

Which Proxy302 proxy to buy

Scroll horizontally with the arrow keys to read all content.

Which Proxy302 proxy to buy
CriterionStatic ISPRotating residentialDatacenter
What you getA dedicated home-broadband IP that stays yours for the whole termReal household IPs: rotating exits, or a sticky session in a chosen country or cityFast fixed server IPs, HTTP and SOCKS5
PricePer IP and term — live price at checkoutBudget US$1.50/GB (US$1.35/GB at 100 GB); Premium US$5.00/GBPer IP and term — the cheapest per IP
Best for API syncPartner portals that expect a home-broadband IPCollecting from public sites that block serversAllowlisted APIs, cron jobs, CI and webhooks

Prices in US dollars. Top up your wallet once and pay any line from it. Nothing renews automatically — renew in My assets to keep an IP.

Set up a static IP for API jobs in 5 steps

  1. Choose the IPs

    The button below opens Static Datacenter Proxies (Per IP and term) with the AI and automation use case. Pick the Region, choose a Term and set Protocol to HTTP. Set Quantity to the number of IPs you need (one for each job or API account, up to 100 at a time). Click Review cost and generate.

  2. Allowlist the IP

    In My assets, note each IP and add it to the API's allowlist or access policy. Keep the old server IP until the first run succeeds.

  3. Set the proxy for the job

    In My assets, Copy gives host:port:user:password. Store PROXY_URL = http://USER:PASS@HOST:PORT and the API token as secrets in your scheduler or CI.

  4. Run the job on a schedule

    Use the code below from cron, Task Scheduler or CI. It pages through the API, honours Retry-After on 429 and stops on the first empty page.

    Expected result A line such as 'synced N rows from M pages', and the API sees the proxy's IP.

  5. Renew before the term ends

    Auto-renew isn't available yet, so renew the IP in My assets before it expires to keep the same address on the allowlist.

Paginated API sync through a static IP (Python httpx)

Scroll horizontally with the arrow keys to read all content.

# pip install httpx   then schedule it, e.g. cron:  */30 * * * *  python sync.py
import os
import time
import httpx

API = "https://api.example.com/v1/orders"
proxy = os.environ["PROXY_URL"]  # static datacenter IP: http://USER:PASS@HOST:PORT (allowlist this IP)
headers = {"Authorization": f"Bearer {os.environ['API_TOKEN']}"}

rows, page, waits = [], 1, 0
with httpx.Client(proxy=proxy, headers=headers, timeout=30) as client:
    while True:
        r = client.get(API, params={"page": page, "per_page": 100})
        if r.status_code == 429 and waits < 5:  # after 5 waits in a row, fail the run instead of looping
            waits += 1
            retry_after = r.headers.get("Retry-After", "")
            time.sleep(int(retry_after) if retry_after.isdigit() else 60)
            continue  # ask for the same page again
        r.raise_for_status()
        waits = 0
        batch = r.json()
        if not batch:
            break
        rows.extend(batch)
        page += 1
print(f"synced {len(rows)} rows from {page - 1} pages")

Checked on 2026-10-18 (httpx 0.28.1) against a local paginated API that answered 429 with Retry-After once: the job waited, re-requested the same page and synced all 5 rows from 3 pages; against an endpoint that kept answering 429 it gave up after five waits and exited with an error.

Quick fixes

403 from the API after switching to the proxy

Check Is the proxy's IP on the API's allowlist or access policy?

Fix Add the IP shown in My assets; remove the old server IP once runs succeed.

429 Too Many Requests

Check Do you honour Retry-After or x-ratelimit-reset? Are several jobs on one IP?

Fix Wait as the API asks, and give heavy jobs their own IP.

The job broke after a month

Check Did the IP's term end?

Fix Renew in My assets before expiry; auto-renew isn't available yet.

Works locally, fails in CI

Check Are PROXY_URL and the token available as CI secrets? Is outbound traffic to the proxy port allowed?

Fix Add the secrets to the pipeline and allow outbound connections to the proxy host and port.

API proxy FAQ

Why use a proxy for API requests?

To give scheduled jobs a fixed source IP that APIs can allowlist, and to keep each job's rate limit separate from your office and other jobs.

Can I get a static IP for API allowlisting?

Yes. A static datacenter IP stays the same for the whole term; renew before it ends to keep it.

Residential or datacenter for API calls?

Datacenter. Rotating residential IPs change, and some APIs, Stripe among them, let account owners block residential proxy traffic.

Do GitHub Actions jobs need this?

If an API allowlists IPs, yes: GitHub advises against allowlisting its hosted-runner ranges and suggests static-IP larger runners or self-hosted runners. Routing the job through a static datacenter IP is another way to get one fixed address.

Which countries are available?

Static datacenter IPs are listed for the US, Canada, the UK, Germany, the Netherlands, Japan, South Korea and Singapore, and stock varies by country.

Sources and verification

6
  1. Stripe docs — API keys: access policies (IP addresses, residential proxies)

    Official documentation · Checked:

  2. GitHub docs — Rate limits for the REST API

    Official documentation · Checked:

  3. GitHub docs — GitHub-hosted runners: IP addresses and allowlists

    Official documentation · Checked:

  4. Proxy302 pricing

    Product observation · Checked:

    Rotating residential per-GB prices as published on the pricing page and used by the console (Budget US$1.50/GB, US$1.35/GB in the 100 GB package; Premium US$5.00/GB; 1 PTC = US$1). Static ISP and datacenter IPs are quoted live per IP and term.

  5. Proxy302 console — Static Datacenter Proxies

    Product observation · Checked:

    Option names, billing modes and limits as shown in the live console on 2026-10-18: Line (Premium/Budget), Exit mode, Region, State, City, Protocol (HTTP/SOCKS5), Quantity (1–500), Term, Auto-renew IP (not yet available), My assets → Copy / Rotate / Renew / Copy for AI. Rotating residential connects through proxy.proxy302.com:2222 (HTTP) and :3333 (SOCKS5). Static datacenter IPs were sold in 8 countries on 2026-10-18 (read-only check of the production catalogue): US, CA, GB, DE, NL, JP, KR, SG.

  6. Local proxy fixture run

    Local example · Checked:

    The code block was executed on 2026-10-18 against a local password-protected HTTP proxy that answers 407 without valid credentials; httpx 0.28.1 against a local paginated API that requires a bearer token and answers page 2 once with 429 and Retry-After: 1: the job waited, re-requested the same page and synced all 5 rows from 3 pages, sending the token on every request. Against an endpoint that kept answering 429 with Retry-After: 0, the job retried five times and then exited with an HTTP error.

    A local check proves the configuration syntax and authentication path, not access to any specific website, country or platform.

Ready to connect?

Create an account, top up once and pick rotating residential, static ISP or datacenter. Rotating residential exits cover 195+ countries and regions.