Naar de inhoud

MigratiegidsenVanaf Cloudflare AI Gateway

Weg van Cloudflare AI Gateway, als niets je daartoe dwingt

Er is hier geen overname, geen onderhoudsmodus en geen deprecation-melding. AI Gateway is algemeen beschikbaar, werd in 2026 actief doorontwikkeld en de kern is gratis op een account dat je al hebt — dus de vraag die deze pagina beantwoordt, is niet hoe je overstapt maar of je dat moet doen. Ze begint met drie getallen die je op je eigen gateway kunt meten, waarvan er twee zeggen: blijf.

INFRO-accounts zijn selfservice. De catalogus, de documentatie en het API-contract zijn openbaar, de gateway is uitgerold, en alles na v1 is gemarkeerd als Later. Plannen en proefperiode

Hoe het ervoor staat

Niets dwingt dit af

AI Gateway is algemeen beschikbaar en werd in 2026 actief doorontwikkeld — uitgavenlimieten in juni, User Insights in augustus. De kern is gratis op elk Cloudflare-account. Als een pagina je ooit anders vertelt, controleer het dan tegen de changelog in plaats van het te geloven.

De overlap is groter dan hij was

Beide producten zitten in het verzoekpad, prijzen elk verzoek, wijzen uitgaven toe aan een gebruiker of team, weigeren een verzoek bij een dollarplafond en exporteren OpenTelemetry. Een jaar geleden was deze vergelijking gateway tegenover control plane. Dat is het niet meer.

Eén vraag beslist

Of iemand het kostenbedrag moet verdedigen tegenover iemand die het niet heeft opgesteld. Als niemand dat hoeft, is de gratis gateway het juiste gereedschap en moet deze gids hier eindigen. Als iemand dat wel moet, gaat de rest van de pagina daarover.

Elk ervan ligt op je eigen gateway of in je eigen agenda, en elk levert een antwoord op in plaats van een overweging. Twee van de drie beslechten de keuze in het voordeel van Cloudflare, en dat is de eerlijke verdeling — de meeste teams die dit lezen, moeten houden wat ze hebben.

  1. Je cachehitpercentage

    Analytics op je gateway, over een maand die er normaal uitzag. Cloudflare rapporteert het per gateway.

    Dit is degene die de beslissing in zijn eentje kan beëindigen. INFRO heeft ook een responscache met exacte overeenkomst voor chat completions, maar die begint leeg, staat uit totdat je hem inschakelt, is per project en sleutelomgeving gesleuteld en slaat standaard alleen deterministische verzoeken op (temperature 0 of een seed). Bereken welk deel van je hits van verzoeken kwam die daarin passen; de rest wordt na een overstap een provideraanroep, gefactureerd door je provider. Als dat deel groot is, is blijven het betere antwoord en weegt geen feature op de rest van deze pagina daartegen op.

  2. Of Unified Billing aan staat

    De instellingen van je gateway. Als Cloudflare je inference inkoopt, staat het hier.

    Als het aan staat, heb je geen configuratieprobleem maar een inkoopprobleem. INFRO koopt nooit inference in, dus overstappen betekent een eigen account openen bij elke provider die je gebruikt, wat zo lang duurt als jouw leveranciersonboarding duurt. Zoek het nu uit en niet in week drie.

  3. Hoe vaak iemand buiten engineering naar het getal vraagt

    Geen dashboard. Je laatste kwartaal aan gesprekken met finance, inkoop en over prijzen.

    Als het antwoord nooit is, is de gratis gateway het juiste gereedschap en moet deze gids hier eindigen — dat is geen beleefde uitgang maar het juiste advies. Een control plane verdient een abonnement op het punt waar een kostenbedrag moet worden verdedigd tegenover iemand die het niet heeft opgesteld, en niet eerder.

Deze sectie staat bewust boven de verschillen, en anders dan de andere gidsen in deze reeks wijst ze je niet naar een derde product. Ze wijst je naar het product dat je al draait.

