RapidAPI · Schema

RapidAPI Gateway Configuration

Schema representing a RapidAPI Gateway configuration, including routing rules, authentication, rate limiting, security policies, and deployment settings.

API MarketplaceAPI ManagementAPI TestingAPI GatewayAPI DesignEnterprise

Properties

Name Type Description
id string Unique identifier for the gateway instance
name string Display name for the gateway
description string Description of the gateway's purpose and configuration
deploymentModel string How the gateway is deployed within the infrastructure
status string Current operational status of the gateway
baseUrl string The base URL where the gateway accepts incoming requests
proxySecret string Unique secret added as X-RapidAPI-Proxy-Secret header to verify requests come from Rapid Runtime
routes array Routing rules that determine how requests are forwarded to backend services
authentication object Authentication scheme and configuration for the gateway
rateLimiting object Rate limiting policies to control API usage
security object Security policies including IP filtering and CORS
createdAt string Timestamp when the gateway was created
updatedAt string Timestamp when the gateway was last modified
View JSON Schema on GitHub

JSON Schema

rapidapi-gateway-config-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rapidapi.com/schemas/rapidapi/gateway-config.json",
  "title": "RapidAPI Gateway Configuration",
  "description": "Schema representing a RapidAPI Gateway configuration, including routing rules, authentication, rate limiting, security policies, and deployment settings.",
  "type": "object",
  "required": ["name"],
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the gateway instance"
    },
    "name": {
      "type": "string",
      "description": "Display name for the gateway",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "description": "Description of the gateway's purpose and configuration"
    },
    "deploymentModel": {
      "type": "string",
      "enum": ["cloud", "on-premise", "hybrid"],
      "description": "How the gateway is deployed within the infrastructure"
    },
    "status": {
      "type": "string",
      "enum": ["active", "inactive", "provisioning"],
      "description": "Current operational status of the gateway"
    },
    "baseUrl": {
      "type": "string",
      "format": "uri",
      "description": "The base URL where the gateway accepts incoming requests"
    },
    "proxySecret": {
      "type": "string",
      "description": "Unique secret added as X-RapidAPI-Proxy-Secret header to verify requests come from Rapid Runtime"
    },
    "routes": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Route"
      },
      "description": "Routing rules that determine how requests are forwarded to backend services"
    },
    "authentication": {
      "$ref": "#/$defs/AuthenticationConfig",
      "description": "Authentication scheme and configuration for the gateway"
    },
    "rateLimiting": {
      "$ref": "#/$defs/RateLimitConfig",
      "description": "Rate limiting policies to control API usage"
    },
    "security": {
      "$ref": "#/$defs/SecurityConfig",
      "description": "Security policies including IP filtering and CORS"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the gateway was created"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the gateway was last modified"
    }
  },
  "$defs": {
    "Route": {
      "type": "object",
      "required": ["pathPattern", "targetUrl"],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for the route"
        },
        "pathPattern": {
          "type": "string",
          "description": "URL path pattern to match incoming requests, supports wildcards"
        },
        "targetUrl": {
          "type": "string",
          "format": "uri",
          "description": "Backend service URL to forward matching requests to"
        },
        "methods": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"]
          },
          "description": "HTTP methods this route handles, empty means all methods"
        },
        "stripPrefix": {
          "type": "boolean",
          "description": "Whether to strip the matched path prefix before forwarding"
        },
        "priority": {
          "type": "integer",
          "minimum": 0,
          "description": "Route priority for matching order, higher values match first"
        },
        "enabled": {
          "type": "boolean",
          "description": "Whether this route is currently active"
        }
      },
      "description": "A routing rule that forwards matching requests to a backend service"
    },
    "AuthenticationConfig": {
      "type": "object",
      "required": ["scheme"],
      "properties": {
        "scheme": {
          "type": "string",
          "enum": ["rapidapi_default", "oauth2", "header", "query", "basic"],
          "description": "The primary authentication scheme used by the gateway"
        },
        "requireRapidApiKey": {
          "type": "boolean",
          "description": "Whether the X-RapidAPI-Key header is required for all requests"
        },
        "oauth2Config": {
          "type": "object",
          "properties": {
            "authorizationUrl": {
              "type": "string",
              "format": "uri",
              "description": "OAuth2 authorization endpoint URL"
            },
            "tokenUrl": {
              "type": "string",
              "format": "uri",
              "description": "OAuth2 token endpoint URL"
            },
            "scopes": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Available OAuth2 scopes"
            }
          },
          "description": "OAuth2 configuration when scheme is oauth2"
        },
        "headerConfig": {
          "type": "object",
          "properties": {
            "headerName": {
              "type": "string",
              "description": "Custom header name for authentication"
            }
          },
          "description": "Header-based authentication configuration"
        }
      },
      "description": "Gateway authentication configuration"
    },
    "RateLimitConfig": {
      "type": "object",
      "properties": {
        "requestsPerSecond": {
          "type": "integer",
          "minimum": 1,
          "description": "Maximum requests per second per consumer"
        },
        "requestsPerMinute": {
          "type": "integer",
          "minimum": 1,
          "description": "Maximum requests per minute per consumer"
        },
        "requestsPerDay": {
          "type": "integer",
          "minimum": 1,
          "description": "Maximum requests per day per consumer"
        },
        "maxRequestSizeBytes": {
          "type": "integer",
          "minimum": 1024,
          "description": "Maximum request body size in bytes to prevent misuse"
        },
        "burstLimit": {
          "type": "integer",
          "minimum": 1,
          "description": "Maximum burst of concurrent requests allowed"
        }
      },
      "description": "Rate limiting configuration to protect APIs from overuse"
    },
    "SecurityConfig": {
      "type": "object",
      "properties": {
        "ipAllowList": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "IP address or CIDR range"
          },
          "description": "List of allowed IP addresses or CIDR ranges"
        },
        "ipDenyList": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "IP address or CIDR range"
          },
          "description": "List of denied IP addresses or CIDR ranges"
        },
        "corsEnabled": {
          "type": "boolean",
          "description": "Whether CORS is enabled for cross-origin requests"
        },
        "corsConfig": {
          "type": "object",
          "properties": {
            "allowedOrigins": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Allowed CORS origins"
            },
            "allowedMethods": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Allowed HTTP methods for CORS preflight"
            },
            "allowedHeaders": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Allowed request headers for CORS"
            },
            "maxAge": {
              "type": "integer",
              "minimum": 0,
              "description": "CORS preflight response cache duration in seconds"
            }
          },
          "description": "CORS configuration details"
        },
        "validateProxySecret": {
          "type": "boolean",
          "description": "Whether to validate the X-RapidAPI-Proxy-Secret header on incoming requests"
        }
      },
      "description": "Security policies for the gateway"
    }
  }
}