openapi: 3.1.0 info: title: Ngrok Abuse Reports Edges TCP API description: The ngrok API provides programmatic access to all of ngrok's resources. The API is REST-ish. It follows most of the conventions of a REST API but diverges slightly when the REST model does not fit well. The API listens only on port 443 to help avoid any accidental unencrypted requests. All API access requires an API key. version: 2.0.0 contact: name: Ngrok url: https://ngrok.com license: name: Proprietary url: https://ngrok.com/tos servers: - url: https://api.ngrok.com description: Ngrok API Production Server security: - bearerAuth: [] - apiKeyAuth: [] tags: - name: Edges TCP description: TCP Edges define TCP endpoints for non-HTTP protocols. paths: /edges/tcp: post: operationId: createTcpEdge summary: Ngrok Create TCP Edge description: Create a TCP Edge. tags: - Edges TCP requestBody: required: true content: application/json: schema: type: object properties: description: type: string metadata: type: string hostports: type: array items: type: string backend: type: object properties: enabled: type: boolean backend_id: type: string ip_restriction: type: object properties: enabled: type: boolean ip_policy_ids: type: array items: type: string responses: '201': description: TCP edge created. content: application/json: schema: $ref: '#/components/schemas/TcpEdge' get: operationId: listTcpEdges summary: Ngrok List TCP Edges description: List all TCP Edges on this account. tags: - Edges TCP parameters: - $ref: '#/components/parameters/BeforeId' - $ref: '#/components/parameters/Limit' responses: '200': description: List of TCP edges. content: application/json: schema: $ref: '#/components/schemas/TcpEdgeList' /edges/tcp/{id}: get: operationId: getTcpEdge summary: Ngrok Get TCP Edge description: Get a TCP Edge by ID. tags: - Edges TCP parameters: - $ref: '#/components/parameters/Id' responses: '200': description: TCP edge details. content: application/json: schema: $ref: '#/components/schemas/TcpEdge' patch: operationId: updateTcpEdge summary: Ngrok Update TCP Edge description: Update a TCP Edge by ID. tags: - Edges TCP parameters: - $ref: '#/components/parameters/Id' requestBody: required: true content: application/json: schema: type: object properties: description: type: string metadata: type: string hostports: type: array items: type: string responses: '200': description: TCP edge updated. content: application/json: schema: $ref: '#/components/schemas/TcpEdge' delete: operationId: deleteTcpEdge summary: Ngrok Delete TCP Edge description: Delete a TCP Edge by ID. tags: - Edges TCP parameters: - $ref: '#/components/parameters/Id' responses: '204': description: TCP edge deleted. components: schemas: TcpEdge: type: object properties: id: type: string description: type: string metadata: type: string created_at: type: string format: date-time uri: type: string hostports: type: array items: type: string backend: type: object ip_restriction: type: object TcpEdgeList: type: object properties: tcp_edges: type: array items: $ref: '#/components/schemas/TcpEdge' uri: type: string next_page_uri: type: string parameters: Id: name: id in: path required: true schema: type: string description: A unique identifier for the resource. BeforeId: name: before_id in: query required: false schema: type: string description: An ID to use for pagination. Results returned will be before this ID. Limit: name: limit in: query required: false schema: type: string description: The maximum number of results to return. Maximum is 100. securitySchemes: bearerAuth: type: http scheme: bearer description: Use an ngrok API key as a Bearer token. Create API keys from the ngrok dashboard or via the API Keys endpoints. apiKeyAuth: type: apiKey in: header name: Authorization description: Pass the API key in the Authorization header prefixed with 'Bearer '.