Dit onderdeel staat bewust boven de mapping. Cloudflare AI Gateway is een goed product dat niets kost om te draaien, en de meest voorkomende juiste uitkomst van het lezen van deze pagina is dat je hem sluit en houdt wat je hebt. Er is hier geen overname, geen onderhoudsmodus en geen deprecation-bericht dat je opjaagt — de redenen hieronder zijn geen verzachters vóór een weerlegging, ze zijn het antwoord zodra een ervan waar is.

De overstap is het overwegen waard wanneer het kostenbedrag een publiek heeft: finance die vraagt waarom de modelrekening verschoof, een klantgerichte marge die je moet halen, meerdere teams die providers delen en het oneens zijn over wie wat uitgaf. Dat is het punt waarop een getal dat niemand tegen een factuur heeft gecontroleerd niet meer volstaat, en het is de enige bewering op deze pagina die de eigen documentatie van Cloudflare niet al beantwoordt.

Blijf waar je bent als

  • De gateway doet zijn werk en niemand stelt vragen over het getal. Een control plane verdient zijn prijs wanneer iemand buiten engineering op het kostenbedrag moet handelen. Als dat niet is gebeurd, heeft hij het nog niet verdiend.
  • Je hebt guardrails of DLP nodig op het verzoekpad. Cloudflare scant de prompt en het antwoord op schadelijke inhoud en kan gevoelige data blokkeren of markeren voordat die een provider bereikt. De guardrails van INFRO zijn patroongebaseerd (PII, geheimen, je termen, alleen chat completions); de guardrails voor veiligheidscategorieën van Cloudflare hebben geen equivalent.
  • Je draait Workers AI, of Cloudflare koopt je inference in via Unified Billing. INFRO beheert zelf geen inference en koopt er nooit in: vóór een overstap zou je eigen accounts bij elke provider nodig hebben, wat een commerciële stap is en geen configuratiestap.
  • Je routering hangt af van voorwaardelijke vertakkingen of procentuele splitsingen. De routes van INFRO zijn doelen op prioriteit of gewicht over je eigen verbindingen; een if/else op verzoekinhoud heeft geen equivalent en zou naar je applicatie moeten verhuizen.
  • Responscaching draagt echte belasting op verzoeken die INFRO niet zou cachen. De cache van INFRO matcht alleen exacte chat completion-verzoeken, per project en sleutelomgeving, en standaard alleen deterministische (temperature 0 of een seed); elk verzoek daarbuiten gaat na een overstap opnieuw naar je provider.
  • Op één leverancier zitten is het punt. Eén factuur, één set accountrollen, één supportrelatie is een legitieme reden om een platformgateway te kiezen, en een tweede leverancier toevoegen maakt dat ongedaan.

Als meer dan één hiervan klopt, sluit dan deze pagina. We verliezen liever de evaluatie dan dat we hem winnen en zes weken later het verkeerde antwoord blijken.

De objecten van Cloudflare tegenover de onze, gelezen uit hun openbare documentatie op 20 september 2026 en getoetst aan wat de gateway werkelijk implementeert. Vijf rijen zeggen dat wij niets hebben; die zijn het eerst het lezen waard.

