INTEGRITY Dokumentace

Omezování frekvence požadavků podle účtu

Ve výchozím nastavení uplatňuje GraphQL Analytics API limity rychlosti za uživatele nebo za token rozhraní API. Jak rostete a přidáváte další zóny a účty, veškerý váš analytický provoz soutěží o tuto jedinou kvótu vázanou na přihlašovací údaje.

Omezování frekvence požadavků podle účtu místo toho uplatňuje limity zvlášť pro každý účet a zónu. Každý účet a zóna má svůj vlastní nezávislý rozpočet, takže jeden uživatel nebo token může dotazovat mnoho prostředků najednou, aniž by vyčerpal jedinou sdílenou kvótu. Tento postup doporučujeme, pokud dotazujete analytická data napříč více zónami nebo účty.

Přínosy

Povolení omezování rychlosti podle účtu

S požadavky na stávající koncový bod rozhraní GraphQL API odesílejte následující hlavičku HTTP (https://api.cloudflare.com/client/v4/graphql):

X-Rate-Limit-Type: account-based

URL adresa koncového bodu a přihlašovací údaje zůstávají stejné. Požadavky bez této hlavičky nadále používají výchozí limity za uživatele nebo za token, takže tuto změnu můžete zavádět postupně.

Limity

Rozsah Výchozí limit
Každý účet 1 požadavek za sekundu (300 požadavků za 5minutové okno)
Každá zóna 1 požadavek za sekundu (300 požadavků za 5minutové okno)

Jediný accounts blok počítá jeden požadavek vůči odkazovanému účtu. Jediný zones blok počítá jeden požadavek vůči odkazované zóně; pokud je zones blok je vnořen do accounts blok, počítá se namísto toho vůči tomuto účtu.

Protože limity platí pro každý prostředek zvlášť, celková propustnost dostupná jednomu uživateli nebo tokenu roste s počtem účtů a zón, které dotazujete.

Požadavky na dotazování

Většina dotazů funguje beze změny. Pouze dotazy, které vybírají seznam nebo rozsah zón nahoře (viewer) je třeba upravit: tyto zóny vnořte do jednoho accounts blok. Upravené dotazy jsou platné v rámci obě modely omezování rychlosti.

Dotazování jedné zóny (beze změny):

{
  viewer {
    zones(filter: { zoneTag: "<ZONE_TAG>" }) {
      # ...
    }
  }
}

Dotazování jednoho účtu (beze změny):

{
  viewer {
    accounts(filter: { accountTag: "<ACCOUNT_TAG>" }) {
      # ...
    }
  }
}

Dotazování seznamu nebo rozsahu zón (vnořte je do nadřazeného účtu):

# Not supported: a list of zones at the viewer level
{
  viewer {
    zones(filter: { zoneTag_in: ["<ZONE_A>", "<ZONE_B>"] }) {
      # ...
    }
  }
}

# Supported: the same zones nested inside their account
{
  viewer {
    accounts(filter: { accountTag: "<ACCOUNT_TAG>" }) {
      zones(filter: { zoneTag_in: ["<ZONE_A>", "<ZONE_B>"] }) {
        # ...
      }
    }
  }
}

Totéž platí pro rozsahové filtry, jako je zoneTag_gt. Sémantika dotazu je totožná: potřebujete pouze account tag vlastnící zóny, který již máte.

Požádejte o vyšší limity

Pokud potřebujete vyšší než výchozí propustnost na účet nebo na zónu, kontaktujte svůj Cloudflare account team a požádejte o navýšení pro konkrétní účty a zóny, které dotazujete. Navýšení se v tomto modelu uplatňuje podle jednotlivých prostředků a projeví se rychle, bez nutnosti vydání nové verze.

Chyby omezení frekvence požadavků

Když je limit překročen, API vrátí chybu s extensions.code nastaveno na budget, s uvedením účtu nebo zóny, které byly omezeny:

{
  "data": null,
  "errors": [
    {
      "extensions": { "code": "budget", "timestamp": "2026-01-01T01:01:01Z" },
      "message": "Account <ACCOUNT_TAG> has exceeded its rate limit. Please try again after 5 minutes. Refer to this page for more details about rate limits: https://developers.cloudflare.com/analytics/graphql-api/limits/",
      "path": null
    }
  ]
}

Odpovídající chyba zóny hlásí Zone <ZONE_TAG> has exceeded its rate limit. Zkuste to znovu po uplynutí 5minutového okna, rozložte provoz mezi více prostředků nebo požádejte o vyšší limit.