Integration Patterns
Enable Argo + Tiered Cache
async function enableOptimalPerformance(client: Cloudflare, zoneId: string) {
await Promise.all([
client.argo.smartRouting.edit({ zone_id: zoneId, value: 'on' }),
client.argo.tieredCaching.edit({ zone_id: zoneId, value: 'on' }),
])
}
Flow: Visitor → Edge (Lower-Tier) → [Cache Miss] → Upper-Tier → [Cache Miss + Argo] → Origin
Impact: Argo ~30% latency reduction + Tiered Cache 50-80% origin offload
Usage Analytics (GraphQL)
query ArgoAnalytics($zoneTag: string!) {
viewer {
zones(filter: { zoneTag: $zoneTag }) {
httpRequestsAdaptiveGroups(limit: 1000) {
sum {
argoBytes
bytes
}
}
}
}
}
Billing: ~$0.10/GB. DDoS-mitigated and WAF-blocked traffic NOT charged.
Spectrum TCP Integration
Enable Argo for non-HTTP traffic (databases, game servers, IoT):
// Update existing app
await client.spectrum.apps.update(appId, { zone_id: zoneId, argo_smart_routing: true })
// Create new app with Argo
await client.spectrum.apps.create({
zone_id: zoneId,
dns: { type: 'CNAME', name: 'tcp.example.com' },
origin_direct: ['tcp://origin.example.com:3306'],
protocol: 'tcp/3306',
argo_smart_routing: true,
})
Use cases: MySQL/PostgreSQL (3306/5432), game servers, MQTT (1883), SSH (22)
Pre-Flight Validation
async function validateArgoEligibility(client: Cloudflare, zoneId: string) {
const status = await client.argo.smartRouting.get({ zone_id: zoneId })
const zone = await client.zones.get({ zone_id: zoneId })
const issues: string[] = []
if (!status.editable) issues.push('Zone not editable')
if (['free', 'pro'].includes(zone.plan.legacy_id)) issues.push('Requires Business+ plan')
if (zone.status !== 'active') issues.push('Zone not active')
return { canEnable: issues.length === 0, issues }
}
Post-Enable Verification
async function verifyArgoEnabled(client: Cloudflare, zoneId: string): Promise<boolean> {
await new Promise((r) => setTimeout(r, 2000)) // Wait for propagation
const status = await client.argo.smartRouting.get({ zone_id: zoneId })
return status.value === 'on'
}
Full Setup Pattern
async function setupArgo(client: Cloudflare, zoneId: string) {
// 1. Validate
const { canEnable, issues } = await validateArgoEligibility(client, zoneId)
if (!canEnable) throw new Error(issues.join(', '))
// 2. Enable both features
await Promise.all([
client.argo.smartRouting.edit({ zone_id: zoneId, value: 'on' }),
client.argo.tieredCaching.edit({ zone_id: zoneId, value: 'on' }),
])
// 3. Verify
const [argo, cache] = await Promise.all([
client.argo.smartRouting.get({ zone_id: zoneId }),
client.argo.tieredCaching.get({ zone_id: zoneId }),
])
return { argo: argo.value === 'on', tieredCache: cache.value === 'on' }
}
When to combine: High-traffic sites (>1TB/mo), global users, cacheable content.