Cloudflare AI GatewayWat het daar doetIn INFRO
GatewayandersEen benoemd object op je Cloudflare-account. Het bezit de logs, de cache, de ratelimieten en de uitgavenregels; een tweede omgeving betekent een tweede gateway.Er is geen gatewayobject. Een organisatie bezit policy en facturering; projecten, sleutels en de omgeving van een sleutel bakenen het af. Een tweede omgeving is een eigenschap van de sleutel en geen tweede endpoint.
`/compat/chat/completions`zelfde vormOpenAI-compatibele chat onder https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/compat, met modellen aangesproken als provider/model.OpenAI-compatibele chat onder https://api.infro.io/v1, met modellen aangesproken als vendor/model. Dezelfde client, dezelfde verzoek- en antwoordvorm, inclusief streaming, toolaanroepen en gestructureerde output.
Providerspecifieke padenandersEen pad per provider dat doorstuurt naar de eigen API van die provider, zodat elke provider zijn eigen verzoekvorm houdt.Eén genormaliseerde vorm per modaliteit: /chat/completions, /images/generations, /images/edits, /audio/speech, /audio/transcriptions en /videos, dat een asynchrone job teruggeeft. Provider-eigen API's worden niet geproxyt — een aanroep geschreven tegen de Messages API van Anthropic of generateContent van Gemini moet naar de compatibele vorm verhuizen.
Opgeslagen providersleutelsandersSleutels per gateway met aliassen, per verzoek gekozen met een cf-aig-byok-alias-header, en gebruikt vóór Unified Billing als beide aanwezig zijn.Verbindingen die per organisatie worden bijgehouden, verzegeld, met zichtbare gezondheid en laatste fout. Welke een verzoek bedient wordt bepaald door de omgeving van de sleutel en de route, niet door een header die de aanroeper meestuurt.
Unified BillingnietsCloudflare koopt de inference in bij de provider en factureert je daarvoor, met een vergoeding op aangekochte credits.Niets, bewust. INFRO koopt nooit inference in en neemt nooit een deel van de modeluitgaven; je providers factureren je rechtstreeks tegen je eigen tarieven. Als Cloudflare nu de jouwe inkoopt, heb je je eigen provideraccounts nodig voordat een overstap mogelijk is.
`cf-aig-metadata`andersTot vijf string-, getal- of booleaanse items per verzoek, als header verzonden, zichtbaar in logs en bruikbaar als dimensie voor een uitgavenlimiet.Een metadata-object in de verzoekbody, nooit upstream doorgestuurd: user_id, session_id en een willekeurig aantal sleutels onder tags, gefilterd op het verzoeklog als tag.<key>. Overal waar je de header nu instelt, is dat een wijziging.
`cf-aig-custom-cost`andersJe onderhandelde input-, output- en cachetarieven, per verzoek als header meegestuurd, die de openbare modelkosten voor die aanroep overschrijven.Tarieven opgeslagen in de console per model en optioneel per provider, toegepast op elk verzoek dat overeenkomt, met usage.price_source in het antwoord dat zegt welk tarief het getal opleverde. Inbegrepen vanaf het Team-plan.
Uitgavenlimietenzelfde vormDollarbudgetten over een rollend of vast venster, afgebakend op model, provider of aangepaste metadata, beoordeeld voordat de provider wordt aangeroepen, met 429 bij het plafond of terugvallen op een goedkoper model. Tot 20 regels per gateway.Budgetten op organisatie, project, lid en sleutel, beoordeeld voordat de provider wordt aangeroepen, met 402 budget_exceeded en meldingsdrempels die je instelt. Gekoppeld aan het objectmodel en niet aan metadata, zodat het plafond van een project niet afhangt van een aanroeper die een header onthoudt.
Dynamische routeringandersEen routegraaf samengesteld in een visuele editor of als JSON — voorwaardelijke vertakkingen op de verzoekbody, headers of metadata, procentuele splitsingen, rate- en budgetknooppunten, gepubliceerd zonder deploy. Beschikbaar op het OpenAI-compatibele endpoint.Benoemde routes met doelen op prioriteit of gewicht over je eigen verbindingen, met gezondheidscontrole en failover vóór de eerste byte van het antwoord. Er is geen voorwaardelijke vertakking op verzoekinhoud; een if/else-route moet naar je applicatie verhuizen.
`cf-aig-max-attempts`andersTot vijf nieuwe pogingen met een instelbare vertraging en constante, lineaire of exponentiële backoff, per verzoek ingesteld en werkend met elk providerendpoint.Nieuwe pogingen en failover zijn routepolicy en geen headers per verzoek, dus het gedrag wordt één keer in de console ingesteld en geldt voor elke aanroeper van die route. Een verzoek dat op elk doel mislukt, rapporteert elke poging in zijn trace.
CachingandersAntwoorden uit de cache van Cloudflare in plaats van van de provider, voor latentie en voor kosten.Een responscache met exacte overeenkomst voor chat completions, standaard uit en per organisatie of project in te schakelen, met een cache-bodyveld per verzoek of X-INFRO-Cache-headers waar Cloudflare cf-aig-*-headers gebruikt. Het cachet geen andere endpoints, en het is per project en sleutelomgeving gesleuteld, zodat er niets tussen die wordt gedeeld.
Guardrails en DLPandersGuardrails beoordelen de prompt en het antwoord aan de hand van veiligheidscategorieën; DLP scant beide op gevoelige informatie en vervangt het antwoord door een 400 of markeert de bevinding op een cf-aig-dlp-header. Geen van beide featurepagina's zegt hoe ze worden gefactureerd, dus we zeggen het niet.Patroongebaseerde guardrails op chat completions: PII, API-sleutels en je eigen termen blokkeren, redigeren of markeren. Geen classifiers voor veiligheidscategorieën.
Workers AInietsDe eigen gehoste modellen van Cloudflare, aangeroepen via dezelfde gateway als providers van derden.Niets. INFRO beheert zelf geen inference — het routeert naar accounts die je bij providers hebt. Een workload op Workers AI heeft hier geen bestemming.
LogsandersPrompts, antwoorden, tokens, kosten, duur en user agent, tegen een opslaglimiet per gateway. Wanneer de limiet is bereikt, worden nieuwe logs niet meer opgeslagen totdat oudere zijn verwijderd, of automatisch verwijderen is ingeschakeld om de oudste te laten vallen.Verzoekmetadata — status, model, provider, route, tokens, latentie, geschatte kosten — bewaard gedurende 7, 14, 30 of 90 dagen afhankelijk van het plan. Het vastleggen van prompts en completions staat standaard uit en heeft een eigen, korter venster.
OpenTelemetry-exportzelfde vormSpans naar je eigen collector volgens de GenAI semantic conventions, met gen_ai.usage.cost en eventuele aangepaste metadata als spanattributen.Spans vanuit het verzoekpad naar je eigen collector gestuurd, met het endpoint en de headers ingesteld in de console. Inbegrepen vanaf het Team-plan.

