Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Comprehensive Cloudflare platform skill covering Workers, D1, R2, KV, AI, Durable Objects, and security.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/spectrum/api.md
1## REST API Endpoints23```4GET /zones/{zone_id}/spectrum/apps # List apps5POST /zones/{zone_id}/spectrum/apps # Create app6GET /zones/{zone_id}/spectrum/apps/{app_id} # Get app7PUT /zones/{zone_id}/spectrum/apps/{app_id} # Update app8DELETE /zones/{zone_id}/spectrum/apps/{app_id} # Delete app910GET /zones/{zone_id}/spectrum/analytics/aggregate/current11GET /zones/{zone_id}/spectrum/analytics/events/bytime12GET /zones/{zone_id}/spectrum/analytics/events/summary13```1415## Request/Response Schemas1617### CreateSpectrumAppRequest1819```typescript20interface CreateSpectrumAppRequest {21protocol: string; // "tcp/22", "udp/53"22dns: {23type: "CNAME" | "ADDRESS";24name: string; // "ssh.example.com"25};26origin_direct?: string[]; // ["tcp://192.0.2.1:22"]27origin_dns?: { name: string }; // {"name": "origin.example.com"}28origin_port?: number | { start: number; end: number };29proxy_protocol?: "off" | "v1" | "v2" | "simple";30ip_firewall?: boolean;31tls?: "off" | "flexible" | "full" | "strict";32edge_ips?: {33type: "dynamic" | "static";34connectivity: "all" | "ipv4" | "ipv6";35};36traffic_type?: "direct" | "http" | "https";37argo_smart_routing?: boolean;38}39```4041### SpectrumApp Response4243```typescript44interface SpectrumApp {45id: string;46protocol: string;47dns: { type: string; name: string };48origin_direct?: string[];49origin_dns?: { name: string };50origin_port?: number | { start: number; end: number };51proxy_protocol: string;52ip_firewall: boolean;53tls: string;54edge_ips: { type: string; connectivity: string; ips?: string[] };55argo_smart_routing: boolean;56created_on: string;57modified_on: string;58}59```6061## TypeScript SDK6263```typescript64import Cloudflare from 'cloudflare';6566const client = new Cloudflare({ apiToken: process.env.CLOUDFLARE_API_TOKEN });6768// Create69const app = await client.spectrum.apps.create({70zone_id: 'your-zone-id',71protocol: 'tcp/22',72dns: { type: 'CNAME', name: 'ssh.example.com' },73origin_direct: ['tcp://192.0.2.1:22'],74ip_firewall: true,75tls: 'off',76});7778// List79const apps = await client.spectrum.apps.list({ zone_id: 'your-zone-id' });8081// Get82const appDetails = await client.spectrum.apps.get({ zone_id: 'your-zone-id', app_id: app.id });8384// Update85await client.spectrum.apps.update({ zone_id: 'your-zone-id', app_id: app.id, tls: 'full' });8687// Delete88await client.spectrum.apps.delete({ zone_id: 'your-zone-id', app_id: app.id });8990// Analytics91const analytics = await client.spectrum.analytics.aggregate({92zone_id: 'your-zone-id',93metrics: ['bytesIngress', 'bytesEgress'],94since: new Date(Date.now() - 3600000).toISOString(),95});96```9798## Python SDK99100```python101from cloudflare import Cloudflare102103client = Cloudflare(api_token="your-api-token")104105# Create106app = client.spectrum.apps.create(107zone_id="your-zone-id",108protocol="tcp/22",109dns={"type": "CNAME", "name": "ssh.example.com"},110origin_direct=["tcp://192.0.2.1:22"],111ip_firewall=True,112tls="off",113)114115# List116apps = client.spectrum.apps.list(zone_id="your-zone-id")117118# Get119app_details = client.spectrum.apps.get(zone_id="your-zone-id", app_id=app.id)120121# Update122client.spectrum.apps.update(zone_id="your-zone-id", app_id=app.id, tls="full")123124# Delete125client.spectrum.apps.delete(zone_id="your-zone-id", app_id=app.id)126127# Analytics128analytics = client.spectrum.analytics.aggregate(129zone_id="your-zone-id",130metrics=["bytesIngress", "bytesEgress"],131since=datetime.now() - timedelta(hours=1),132)133```134135## Go SDK136137```go138import "github.com/cloudflare/cloudflare-go"139140api, _ := cloudflare.NewWithAPIToken("your-api-token")141142// Create143app, _ := api.CreateSpectrumApplication(ctx, "zone-id", cloudflare.SpectrumApplication{144Protocol: "tcp/22",145DNS: cloudflare.SpectrumApplicationDNS{Type: "CNAME", Name: "ssh.example.com"},146OriginDirect: []string{"tcp://192.0.2.1:22"},147IPFirewall: true,148ArgoSmartRouting: true,149})150151// List152apps, _ := api.SpectrumApplications(ctx, "zone-id")153154// Delete155_ = api.DeleteSpectrumApplication(ctx, "zone-id", app.ID)156```157158## Analytics API159160**Metrics:**161- `bytesIngress` - Bytes received from clients162- `bytesEgress` - Bytes sent to clients163- `count` - Number of connections164- `duration` - Connection duration (seconds)165166**Dimensions:**167- `event` - Connection event type168- `appID` - Spectrum application ID169- `coloName` - Datacenter name170- `ipVersion` - IPv4 or IPv6171172**Example:**173```bash174curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/spectrum/analytics/aggregate/current?metrics=bytesIngress,bytesEgress,count&dimensions=appID" \175--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"176```177178## See Also179180- [configuration.md](configuration.md) - Terraform/Pulumi181- [patterns.md](patterns.md) - Protocol examples182