Network protection API

Network protection API

Manage protected service configuration and inspect attacks and actual traffic coverage.

Protected-service creation does not route production traffic. Complete ownership verification and traffic cutover before relying on protection.

Use the shared API contract for authentication, pagination, request headers, idempotency, and error responses.

List services

GET/organizations/{organization_id}/protected-services
Scope
network:read
Auth
Bearer API key

Lists route readiness and origin health. Self-hosted DDoS services also include Connector status. Standard limit and cursor apply. Unknown filters return 422.

Query parameters
asset_idstringoptional

Filter by service asset.

statestringoptional

Configuration state.

one ofpending_verification, ready, active, degraded, retired
200Result

Returns a data array and pagination.next_cursor. Entries include stable IDs and the resource fields described for this collection.

Create an HTTP service

POST/organizations/{organization_id}/protected-services
Scope
network:write
Auth
Bearer API key

Creates a pending-verification HTTP service. Routed L3/L4 service admission uses the approved network onboarding workflow.

Request body
namestringrequired

Display name; does not change resource identity.

rule1–120 characters
asset_idstringrequired

Existing service asset.

hostnamestringrequired

Public DNS hostname; no wildcard unless separately approved.

originobjectrequired

Origin connection and health-check settings. Origin TLS verification cannot be disabled.

edge_policy_idstringrequired

Published edge policy authorized for this service.

201Created

Returns service ID, verification challenge, pending checks, and ETag. Domain verification is not complete merely because a challenge was issued.

Read a service

GET/organizations/{organization_id}/protected-services/{service_id}
Scope
network:read
Auth
Bearer API key

Returns frontend TLS, verification state, admitted edge route, origin health, assigned/applied policy revisions, and recent coverage timestamps.

200Result

Returns data and request_id.

Verify ownership

POST/organizations/{organization_id}/protected-services/{service_id}/verify
Scope
network:write
Auth
Bearer API key

Checks the issued DNS or file challenge. Only control of the requested hostname is established.

202Accepted

Returns a verification operation. Failed challenge checks leave the service pending and do not change production routing.

Update an origin

PATCH/organizations/{organization_id}/protected-services/{service_id}
Scope
network:write
Auth
Bearer API key

Replaces the service origin after validation. Requires If-Match; the previous origin remains until replacement validation succeeds.

Request body
originobjectrequired

Complete replacement origin using the address, port, TLS server name, and health path fields from Create an HTTP service. Omitted nested fields are invalid.

202Accepted

Returns service data and an update operation. Origin validation failure preserves the prior origin.

List attacks

GET/organizations/{organization_id}/attacks
Scope
network:read
Auth
Bearer API key

Returns detection and mitigation times, affected services, active controls, observed rates with units, and reporting gaps. Standard limit and cursor apply. Unknown filters return 422.

Query parameters
service_idstringoptional

Filter by protected service.

activebooleanoptional

Whether to return active attacks. true selects observed active attacks; false selects ended attacks. Omission includes both.

200Result

Returns a data array and pagination.next_cursor. Entries include stable IDs and the resource fields described for this collection.

Read attack detail

GET/organizations/{organization_id}/attacks/{attack_id}
Scope
network:read
Auth
Bearer API key

Returns mitigation timeline, trigger basis, policy revisions, origin health, and capacity status. A drop counter is not application recovery evidence.

200Result

Returns data and request_id.

Retire a service

POST/organizations/{organization_id}/protected-services/{service_id}/retire
Scope
network:write
Auth
Bearer API key

Retires a protected service. Requires If-Match, completed route migration, and confirmed retirement review. Active routing dependencies return 409 route_in_use.

Request body
reasonstringrequired

Audited justification. Empty values are invalid.

rule1–2000 characters
202Accepted

Returns a retirement operation. Verify provider routing and drained traffic before deleting origin restrictions or Connector configuration.