Onze lezing van de gepubliceerde documentatie van Cloudflare, geen proefperiode of benchmark. Hun product beweegt snel — uitgavenlimieten kwamen in juni 2026 en User Insights in augustus — dus controleer elke rij die voor jou iets beslist tegen hun changelog in plaats van tegen deze pagina. Elke bron en de datum waarop we die openden, staat onderaan.

Twee argumenten voor de verbinding, en de model-ID behoudt zijn vorm. Het werk zit in de headers: sommige worden een veld in de body, en de retryheaders kunnen nergens heen, omdat retries hier routebeleid zijn en niet iets wat een aanroeper meestuurt.

Voor · Cloudflare AI Gateway

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.CF_API_TOKEN,
  baseURL:
    `https://gateway.ai.cloudflare.com/v1/${process.env.CF_ACCOUNT_ID}` +
    `/${process.env.CF_GATEWAY_ID}/compat`,
});

const completion = await client.chat.completions.create(
  {
    model: "anthropic/claude-opus-5",
    messages,
  },
  {
    headers: {
      "cf-aig-metadata": JSON.stringify({
        user_id: "user_8f21",
        feature: "summarizer",
      }),
      "cf-aig-max-attempts": "3",
    },
  },
);

Na · INFRO

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.INFRO_API_KEY,
  baseURL: "https://api.infro.io/v1",
});

