← All posts

FourA Digest — Sep 25 to Oct 2, 2026

Standby servers now take over if our main ones stop answering, rate limits refuse only the excess, and Auto gives up sooner on sites that turn every exit away.

Highlights

Take one of our servers away and your next request lands on another. The API, the proxy port, the MCP server, sign-in and the site now run on standby servers too, and traffic moves over by itself. Rate limits also stopped punishing a small overshoot: you're served your allowance, and only the excess is refused.

What's New

Standby servers behind every door

If the main servers stop answering, your traffic moves to standby servers with nothing to change on your side. Same keys, same hosts, same proxy users.

A request that reaches a server which can't take it right now is passed to one that can, instead of coming back as an error. And your calls on the remaining servers don't slow down while it happens.

Rate limits trim, they don't lock out

Go a little over your plan's per-minute allowance on Single or Proxy Finder and you now get the allowance, with only the excess refused, because refused requests no longer count toward the minute. Retry-After says when the next one passes.

Retry too hard and you get a pause. Once the refusals in a minute go over twice your allowance, the answer is a 30-second wait marked cooldown: true, and since refusals during it aren't counted, it ends on its own even if your client keeps knocking. New proxy port connections follow the same rule: one that never became a tunnel doesn't count toward your minute.

import time
import requests

def single(url, key, tries=5):
    for _ in range(tries):
        r = requests.post(
            "https://api.foura.ai/api/single",
            headers={"X-API-Key": key},
            json={"url": url},
        )
        if r.headers.get("X-FourA-Limit") != "plan_limit_rate":
            return r
        # same header on the 30-second pause; the body adds "cooldown": true
        time.sleep(int(r.headers.get("Retry-After", "1")))
    return r

Every field is on the rate limits page.

Auto gives up sooner on sites that say no to everyone

When a site turns away every exit Auto tries, Browser included, the call now ends after a few attempts rather than working through your whole budget. On a site Proxy Finder has served before, Auto first asks Proxy Finder for the page by your own validate rule, and that search costs nothing when it comes back empty.

Two more changes keep Auto inside what you gave it. A call waiting for a busy session, or for another request already working on the same site, now ends within your timeout_ms with a time budget exhausted error, so you can retry or raise the budget (common issues has the details). And a JSON page comes back in data as text whichever route fetched it, so one parser handles every call.

None of this changes what Auto is for. It finds the route; once it has, replay the session it returns on /api/single or /api/browser and point your volume there.

Pages that need one more step

Browser now waits out one more kind of holding page, the short one that runs a script and then reloads itself into the real content, and returns the page it leads to. Auto hands such pages to Browser on the same exit, so the call ends with the site's content.

Some Amazon product pages first ask you to click "Continue shopping". Single and Browser now press that button on the same exit and return the product page. Calls through Proxy Finder and Auto get the same.

Browser also follows a page that sends itself to another address after it loads, rather than waiting out your timeout. Cookies named __Secure- or __Host- that you send back now get the attributes their prefix requires, so the page sees your whole saved session.

Proxy Finder, and two clearer errors

Plain-HTTP requests through Proxy Finder now open a direct connection to the site first, the way HTTPS always has. A proxy that answers with a page of its own, or hands unrelated sites the same body, is skipped and your request moves on to the next one.

Pass your own proxy URL to Single or Browser with a hostname that doesn't resolve, and the answer is status 0 with an error naming the host, the same as for a target. A request aimed at api.foura.ai or eu.api.foura.ai itself gets a 400 at once, before anything is fetched or charged. The error points at the usual cause: a link resolved against the API URL instead of the page it came from.

Dashboard, sign-up and billing

  • A sign-up started on foura.ai now ends in your Dashboard, where Overview walks you to a first result: create an API key, then send a request from a terminal or the Playground. On a phone the steps start in the Playground, and the proxy port gets its own steps built around a proxy user.
  • On a phone or a narrow window, the Playground scrolls the response into view as soon as it arrives.
  • Usage by Domain and by Client IP ranks every row in the period before splitting it into pages, so page one holds the real top entries.
  • Overview cards follow a period you pick while they're still loading, the period dialog opens on the one you're viewing, and the sidebar has a Docs link under Tools.
  • Invoices we issue by hand now show up on the Billing page beside the automatic ones. An invoice carrying EU VAT uses the rate in force on the day of the sale, changes announced in advance included.

Each of these has its own entry on updates.foura.ai.

Under the Hood

The proxy port keeps a live count of your open tunnels, and a tunnel that ended when one of our instances restarted drops out of it within seconds. So the concurrency your plan allows is the concurrency you get.

The best failover is the one you only hear about in a digest.