const completion = await client.chat.completions.create({
  // The model id keeps its shape: vendor, slash, model.
  model: "anthropic/claude-opus-5",
  messages,
  // Annotations move out of headers and into the body. Recorded on the
  // request, never forwarded upstream, and ignored by any OpenAI-compatible
  // backend that does not know the field — so the same call still runs
  // elsewhere.
  metadata: {
    user_id: "user_8f21",
    tags: { feature: "summarizer" },
  },
});
// Retries and failover are not here. They are route policy, set once in the
// console, so cf-aig-max-attempts has nothing to become.

De basis-URL en de sleutel

https://api.infro.io/v1, met een INFRO-gatewaysleutel in de standaard Authorization: Bearer-header — het zijn dus de argumenten baseURL en apiKey die je client al heeft. Het account-ID en gateway-ID in de Cloudflare-URL hebben geen equivalent: een INFRO-sleutel identificeert al de organisatie, het project en de omgeving waartoe hij behoort.

Het model-ID verandert niet van vorm

Beide spreken modellen aan als vendor, schuine streep, model. De ID's zelf moeten nog worden gecontroleerd — GET /v1/models toont precies wat je sleutel kan aanroepen, en dat is wat je eigen gekoppelde accounts bedienen, en een model dat geen verbinding dekt geeft 503 no_provider_connected met de naam van de te koppelen provider in plaats van vaag te falen.

De headers verdwijnen

cf-aig-metadata wordt het metadata-object in de body: user_id, session_id en al het andere onder tags. cf-aig-max-attempts, cf-aig-retry-delay en cf-aig-backoff worden niets, omdat nieuwe pogingen en failover op de route worden geconfigureerd en niet per verzoek worden gestuurd. cf-aig-custom-cost verhuist één keer naar de console, en cf-aig-byok-alias wordt vervangen door de omgeving van de sleutel.

De overstap hoeft geen harde omschakeling te zijn. Beide gateways zijn gewone HTTPS-endpoints waar een OpenAI-compatibele client naar kan wijzen, dus één service kan hier draaien terwijl al het andere blijft waar het is, en de twee verzoeklogs kun je een week naast elkaar lezen. Zo controleer je ook het deel van deze pagina dat je het minst moet vertrouwen — of de twee producten het eens zijn over wat een verzoek kostte — en dat is de moeite waard vóór de beslissing in plaats van erna.

Vier dingen, en de lijst is bewust kort. Uitgavenlimieten, toewijzing per identiteit, eigen tarieven en OpenTelemetry-export heeft Cloudflare ook — dit is wat overblijft na de overlap.

De schatting wordt gecontroleerd tegen de eigen facturering van de provider
In de documentatie over uitgavenlimieten van Cloudflare staat dat kostenregistratie een best-effortschatting is op basis van tokenaantallen en modelprijzen, en dat je voor exacte factuurbedragen het dashboard van je provider moet raadplegen. Dat is een juiste beschrijving van wat een gateway zelf weet, en het getal per verzoek van INFRO is een schatting op identieke voorwaarden. Wat verschilt is de stap erna: een dagelijkse run leest je eigen OpenAI- en Anthropic-kosten-API's met een aparte admin-credential die je bewust toekent, slaat het gerapporteerde bedrag naast de schatting op en rapporteert het verschil. Twee providers, op het Business-plan — een provider zonder adapter toont geen verschil in plaats van een verschil van nul, het endpoint van Anthropic sluit Priority Tier uit, en Bedrock, Vertex en Azure houden hun kosten in de facturering van de omringende cloud.
Je onderhandelde tarieven staan in de control plane, niet in een header
Beide producten kunnen prijzen tegen de tarieven die je contracten werkelijk hebben. Bij Cloudflare reizen ze per verzoek mee in cf-aig-custom-cost, wat betekent dat elke dienst die een model aanroept een kopie van je commerciële voorwaarden heeft en heronderhandelen een deploy over al die diensten is. Hier worden ze één keer ingevoerd, per model en optioneel per provider, door wie het contract beheert — en usage.price_source bij elk verzoek zegt of het getal uit jouw tarief kwam, jouw tarief voor die provider of het gepubliceerde tarief van de leverancier. Inbegrepen vanaf het Team-plan.
De eenheid is een organisatie in plaats van een gateway
Een Cloudflare-gateway wordt geconfigureerd door wie de Cloudflare-accountrol heeft, en identiteit per verzoek komt binnen als aangepaste metadata of vanuit Access. INFRO heeft organisaties, projecten, omgevingen en sleutels met een eigen scope, vijf rollen, modelallowlists op niveau van organisatie, project en sleutel, en een auditlog van wie welke policy wanneer wijzigde — alles op het instapplan. Het doet ertoe op het punt waar meerdere teams providers delen en de vraag wordt welk team dit model mag aanroepen en wie dat goedkeurde. Directory-SSO en SCIM zijn inbegrepen vanaf het Business-plan.
Een lange render is een job, geen verzoek dat openblijft
Videogeneratie wordt ingediend met POST /v1/videos en geeft een job terug die je leest met GET /v1/jobs/{id} of ontvangt via een ondertekende webhook, en de afgeronde media worden opnieuw gehost achter een ondertekende, verlopende URL zodat ze het bewaarvenster van de provider zelf overleven. Het wordt precies als een chat completion gemeten en toegewezen, wat telt voor een mediazwaar product: de uitgaven die het moeilijkst te zien zijn, zijn meestal de uitgaven die niet de vorm van een token hebben.

Wat niet meekomt

Er is geen importtool, en het laatste punt op deze lijst bepaalt de planning. Lees het voordat je je aan een datum vastlegt.

  • Je logs. Er is geen importer en er is er geen gepland. Exporteer wat je nodig hebt uit de gateway voordat je er geen verkeer meer naartoe stuurt — en bedenk dat het log een opslaglimiet is en geen tijdvenster, dus wat er staat kan al korter zijn dan je denkt.
  • Gecachete antwoorden. Items in de cache van een ander product verhuizen niet; de cache van INFRO begint leeg en vult zich met je eigen verkeer, en matcht alleen exacte verzoeken, nooit vergelijkbare.
  • Guardrailpolicies voor veiligheidscategorieën. Daar is geen plek voor: de guardrails van INFRO matchen patronen (PII, geheimen en je eigen termen) en classificeren niets.
  • Workers AI-modellen. INFRO routeert naar provideraccounts die je hebt en beheert zelf geen inference, dus een workload op de eigen modellen van Cloudflare heeft geen bestemming.
  • Dynamische routegrafen. Doelen op prioriteit en gewicht nemen een fallbackketen mee, maar voorwaardelijke vertakkingen en procentuele splitsingen niet — die moeten in je applicatie opnieuw worden gebouwd of achterblijven.
  • Unified Billing. Als Cloudflare vandaag je inference inkoopt, heb je eerst eigen accounts bij elke provider nodig. Dat is een commerciële stap met een eigen doorlooptijd, geen configuratiewijziging, en het is het enige op deze lijst dat een overstap weken kan ophouden.

Als het kostengetal een publiek heeft

Dat is het geval waarvoor dit product gebouwd is, en het is het enige op deze pagina dat de eigen documentatie van Cloudflare niet al beantwoordt. Het API-contract is volledig gepubliceerd, inclusief de delen die nog niet bestaan, zodat je kunt beslissen voordat je iets schrijft. Of vertel ons wat je draait — als het antwoord is dat je op je huidige gateway moet blijven, dan is dat het antwoord dat je krijgt.

Bronnen

Elke uitspraak op deze pagina over Cloudflare komt uit een van deze bronnen, met de datum waarop we die lazen. Niets is afgeleid uit een proefperiode, een benchmark of een gesprek — en waar een pagina iets niet uitsloot, zegt de gids dat in plaats van te gokken.