{
  "openapi": "3.0.4",
  "info": {
    "title": "API BRICKS Management REST API",
    "contact": {
      "name": "API BRICKS LTD",
      "url": "https://www.coinapi.io",
      "email": "support@apibricks.io"
    },
    "license": {
      "name": "MIT License",
      "url": "https://github.com/api-bricks/api-bricks-sdk/blob/master/LICENSE"
    },
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api-console.apibricks.io"
    }
  ],
  "paths": {
    "/api/apikeys/{id}/ip-allowlist": {
      "get": {
        "tags": [
          "API Keys"
        ],
        "summary": "Get API key IP restrictions",
        "description": "Returns the IP ranges the API key accepts requests from. An empty list means any IP is allowed.",
        "operationId": "console_get_api_key_ip_allowlist",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "IP restrictions",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistResponse"
                }
              }
            }
          },
          "404": {
            "description": "API key not found"
          }
        }
      },
      "put": {
        "tags": [
          "API Keys"
        ],
        "summary": "Replace API key IP restrictions",
        "description": "Replaces the IP ranges (CIDRs, at most 100) the API key accepts requests from. Requests from other IPs get HTTP 403. An empty list removes the restriction.",
        "operationId": "console_put_api_key_ip_allowlist",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "IP restrictions saved",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid CIDR or too many entries"
          },
          "404": {
            "description": "API key not found"
          }
        }
      }
    },
    "/api/apikeys/{id}/ip-alerts": {
      "put": {
        "tags": [
          "API Keys"
        ],
        "summary": "Turn API key new network alerts on or off",
        "description": "Turns on or off the email sent when the API key is used from a /24 (IPv4) or /48 (IPv6) network the organization has not used before (at most one email per key every 10 minutes; networks in between are grouped into the next one).",
        "operationId": "console_put_api_key_ip_alerts",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAlertsUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAlertsUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAlertsUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "IP restrictions and alert settings",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistResponse"
                }
              }
            }
          },
          "404": {
            "description": "API key not found"
          }
        }
      }
    },
    "/api/apikeys/{id}/ip-addresses": {
      "get": {
        "tags": [
          "API Keys"
        ],
        "summary": "List IP addresses that used the API key",
        "description": "IP addresses that used the API key, or were blocked by its IP restrictions, in the last `days` days (1-90).",
        "operationId": "console_list_api_key_ip_addresses",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "days",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          }
        ],
        "responses": {
          "200": {
            "description": "IP addresses",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAddressDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAddressDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAddressDto"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAddressDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "API key not found"
          }
        }
      }
    },
    "/api/apikeys": {
      "get": {
        "tags": [
          "API Keys"
        ],
        "summary": "Get API keys",
        "description": "Retrieves all API keys for the current organization",
        "operationId": "console_list_api_key",
        "responses": {
          "200": {
            "description": "Successfully retrieved API keys",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.ApiKey"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.ApiKey"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.ApiKey"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.ApiKey"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "API Keys"
        ],
        "summary": "Create new API key",
        "description": "Creates a new API key for accessing CoinAPI services",
        "operationId": "console_create_api_key",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyManagement.CreateApiKeyRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyManagement.CreateApiKeyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyManagement.CreateApiKeyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully created API key",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyManagement.CreateApiKeyResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyManagement.CreateApiKeyResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyManagement.CreateApiKeyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or JWT key"
          }
        }
      }
    },
    "/api/apikeys/status": {
      "patch": {
        "tags": [
          "API Keys"
        ],
        "summary": "Change API key status",
        "description": "Activates or deactivates an API key",
        "operationId": "console_patch_api_key_status",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyManagement.ApiKeyStatusRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyManagement.ApiKeyStatusRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyManagement.ApiKeyStatusRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully changed API key status",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Model.ApiKey"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.ApiKey"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.ApiKey"
                }
              }
            }
          },
          "404": {
            "description": "API key not found"
          }
        }
      }
    },
    "/api/apikeys/rename": {
      "patch": {
        "tags": [
          "API Keys"
        ],
        "summary": "Rename API key",
        "description": "Updates the display name of an API key",
        "operationId": "console_patch_api_key_rename",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyManagement.ApiKeyRenameRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyManagement.ApiKeyRenameRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyManagement.ApiKeyRenameRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully renamed API key",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Model.ApiKey"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.ApiKey"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.ApiKey"
                }
              }
            }
          },
          "404": {
            "description": "API key not found"
          }
        }
      }
    },
    "/api/apikeys/{id}": {
      "delete": {
        "tags": [
          "API Keys"
        ],
        "summary": "Delete API key",
        "description": "Permanently deletes an API key",
        "operationId": "console_delete_api_key_by_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted API key"
          },
          "404": {
            "description": "API key not found"
          }
        }
      }
    },
    "/api/audit-log/query": {
      "get": {
        "tags": [
          "Audit Log"
        ],
        "summary": "Gets audit log events for the current organization with flexible filtering.\nThe effective time window is always at least 24 hours regardless of the parameters\nsupplied: if the resolved window is shorter it is automatically expanded by moving\nthe start time back while keeping the end time unchanged.",
        "description": "Returns audit log events for your organization with flexible filtering options. The effective time window is always at least 24 hours: if the resolved range is shorter it is automatically expanded by moving start back while keeping end fixed. Use for reviewing activity history and compliance auditing.",
        "operationId": "console_list_audit_log_query",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "Optional email filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeStart",
            "in": "query",
            "description": "Start time for the query range (UTC, EventTimestamp).\nMinimum window of 24 hours is enforced: if the distance to timeEnd is less than 24h\nthe start is moved back to timeEnd minus 24h.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeEnd",
            "in": "query",
            "description": "End time for the query range (UTC, EventTimestamp).\nDefaults to now when not provided. The end time is preserved when expanding a short window.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "minutes",
            "in": "query",
            "description": "Minutes back from now (alternative to timeStart/timeEnd).\nValues below 1440 (24 h) are automatically expanded to 1440.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audit log events retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AuditEventDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AuditEventDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AuditEventDto"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AuditEventDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/audit-trail/latest": {
      "get": {
        "tags": [
          "Audit Log"
        ],
        "summary": "Gets the latest audit log events for the current organization (no time filtering)",
        "description": "Returns the most recent audit trail events for your organization, ordered by newest first. No time filtering applied - returns the latest events up to the specified limit.",
        "operationId": "console_list_audit_trail_latest",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return (1-10000, default 200)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Latest audit trail events retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AuditEventDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AuditEventDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AuditEventDto"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AuditEventDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/connection-analytics/query": {
      "get": {
        "tags": [
          "Connection Analytics"
        ],
        "summary": "Gets raw connection status records with flexible filtering for the current organization",
        "description": "Returns raw connection status records for your organization with flexible filtering options. Use for detailed analysis, UI display, and export. Includes connection duration, active status, and heartbeat information.",
        "operationId": "console_list_connection_analytics_query",
        "parameters": [
          {
            "name": "connectionId",
            "in": "query",
            "description": "Optional connection ID filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serviceName",
            "in": "query",
            "description": "Optional service name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protocolName",
            "in": "query",
            "description": "Optional protocol name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataCenter",
            "in": "query",
            "description": "Optional data center filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "activeOnly",
            "in": "query",
            "description": "Filter for active connections only (heartbeat within last 2 minutes)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "timeStart",
            "in": "query",
            "description": "Start time for the query range (ConnectionStartTime)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeEnd",
            "in": "query",
            "description": "End time for the query range (ConnectionStartTime)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "minutes",
            "in": "query",
            "description": "Minutes back from now (alternative to timeStart/timeEnd)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Connection status records retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionQueryDto"
                  }
                },
                "example": [
                  {
                    "connectionId": "conn_7f9a8b2c1d3e4f5a",
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "host": "ws-server-01.coinapi.io",
                    "ipAddress": "203.0.113.195",
                    "protocolName": "WebSocket",
                    "serviceName": "coinapi-ws",
                    "dataCenter": "us-east-1/server-01",
                    "lastHeartbeat": "2024-01-15T14:30:25.0000000Z",
                    "connectionStartTime": "2024-01-15T14:15:10.0000000Z",
                    "updatedAt": "2024-01-15T14:30:25.0000000Z",
                    "connectionDurationSeconds": 915,
                    "isActive": true
                  },
                  {
                    "connectionId": "conn_8e7d6c5b4a321098",
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "host": "rest-api-01.coinapi.io",
                    "ipAddress": "203.0.113.196",
                    "protocolName": "REST",
                    "serviceName": "coinapi-rest",
                    "dataCenter": "eu-west-1/server-02",
                    "lastHeartbeat": "2024-01-15T13:45:30.0000000Z",
                    "connectionStartTime": "2024-01-15T13:30:15.0000000Z",
                    "updatedAt": "2024-01-15T13:45:30.0000000Z",
                    "connectionDurationSeconds": 915,
                    "isActive": false
                  }
                ]
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionQueryDto"
                  }
                },
                "example": [
                  {
                    "connectionId": "conn_7f9a8b2c1d3e4f5a",
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "host": "ws-server-01.coinapi.io",
                    "ipAddress": "203.0.113.195",
                    "protocolName": "WebSocket",
                    "serviceName": "coinapi-ws",
                    "dataCenter": "us-east-1/server-01",
                    "lastHeartbeat": "2024-01-15T14:30:25.0000000Z",
                    "connectionStartTime": "2024-01-15T14:15:10.0000000Z",
                    "updatedAt": "2024-01-15T14:30:25.0000000Z",
                    "connectionDurationSeconds": 915,
                    "isActive": true
                  },
                  {
                    "connectionId": "conn_8e7d6c5b4a321098",
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "host": "rest-api-01.coinapi.io",
                    "ipAddress": "203.0.113.196",
                    "protocolName": "REST",
                    "serviceName": "coinapi-rest",
                    "dataCenter": "eu-west-1/server-02",
                    "lastHeartbeat": "2024-01-15T13:45:30.0000000Z",
                    "connectionStartTime": "2024-01-15T13:30:15.0000000Z",
                    "updatedAt": "2024-01-15T13:45:30.0000000Z",
                    "connectionDurationSeconds": 915,
                    "isActive": false
                  }
                ]
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionQueryDto"
                  }
                },
                "example": [
                  {
                    "connectionId": "conn_7f9a8b2c1d3e4f5a",
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "host": "ws-server-01.coinapi.io",
                    "ipAddress": "203.0.113.195",
                    "protocolName": "WebSocket",
                    "serviceName": "coinapi-ws",
                    "dataCenter": "us-east-1/server-01",
                    "lastHeartbeat": "2024-01-15T14:30:25.0000000Z",
                    "connectionStartTime": "2024-01-15T14:15:10.0000000Z",
                    "updatedAt": "2024-01-15T14:30:25.0000000Z",
                    "connectionDurationSeconds": 915,
                    "isActive": true
                  },
                  {
                    "connectionId": "conn_8e7d6c5b4a321098",
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "host": "rest-api-01.coinapi.io",
                    "ipAddress": "203.0.113.196",
                    "protocolName": "REST",
                    "serviceName": "coinapi-rest",
                    "dataCenter": "eu-west-1/server-02",
                    "lastHeartbeat": "2024-01-15T13:45:30.0000000Z",
                    "connectionStartTime": "2024-01-15T13:30:15.0000000Z",
                    "updatedAt": "2024-01-15T13:45:30.0000000Z",
                    "connectionDurationSeconds": 915,
                    "isActive": false
                  }
                ]
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionQueryDto"
                  }
                },
                "example": "﻿ConnectionId,OrganizationId,Host,IpAddress,ProtocolName,ServiceName,DataCenter,LastHeartbeat,ConnectionStartTime,UpdatedAt,ConnectionDurationSeconds,IsActive\r\nconn_7f9a8b2c1d3e4f5a,a1b2c3d4-e5f6-7890-abcd-ef1234567890,ws-server-01.coinapi.io,203.0.113.195,WebSocket,coinapi-ws,us-east-1/server-01,01/15/2024 14:30:25,01/15/2024 14:15:10,01/15/2024 14:30:25,915,True\r\nconn_8e7d6c5b4a321098,a1b2c3d4-e5f6-7890-abcd-ef1234567890,rest-api-01.coinapi.io,203.0.113.196,REST,coinapi-rest,eu-west-1/server-02,01/15/2024 13:45:30,01/15/2024 13:30:15,01/15/2024 13:45:30,915,False\r\n"
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/connection-analytics/time-series": {
      "get": {
        "tags": [
          "Connection Analytics"
        ],
        "summary": "Gets time-series connection analytics with flexible filtering for the current organization",
        "description": "Returns connection analytics for your organization aggregated by time intervals. Shows connection counts, active connections, and connection duration metrics over time.",
        "operationId": "console_list_connection_analytics_time_series",
        "parameters": [
          {
            "name": "serviceName",
            "in": "query",
            "description": "Optional service name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protocolName",
            "in": "query",
            "description": "Optional protocol name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataCenter",
            "in": "query",
            "description": "Optional data center filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeStart",
            "in": "query",
            "description": "Start time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeEnd",
            "in": "query",
            "description": "End time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "minutes",
            "in": "query",
            "description": "Minutes back from now (alternative to timeStart/timeEnd)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "intervalMinutes",
            "in": "query",
            "description": "Time interval in minutes for grouping (5, 15, 30, 60, 360, 720, 1440)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 60
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Time-series connection analytics retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionTimeSeriesDto"
                  }
                },
                "example": [
                  {
                    "timeSlot": "2024-01-15T14:00:00.0000000Z",
                    "totalConnectionsInPeriod": 125,
                    "newConnectionsInPeriod": 12,
                    "connectionCountOnPeriodEnd": 98,
                    "connectionCountOnPeriodStart": 113,
                    "uniqueOrganizations": 1,
                    "averageConnectionDurationSeconds": 1847,
                    "totalConnectionTimeSeconds": 230760
                  },
                  {
                    "timeSlot": "2024-01-15T13:00:00.0000000Z",
                    "totalConnectionsInPeriod": 118,
                    "newConnectionsInPeriod": 9,
                    "connectionCountOnPeriodEnd": 92,
                    "connectionCountOnPeriodStart": 109,
                    "uniqueOrganizations": 1,
                    "averageConnectionDurationSeconds": 1923,
                    "totalConnectionTimeSeconds": 227160
                  }
                ]
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionTimeSeriesDto"
                  }
                },
                "example": [
                  {
                    "timeSlot": "2024-01-15T14:00:00.0000000Z",
                    "totalConnectionsInPeriod": 125,
                    "newConnectionsInPeriod": 12,
                    "connectionCountOnPeriodEnd": 98,
                    "connectionCountOnPeriodStart": 113,
                    "uniqueOrganizations": 1,
                    "averageConnectionDurationSeconds": 1847,
                    "totalConnectionTimeSeconds": 230760
                  },
                  {
                    "timeSlot": "2024-01-15T13:00:00.0000000Z",
                    "totalConnectionsInPeriod": 118,
                    "newConnectionsInPeriod": 9,
                    "connectionCountOnPeriodEnd": 92,
                    "connectionCountOnPeriodStart": 109,
                    "uniqueOrganizations": 1,
                    "averageConnectionDurationSeconds": 1923,
                    "totalConnectionTimeSeconds": 227160
                  }
                ]
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionTimeSeriesDto"
                  }
                },
                "example": [
                  {
                    "timeSlot": "2024-01-15T14:00:00.0000000Z",
                    "totalConnectionsInPeriod": 125,
                    "newConnectionsInPeriod": 12,
                    "connectionCountOnPeriodEnd": 98,
                    "connectionCountOnPeriodStart": 113,
                    "uniqueOrganizations": 1,
                    "averageConnectionDurationSeconds": 1847,
                    "totalConnectionTimeSeconds": 230760
                  },
                  {
                    "timeSlot": "2024-01-15T13:00:00.0000000Z",
                    "totalConnectionsInPeriod": 118,
                    "newConnectionsInPeriod": 9,
                    "connectionCountOnPeriodEnd": 92,
                    "connectionCountOnPeriodStart": 109,
                    "uniqueOrganizations": 1,
                    "averageConnectionDurationSeconds": 1923,
                    "totalConnectionTimeSeconds": 227160
                  }
                ]
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionTimeSeriesDto"
                  }
                },
                "example": "﻿TimeSlot,TotalConnectionsInPeriod,NewConnectionsInPeriod,ConnectionCountOnPeriodEnd,ConnectionCountOnPeriodStart,UniqueOrganizations,AverageConnectionDurationSeconds,TotalConnectionTimeSeconds\r\n01/15/2024 14:00:00,125,12,98,113,1,1847,230760\r\n01/15/2024 13:00:00,118,9,92,109,1,1923,227160\r\n"
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/connection-analytics/summary": {
      "get": {
        "tags": [
          "Connection Analytics"
        ],
        "summary": "Gets connection analytics grouped by service, protocol, and data center for the current organization",
        "description": "Returns connection analytics for your organization grouped by service, protocol, and data center. Shows total connections, active connections, connection duration metrics, and activity timestamps.",
        "operationId": "console_list_connection_analytics_summary",
        "parameters": [
          {
            "name": "serviceName",
            "in": "query",
            "description": "Optional service name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protocolName",
            "in": "query",
            "description": "Optional protocol name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataCenter",
            "in": "query",
            "description": "Optional data center filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeStart",
            "in": "query",
            "description": "Start time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeEnd",
            "in": "query",
            "description": "End time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "minutes",
            "in": "query",
            "description": "Minutes back from now (alternative to timeStart/timeEnd)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Organization connection summaries retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.OrganizationConnectionSummaryDto"
                  }
                },
                "example": [
                  {
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "serviceName": "coinapi-ws",
                    "protocolName": "WebSocket",
                    "dataCenter": "us-east-1/server-01",
                    "totalConnections": 284,
                    "newConnectionsInPeriod": 34,
                    "averageConnectionDurationSeconds": 2134,
                    "totalConnectionTimeSeconds": 10134,
                    "firstConnection": "2024-01-14T08:15:30.0000000Z",
                    "lastConnection": "2024-01-15T14:22:45.0000000Z",
                    "lastActivity": "2024-01-15T14:30:25.0000000Z"
                  },
                  {
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "serviceName": "coinapi-rest",
                    "protocolName": "REST",
                    "dataCenter": "eu-west-1/server-02",
                    "totalConnections": 145,
                    "newConnectionsInPeriod": 89,
                    "averageConnectionDurationSeconds": 1847,
                    "totalConnectionTimeSeconds": 4482,
                    "firstConnection": "2024-01-14T09:30:15.0000000Z",
                    "lastConnection": "2024-01-15T14:18:20.0000000Z",
                    "lastActivity": "2024-01-15T14:28:10.0000000Z"
                  }
                ]
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.OrganizationConnectionSummaryDto"
                  }
                },
                "example": [
                  {
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "serviceName": "coinapi-ws",
                    "protocolName": "WebSocket",
                    "dataCenter": "us-east-1/server-01",
                    "totalConnections": 284,
                    "newConnectionsInPeriod": 34,
                    "averageConnectionDurationSeconds": 2134,
                    "totalConnectionTimeSeconds": 10134,
                    "firstConnection": "2024-01-14T08:15:30.0000000Z",
                    "lastConnection": "2024-01-15T14:22:45.0000000Z",
                    "lastActivity": "2024-01-15T14:30:25.0000000Z"
                  },
                  {
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "serviceName": "coinapi-rest",
                    "protocolName": "REST",
                    "dataCenter": "eu-west-1/server-02",
                    "totalConnections": 145,
                    "newConnectionsInPeriod": 89,
                    "averageConnectionDurationSeconds": 1847,
                    "totalConnectionTimeSeconds": 4482,
                    "firstConnection": "2024-01-14T09:30:15.0000000Z",
                    "lastConnection": "2024-01-15T14:18:20.0000000Z",
                    "lastActivity": "2024-01-15T14:28:10.0000000Z"
                  }
                ]
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.OrganizationConnectionSummaryDto"
                  }
                },
                "example": [
                  {
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "serviceName": "coinapi-ws",
                    "protocolName": "WebSocket",
                    "dataCenter": "us-east-1/server-01",
                    "totalConnections": 284,
                    "newConnectionsInPeriod": 34,
                    "averageConnectionDurationSeconds": 2134,
                    "totalConnectionTimeSeconds": 10134,
                    "firstConnection": "2024-01-14T08:15:30.0000000Z",
                    "lastConnection": "2024-01-15T14:22:45.0000000Z",
                    "lastActivity": "2024-01-15T14:30:25.0000000Z"
                  },
                  {
                    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "serviceName": "coinapi-rest",
                    "protocolName": "REST",
                    "dataCenter": "eu-west-1/server-02",
                    "totalConnections": 145,
                    "newConnectionsInPeriod": 89,
                    "averageConnectionDurationSeconds": 1847,
                    "totalConnectionTimeSeconds": 4482,
                    "firstConnection": "2024-01-14T09:30:15.0000000Z",
                    "lastConnection": "2024-01-15T14:18:20.0000000Z",
                    "lastActivity": "2024-01-15T14:28:10.0000000Z"
                  }
                ]
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.OrganizationConnectionSummaryDto"
                  }
                },
                "example": "﻿OrganizationId,ServiceName,ProtocolName,DataCenter,TotalConnections,NewConnectionsInPeriod,AverageConnectionDurationSeconds,TotalConnectionTimeSeconds,FirstConnection,LastConnection,LastActivity\r\na1b2c3d4-e5f6-7890-abcd-ef1234567890,coinapi-ws,WebSocket,us-east-1/server-01,284,34,2134,10134,01/14/2024 08:15:30,01/15/2024 14:22:45,01/15/2024 14:30:25\r\na1b2c3d4-e5f6-7890-abcd-ef1234567890,coinapi-rest,REST,eu-west-1/server-02,145,89,1847,4482,01/14/2024 09:30:15,01/15/2024 14:18:20,01/15/2024 14:28:10\r\n"
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/connection-analytics/events/query": {
      "get": {
        "tags": [
          "Connection Analytics"
        ],
        "summary": "Gets raw connection event records with flexible filtering for the current organization",
        "description": "Returns raw connection event entries for your organization with flexible filtering options. Use for detailed event analysis, troubleshooting, and historical tracking. Includes all event types and descriptions.",
        "operationId": "console_list_connection_analytics_events_query",
        "parameters": [
          {
            "name": "connectionId",
            "in": "query",
            "description": "Optional connection ID filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serviceName",
            "in": "query",
            "description": "Optional service name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protocolName",
            "in": "query",
            "description": "Optional protocol name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataCenter",
            "in": "query",
            "description": "Optional data center filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventType",
            "in": "query",
            "description": "Optional event type filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeStart",
            "in": "query",
            "description": "Start time for the query range (EventTimestamp)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeEnd",
            "in": "query",
            "description": "End time for the query range (EventTimestamp)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "minutes",
            "in": "query",
            "description": "Minutes back from now (alternative to timeStart/timeEnd)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Connection events retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventQueryDto"
                  }
                },
                "examples": {
                  "Connection Events": {
                    "value": [
                      {
                        "eventId": "12345678-1234-5678-9abc-123456789012",
                        "connectionId": "conn_7f9a8b2c1d3e4f5a",
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "host": "ws-server-01.coinapi.io",
                        "ipAddress": "203.0.113.195",
                        "protocolName": "WebSocket",
                        "serviceName": "coinapi-ws",
                        "dataCenter": "us-east-1",
                        "eventType": "connect",
                        "eventDescription": "WebSocket connection established",
                        "eventTimestamp": "2024-01-01T11:30:00.0000000Z"
                      },
                      {
                        "eventId": "87654321-4321-8765-cba9-876543210987",
                        "connectionId": "conn_7f9a8b2c1d3e4f5a",
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "host": "ws-server-01.coinapi.io",
                        "ipAddress": "203.0.113.195",
                        "protocolName": "WebSocket",
                        "serviceName": "coinapi-ws",
                        "dataCenter": "us-east-1",
                        "eventType": "heartbeat",
                        "eventDescription": "Connection heartbeat received",
                        "eventTimestamp": "2024-01-01T11:55:00.0000000Z"
                      },
                      {
                        "eventId": "abcdef12-3456-7890-abcd-ef1234567890",
                        "connectionId": "conn_7f9a8b2c1d3e4f5a",
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "host": "ws-server-01.coinapi.io",
                        "ipAddress": "203.0.113.195",
                        "protocolName": "WebSocket",
                        "serviceName": "coinapi-ws",
                        "dataCenter": "us-east-1",
                        "eventType": "disconnect",
                        "eventDescription": "WebSocket connection closed by client",
                        "eventTimestamp": "2024-01-01T11:58:00.0000000Z"
                      }
                    ]
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventQueryDto"
                  }
                },
                "examples": {
                  "Connection Events": {
                    "value": [
                      {
                        "eventId": "12345678-1234-5678-9abc-123456789012",
                        "connectionId": "conn_7f9a8b2c1d3e4f5a",
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "host": "ws-server-01.coinapi.io",
                        "ipAddress": "203.0.113.195",
                        "protocolName": "WebSocket",
                        "serviceName": "coinapi-ws",
                        "dataCenter": "us-east-1",
                        "eventType": "connect",
                        "eventDescription": "WebSocket connection established",
                        "eventTimestamp": "2024-01-01T11:30:00.0000000Z"
                      },
                      {
                        "eventId": "87654321-4321-8765-cba9-876543210987",
                        "connectionId": "conn_7f9a8b2c1d3e4f5a",
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "host": "ws-server-01.coinapi.io",
                        "ipAddress": "203.0.113.195",
                        "protocolName": "WebSocket",
                        "serviceName": "coinapi-ws",
                        "dataCenter": "us-east-1",
                        "eventType": "heartbeat",
                        "eventDescription": "Connection heartbeat received",
                        "eventTimestamp": "2024-01-01T11:55:00.0000000Z"
                      },
                      {
                        "eventId": "abcdef12-3456-7890-abcd-ef1234567890",
                        "connectionId": "conn_7f9a8b2c1d3e4f5a",
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "host": "ws-server-01.coinapi.io",
                        "ipAddress": "203.0.113.195",
                        "protocolName": "WebSocket",
                        "serviceName": "coinapi-ws",
                        "dataCenter": "us-east-1",
                        "eventType": "disconnect",
                        "eventDescription": "WebSocket connection closed by client",
                        "eventTimestamp": "2024-01-01T11:58:00.0000000Z"
                      }
                    ]
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventQueryDto"
                  }
                },
                "examples": {
                  "Connection Events": {
                    "value": [
                      {
                        "eventId": "12345678-1234-5678-9abc-123456789012",
                        "connectionId": "conn_7f9a8b2c1d3e4f5a",
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "host": "ws-server-01.coinapi.io",
                        "ipAddress": "203.0.113.195",
                        "protocolName": "WebSocket",
                        "serviceName": "coinapi-ws",
                        "dataCenter": "us-east-1",
                        "eventType": "connect",
                        "eventDescription": "WebSocket connection established",
                        "eventTimestamp": "2024-01-01T11:30:00.0000000Z"
                      },
                      {
                        "eventId": "87654321-4321-8765-cba9-876543210987",
                        "connectionId": "conn_7f9a8b2c1d3e4f5a",
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "host": "ws-server-01.coinapi.io",
                        "ipAddress": "203.0.113.195",
                        "protocolName": "WebSocket",
                        "serviceName": "coinapi-ws",
                        "dataCenter": "us-east-1",
                        "eventType": "heartbeat",
                        "eventDescription": "Connection heartbeat received",
                        "eventTimestamp": "2024-01-01T11:55:00.0000000Z"
                      },
                      {
                        "eventId": "abcdef12-3456-7890-abcd-ef1234567890",
                        "connectionId": "conn_7f9a8b2c1d3e4f5a",
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "host": "ws-server-01.coinapi.io",
                        "ipAddress": "203.0.113.195",
                        "protocolName": "WebSocket",
                        "serviceName": "coinapi-ws",
                        "dataCenter": "us-east-1",
                        "eventType": "disconnect",
                        "eventDescription": "WebSocket connection closed by client",
                        "eventTimestamp": "2024-01-01T11:58:00.0000000Z"
                      }
                    ]
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventQueryDto"
                  }
                },
                "examples": {
                  "Connection Events": {
                    "value": "﻿EventId,ConnectionId,OrganizationId,Host,IpAddress,ProtocolName,ServiceName,DataCenter,EventType,EventDescription,EventTimestamp\r\n12345678-1234-5678-9abc-123456789012,conn_7f9a8b2c1d3e4f5a,a1b2c3d4-e5f6-7890-abcd-ef1234567890,ws-server-01.coinapi.io,203.0.113.195,WebSocket,coinapi-ws,us-east-1,connect,WebSocket connection established,01/01/2024 11:30:00\r\n87654321-4321-8765-cba9-876543210987,conn_7f9a8b2c1d3e4f5a,a1b2c3d4-e5f6-7890-abcd-ef1234567890,ws-server-01.coinapi.io,203.0.113.195,WebSocket,coinapi-ws,us-east-1,heartbeat,Connection heartbeat received,01/01/2024 11:55:00\r\nabcdef12-3456-7890-abcd-ef1234567890,conn_7f9a8b2c1d3e4f5a,a1b2c3d4-e5f6-7890-abcd-ef1234567890,ws-server-01.coinapi.io,203.0.113.195,WebSocket,coinapi-ws,us-east-1,disconnect,WebSocket connection closed by client,01/01/2024 11:58:00\r\n"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/connection-analytics/events/timeseries": {
      "get": {
        "tags": [
          "Connection Analytics"
        ],
        "summary": "Gets time-series connection event analytics with flexible filtering for the current organization",
        "description": "Returns connection event analytics for your organization aggregated by time intervals and event types. Use for trend analysis, monitoring dashboards, and event pattern recognition.",
        "operationId": "console_list_connection_analytics_events_timeseries",
        "parameters": [
          {
            "name": "serviceName",
            "in": "query",
            "description": "Optional service name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protocolName",
            "in": "query",
            "description": "Optional protocol name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataCenter",
            "in": "query",
            "description": "Optional data center filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventType",
            "in": "query",
            "description": "Optional event type filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeStart",
            "in": "query",
            "description": "Start time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeEnd",
            "in": "query",
            "description": "End time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "minutes",
            "in": "query",
            "description": "Minutes back from now (alternative to timeStart/timeEnd)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "intervalMinutes",
            "in": "query",
            "description": "Time interval in minutes for grouping (5, 15, 30, 60, 360, 720, 1440)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 60
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Connection event time series retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventTimeSeriesDto"
                  }
                },
                "examples": {
                  "Event Time Series": {
                    "value": [
                      {
                        "timeSlot": "2024-01-01T11:00:00.0000000Z",
                        "eventType": "connect",
                        "eventCount": 12,
                        "uniqueConnections": 11,
                        "uniqueOrganizations": 1
                      },
                      {
                        "timeSlot": "2024-01-01T11:00:00.0000000Z",
                        "eventType": "heartbeat",
                        "eventCount": 156,
                        "uniqueConnections": 11,
                        "uniqueOrganizations": 1
                      },
                      {
                        "timeSlot": "2024-01-01T11:00:00.0000000Z",
                        "eventType": "disconnect",
                        "eventCount": 9,
                        "uniqueConnections": 9,
                        "uniqueOrganizations": 1
                      }
                    ]
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventTimeSeriesDto"
                  }
                },
                "examples": {
                  "Event Time Series": {
                    "value": [
                      {
                        "timeSlot": "2024-01-01T11:00:00.0000000Z",
                        "eventType": "connect",
                        "eventCount": 12,
                        "uniqueConnections": 11,
                        "uniqueOrganizations": 1
                      },
                      {
                        "timeSlot": "2024-01-01T11:00:00.0000000Z",
                        "eventType": "heartbeat",
                        "eventCount": 156,
                        "uniqueConnections": 11,
                        "uniqueOrganizations": 1
                      },
                      {
                        "timeSlot": "2024-01-01T11:00:00.0000000Z",
                        "eventType": "disconnect",
                        "eventCount": 9,
                        "uniqueConnections": 9,
                        "uniqueOrganizations": 1
                      }
                    ]
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventTimeSeriesDto"
                  }
                },
                "examples": {
                  "Event Time Series": {
                    "value": [
                      {
                        "timeSlot": "2024-01-01T11:00:00.0000000Z",
                        "eventType": "connect",
                        "eventCount": 12,
                        "uniqueConnections": 11,
                        "uniqueOrganizations": 1
                      },
                      {
                        "timeSlot": "2024-01-01T11:00:00.0000000Z",
                        "eventType": "heartbeat",
                        "eventCount": 156,
                        "uniqueConnections": 11,
                        "uniqueOrganizations": 1
                      },
                      {
                        "timeSlot": "2024-01-01T11:00:00.0000000Z",
                        "eventType": "disconnect",
                        "eventCount": 9,
                        "uniqueConnections": 9,
                        "uniqueOrganizations": 1
                      }
                    ]
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventTimeSeriesDto"
                  }
                },
                "examples": {
                  "Event Time Series": {
                    "value": "﻿TimeSlot,EventType,EventCount,UniqueConnections,UniqueOrganizations\r\n01/01/2024 11:00:00,connect,12,11,1\r\n01/01/2024 11:00:00,heartbeat,156,11,1\r\n01/01/2024 11:00:00,disconnect,9,9,1\r\n"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/connection-analytics/events/organization-summary": {
      "get": {
        "tags": [
          "Connection Analytics"
        ],
        "summary": "Gets connection event analytics grouped by service, protocol, data center, and event type for the current organization",
        "description": "Returns connection event analytics for your organization grouped by service, protocol, data center, and event type. Use for understanding your organization's connection patterns and troubleshooting.",
        "operationId": "console_list_connection_analytics_events_organization_summary",
        "parameters": [
          {
            "name": "serviceName",
            "in": "query",
            "description": "Optional service name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protocolName",
            "in": "query",
            "description": "Optional protocol name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataCenter",
            "in": "query",
            "description": "Optional data center filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventType",
            "in": "query",
            "description": "Optional event type filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeStart",
            "in": "query",
            "description": "Start time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeEnd",
            "in": "query",
            "description": "End time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "minutes",
            "in": "query",
            "description": "Minutes back from now (alternative to timeStart/timeEnd)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Organization connection event summary retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.OrganizationConnectionEventSummaryDto"
                  }
                },
                "examples": {
                  "Organization Event Summary": {
                    "value": [
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "serviceName": "coinapi-ws",
                        "protocolName": "WebSocket",
                        "dataCenter": "us-east-1",
                        "eventType": "connect",
                        "eventCount": 245,
                        "uniqueConnections": 189,
                        "firstEvent": "2023-12-25T12:00:00.0000000Z",
                        "lastEvent": "2024-01-01T11:45:00.0000000Z"
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "serviceName": "coinapi-ws",
                        "protocolName": "WebSocket",
                        "dataCenter": "us-east-1",
                        "eventType": "heartbeat",
                        "eventCount": 3456,
                        "uniqueConnections": 189,
                        "firstEvent": "2023-12-25T12:00:00.0000000Z",
                        "lastEvent": "2024-01-01T11:59:00.0000000Z"
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "serviceName": "coinapi-rest",
                        "protocolName": "HTTP",
                        "dataCenter": "us-east-1",
                        "eventType": "connect",
                        "eventCount": 1890,
                        "uniqueConnections": 1890,
                        "firstEvent": "2023-12-25T12:00:00.0000000Z",
                        "lastEvent": "2024-01-01T11:57:00.0000000Z"
                      }
                    ]
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.OrganizationConnectionEventSummaryDto"
                  }
                },
                "examples": {
                  "Organization Event Summary": {
                    "value": [
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "serviceName": "coinapi-ws",
                        "protocolName": "WebSocket",
                        "dataCenter": "us-east-1",
                        "eventType": "connect",
                        "eventCount": 245,
                        "uniqueConnections": 189,
                        "firstEvent": "2023-12-25T12:00:00.0000000Z",
                        "lastEvent": "2024-01-01T11:45:00.0000000Z"
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "serviceName": "coinapi-ws",
                        "protocolName": "WebSocket",
                        "dataCenter": "us-east-1",
                        "eventType": "heartbeat",
                        "eventCount": 3456,
                        "uniqueConnections": 189,
                        "firstEvent": "2023-12-25T12:00:00.0000000Z",
                        "lastEvent": "2024-01-01T11:59:00.0000000Z"
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "serviceName": "coinapi-rest",
                        "protocolName": "HTTP",
                        "dataCenter": "us-east-1",
                        "eventType": "connect",
                        "eventCount": 1890,
                        "uniqueConnections": 1890,
                        "firstEvent": "2023-12-25T12:00:00.0000000Z",
                        "lastEvent": "2024-01-01T11:57:00.0000000Z"
                      }
                    ]
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.OrganizationConnectionEventSummaryDto"
                  }
                },
                "examples": {
                  "Organization Event Summary": {
                    "value": [
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "serviceName": "coinapi-ws",
                        "protocolName": "WebSocket",
                        "dataCenter": "us-east-1",
                        "eventType": "connect",
                        "eventCount": 245,
                        "uniqueConnections": 189,
                        "firstEvent": "2023-12-25T12:00:00.0000000Z",
                        "lastEvent": "2024-01-01T11:45:00.0000000Z"
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "serviceName": "coinapi-ws",
                        "protocolName": "WebSocket",
                        "dataCenter": "us-east-1",
                        "eventType": "heartbeat",
                        "eventCount": 3456,
                        "uniqueConnections": 189,
                        "firstEvent": "2023-12-25T12:00:00.0000000Z",
                        "lastEvent": "2024-01-01T11:59:00.0000000Z"
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "serviceName": "coinapi-rest",
                        "protocolName": "HTTP",
                        "dataCenter": "us-east-1",
                        "eventType": "connect",
                        "eventCount": 1890,
                        "uniqueConnections": 1890,
                        "firstEvent": "2023-12-25T12:00:00.0000000Z",
                        "lastEvent": "2024-01-01T11:57:00.0000000Z"
                      }
                    ]
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.OrganizationConnectionEventSummaryDto"
                  }
                },
                "examples": {
                  "Organization Event Summary": {
                    "value": "﻿OrganizationId,ServiceName,ProtocolName,DataCenter,EventType,EventCount,UniqueConnections,FirstEvent,LastEvent\r\na1b2c3d4-e5f6-7890-abcd-ef1234567890,coinapi-ws,WebSocket,us-east-1,connect,245,189,12/25/2023 12:00:00,01/01/2024 11:45:00\r\na1b2c3d4-e5f6-7890-abcd-ef1234567890,coinapi-ws,WebSocket,us-east-1,heartbeat,3456,189,12/25/2023 12:00:00,01/01/2024 11:59:00\r\na1b2c3d4-e5f6-7890-abcd-ef1234567890,coinapi-rest,HTTP,us-east-1,connect,1890,1890,12/25/2023 12:00:00,01/01/2024 11:57:00\r\n"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/connectionlog/status": {
      "get": {
        "tags": [
          "Connection Logs"
        ],
        "summary": "Get connection status",
        "description": "Retrieves connection status logs for the organization, optionally filtered by connection ID",
        "operationId": "console_list_connection_status",
        "parameters": [
          {
            "name": "connectionId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved connection status",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionStatusDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionStatusDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionStatusDto"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionStatusDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Organization not found"
          }
        }
      }
    },
    "/api/connectionlog/events": {
      "get": {
        "tags": [
          "Connection Logs"
        ],
        "summary": "Get connection events",
        "description": "Retrieves connection events for a specific connection ID within the organization",
        "operationId": "console_list_connection_events",
        "parameters": [
          {
            "name": "connectionId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved connection events",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventDto"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionLog.ConnectionEventDto"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Connection not found"
          }
        }
      }
    },
    "/api/console/free-credits/status": {
      "get": {
        "tags": [
          "Free Credits"
        ],
        "summary": "Get free trial credit status for the authenticated organization",
        "description": "Returns a read-only status for $25 USD (2500 cents) in free trial credits.\nThe organization ID is read from the authenticated JWT claims — no orgId parameter is required.\nThe response includes fields for credits already unlocked, verified payment method presence,\nother-rule disqualification, and a state/message suitable for rendering in the Console.",
        "operationId": "console_GetFreeCreditsStatus",
        "responses": {
          "200": {
            "description": "Free trial credit status retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Models.FreeCreditsStatusResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Models.FreeCreditsStatusResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Models.FreeCreditsStatusResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Organization not found"
          }
        }
      }
    },
    "/api/inbound-leads/contact-us-form-submission": {
      "post": {
        "tags": [
          "Inbound Leads"
        ],
        "summary": "Post contact us form submission",
        "description": "Accepts a website contact-us form submission using an inbound-leads organization API key, persists it as a webhook, and processes it asynchronously.",
        "operationId": "console_post_inbound_leads_contact_us_form_submission",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InboundLeads.ContactUsFormSubmissionDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InboundLeads.ContactUsFormSubmissionDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InboundLeads.ContactUsFormSubmissionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully queued contact us form submission"
          },
          "400": {
            "description": "Invalid request"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "API key is not from the inbound-leads organization"
          }
        }
      }
    },
    "/invoices/paid": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Get paid invoices",
        "description": "Retrieves all paid invoices for the organization",
        "operationId": "console_list_invoices_paid",
        "responses": {
          "200": {
            "description": "Successfully retrieved paid invoices",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationInvoice"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationInvoice"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationInvoice"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationInvoice"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/invoices/nopaid": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Get unpaid invoices",
        "description": "Retrieves all unpaid invoices for the organization",
        "operationId": "console_list_invoices_unpaid",
        "responses": {
          "200": {
            "description": "Successfully retrieved unpaid invoices",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationInvoice"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationInvoice"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationInvoice"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationInvoice"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/attribution/link": {
      "post": {
        "tags": [
          "LinkAttribution"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Models.LinkAttributionRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Models.LinkAttributionRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Models.LinkAttributionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/metrics/usage/conf": {
      "get": {
        "tags": [
          "Metrics Usage"
        ],
        "summary": "Get metrics configuration",
        "description": "Retrieves available metrics and their dimensions for usage analysis",
        "operationId": "console_get_metrics_usage_conf",
        "responses": {
          "200": {
            "description": "Successfully retrieved metrics configuration"
          }
        }
      }
    },
    "/api/metrics/usage/filters": {
      "get": {
        "tags": [
          "Metrics Usage"
        ],
        "summary": "Get metric filters",
        "description": "Retrieves available filters for a specific metric",
        "operationId": "console_list_metrics_usage_filters",
        "parameters": [
          {
            "name": "metric_name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved metric filters"
          },
          "400": {
            "description": "Invalid or missing metric name"
          }
        }
      }
    },
    "/api/metrics/usage/group": {
      "post": {
        "tags": [
          "Metrics Usage"
        ],
        "summary": "Get grouped metric data",
        "description": "Retrieves usage metrics grouped by specified dimensions with filtering options",
        "operationId": "console_create_metrics_usage_group",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Models.MetricGroupDataRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Models.MetricGroupDataRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Models.MetricGroupDataRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved grouped metric data"
          },
          "400": {
            "description": "Invalid or missing required parameters"
          }
        }
      }
    },
    "/api/notifications": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "Get user notification settings",
        "description": "Retrieves notification preferences for the current user",
        "operationId": "console_get_user_notifications",
        "responses": {
          "200": {
            "description": "Successfully retrieved user notification settings",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Notification.ListNotificationsForUserRequest"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Notification.ListNotificationsForUserRequest"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Notification.ListNotificationsForUserRequest"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Notification.ListNotificationsForUserRequest"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Notifications"
        ],
        "summary": "Update user notification setting",
        "description": "Updates notification preference for a specific notification type",
        "operationId": "console_update_user_notification",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Notification.NotificationUserChangeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Notification.NotificationUserChangeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Notification.NotificationUserChangeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully updated notification setting",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Model.NotificationUserSettings"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.NotificationUserSettings"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.NotificationUserSettings"
                }
              }
            }
          }
        }
      }
    },
    "/api/notifications/history": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "Get notification history",
        "description": "Retrieves notification history for the organization",
        "operationId": "console_get_notification_history",
        "responses": {
          "200": {
            "description": "Successfully retrieved notification history",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.NotificationHistory"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.NotificationHistory"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.NotificationHistory"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.NotificationHistory"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/notifications/emails": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "Get email notifications",
        "description": "Retrieves email notification settings for the organization",
        "operationId": "console_get_notification_emails",
        "responses": {
          "200": {
            "description": "Successfully retrieved email notifications",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Services.EmailNotificationsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Services.EmailNotificationsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Services.EmailNotificationsDto"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Notifications"
        ],
        "summary": "Update email notifications",
        "description": "Updates email notification settings for the organization",
        "operationId": "console_create_notification_emails",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Services.EmailNotificationsDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Services.EmailNotificationsDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Services.EmailNotificationsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Email notification settings successfully updated"
          }
        }
      }
    },
    "/api/organization/balance/history": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get balance transaction history",
        "description": "Retrieves organization balance transaction history, optionally filtered by date range",
        "operationId": "console_list_organization_balance_history",
        "parameters": [
          {
            "name": "startTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved balance history",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.OrganizationBalanceTransactionDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.OrganizationBalanceTransactionDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.OrganizationBalanceTransactionDto"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.OrganizationBalanceTransactionDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid date range"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/api/organization": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get organization details",
        "description": "Retrieves details of the current organization",
        "operationId": "console_list_organization",
        "responses": {
          "200": {
            "description": "Successfully retrieved organization details",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Model.Organization"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.Organization"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.Organization"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Organization"
        ],
        "summary": "Update organization details",
        "description": "Updates organization information (admin only)",
        "operationId": "console_create_organization",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.Organization"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.Organization"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model.Organization"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully updated organization details",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Model.Organization"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.Organization"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.Organization"
                }
              }
            }
          },
          "400": {
            "description": "Invalid organization data"
          },
          "401": {
            "description": "Unauthorized - admin role required"
          }
        }
      }
    },
    "/api/organization/slack-channel-request": {
      "post": {
        "tags": [
          "Organization"
        ],
        "summary": "Request Slack channel",
        "description": "Requests a Slack channel for the organization",
        "operationId": "console_create_organization_slack_channel_request",
        "responses": {
          "200": {
            "description": "Successfully requested Slack channel",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Model.Organization"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.Organization"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.Organization"
                }
              }
            }
          },
          "400": {
            "description": "Failed to request Slack channel"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/organization/countries": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get countries list",
        "description": "Retrieves list of available countries for organization setup",
        "operationId": "console_get_organization_countries",
        "responses": {
          "200": {
            "description": "Successfully retrieved countries list"
          }
        }
      }
    },
    "/api/organization/tier-limits": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get organization tier limits",
        "description": "Retrieves max concurrency and RPM limits for each organization tier",
        "operationId": "console_get_organization_tier_limits",
        "responses": {
          "200": {
            "description": "Successfully retrieved organization tier limits",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.OrganizationTierLimitDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.OrganizationTierLimitDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.OrganizationTierLimitDto"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.OrganizationTierLimitDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/organization/usage/per-day": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get daily usage statistics",
        "description": "Retrieves organization usage statistics aggregated by day for the specified date range",
        "operationId": "console_list_organization_usage_per_day",
        "parameters": [
          {
            "name": "startTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved daily usage statistics",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid date range"
          }
        }
      }
    },
    "/api/organization/usage/per-month": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get monthly usage statistics",
        "description": "Retrieves organization usage statistics aggregated by month for the specified year and month",
        "operationId": "console_list_organization_usage_per_month",
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "month",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved monthly usage statistics",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid year or month parameter"
          }
        }
      }
    },
    "/api/organization/usage/uninvoiced": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get uninvoiced usage statistics",
        "description": "Retrieves organization usage statistics that have not yet been invoiced",
        "operationId": "console_list_organization_usage_uninvoiced",
        "responses": {
          "200": {
            "description": "Successfully retrieved uninvoiced usage statistics",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationUsageDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/organization/usage/daterange": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get usage date range",
        "description": "Retrieves the available date range for organization usage data",
        "operationId": "console_get_organization_usage_daterange",
        "responses": {
          "200": {
            "description": "Successfully retrieved usage date range",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Model.UsageDateRangeDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.UsageDateRangeDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.UsageDateRangeDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/organization/ip-networks": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "List networks the organization used",
        "description": "The organization's IPs of the last `days` days (1-90) grouped by /24 (IPv4) or /48 (IPv6) network, with the autonomous system, IP count, first and last seen and the API keys that used each network. At most 2000 networks, most recently used first.",
        "operationId": "console_list_organization_ip_networks",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Networks",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationIpAddresses.OrganizationIpNetworksResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationIpAddresses.OrganizationIpNetworksResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationIpAddresses.OrganizationIpNetworksResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/organization/ip-addresses": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "List IP addresses the organization used",
        "description": "The organization's IPs of the last `days` days (1-90), optionally only those inside `network` (CIDR), with the autonomous system and the API keys that used each IP. At most `limit` (default 500, max 2000), most recently used first.",
        "operationId": "console_list_organization_ip_addresses",
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          },
          {
            "name": "network",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "IP addresses",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationIpAddresses.OrganizationIpAddressesResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationIpAddresses.OrganizationIpAddressesResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationIpAddresses.OrganizationIpAddressesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid network"
          }
        }
      }
    },
    "/api/payments": {
      "get": {
        "tags": [
          "Payment Cards"
        ],
        "summary": "Get payment cards",
        "description": "Retrieves all payment cards associated with the organization",
        "operationId": "console_list_payment",
        "responses": {
          "200": {
            "description": "Successfully retrieved payment cards"
          }
        }
      }
    },
    "/api/payments/setdefaultcard": {
      "patch": {
        "tags": [
          "Payment Cards"
        ],
        "summary": "Set default payment card",
        "description": "Sets a payment card as the default for the organization",
        "operationId": "console_patch_payment_set_default",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.CardData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.CardData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model.CardData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully set default payment card"
          },
          "404": {
            "description": "Payment card not found"
          }
        }
      }
    },
    "/api/payments/deletecard": {
      "patch": {
        "tags": [
          "Payment Cards"
        ],
        "summary": "Delete payment card",
        "description": "Removes a payment card from the organization (requires no unpaid invoices or active subscriptions)",
        "operationId": "console_patch_payment_delete_card",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.CardData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.CardData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model.CardData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully deleted payment card"
          },
          "400": {
            "description": "Cannot delete card due to unpaid invoices, negative balance, or active subscriptions"
          },
          "404": {
            "description": "Payment card not found"
          }
        }
      }
    },
    "/api/payments/addcard": {
      "put": {
        "tags": [
          "Payment Cards"
        ],
        "summary": "Add new payment card",
        "description": "Creates a checkout session to add a new payment card to the organization",
        "operationId": "console_update_payment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully created checkout session for adding payment card"
          },
          "400": {
            "description": "Invalid redirect URL or request data"
          }
        }
      }
    },
    "/api/payment-methods": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Get payment methods",
        "description": "Retrieves all payment methods for the organization with default method marked",
        "operationId": "console_list_payment_methods",
        "responses": {
          "200": {
            "description": "Successfully retrieved payment methods",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationPaymentMethod"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationPaymentMethod"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationPaymentMethod"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationPaymentMethod"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Add payment method",
        "description": "Creates a checkout session for adding a new payment method",
        "operationId": "console_update_payment_methods",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully created payment method link"
          }
        }
      }
    },
    "/api/payment-methods/{id}/set-default": {
      "patch": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Set default payment method",
        "description": "Sets a payment method as the default for the organization",
        "operationId": "console_patch_payment_methods",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully set default payment method"
          },
          "404": {
            "description": "Payment method not found"
          }
        }
      }
    },
    "/api/payment-methods/{id}": {
      "delete": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Delete payment method",
        "description": "Removes a payment method from the organization",
        "operationId": "console_delete_payment_methods",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deleted payment method"
          },
          "404": {
            "description": "Payment method not found"
          }
        }
      }
    },
    "/api/billing/pricing-migrations": {
      "get": {
        "tags": [
          "Pricing Migrations"
        ],
        "summary": "Get movable pricing migrations",
        "description": "Returns active pricing exceptions that can be moved immediately to the currently active global pricing plan.",
        "operationId": "console_get_pricing_migrations",
        "responses": {
          "200": {
            "description": "Movable pricing migrations retrieved",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.PricingMigrationItem"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.PricingMigrationItem"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.PricingMigrationItem"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.PricingMigrationItem"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/billing/pricing-migrations/{exceptionId}/move-now": {
      "post": {
        "tags": [
          "Pricing Migrations"
        ],
        "summary": "Move pricing migration now",
        "description": "Ends a movable pricing exception immediately so the organization switches to the active global pricing plan.",
        "operationId": "console_post_pricing_migrations_move_now",
        "parameters": [
          {
            "name": "exceptionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Pricing migration moved",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Models.PricingMigrationMoveNowResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Models.PricingMigrationMoveNowResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Models.PricingMigrationMoveNowResult"
                }
              }
            }
          },
          "404": {
            "description": "Pricing migration exception not found or not movable"
          }
        }
      }
    },
    "/api/products": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Get all products",
        "description": "Retrieves all available API products with pricing information. Use productName to limit the response to a single product by name or ID.",
        "operationId": "console_list_products",
        "parameters": [
          {
            "name": "productName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved products list",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Products.ProductCatalogResponse"
                  }
                },
                "example": [
                  {
                    "id": "FlatFiles",
                    "name": "Flat Files API",
                    "isApiProductType": true,
                    "displayOrder": 4,
                    "productLine": "CoinAPI",
                    "skus": [
                      {
                        "id": "3aa478cc-94da-1542-bb61-54d74222ffe9",
                        "name": "Data Transfer - OHLCV 1DAY - 1BROKER",
                        "quotaValueDefault": 0,
                        "prices": [
                          {
                            "id": "3aa478cc-94da-1542-bb61-54d74222ffe9",
                            "description": "0.00 UC per byte",
                            "beginRange": 0,
                            "displayUnit": "Bytes",
                            "pricePerUnitUSD": 0.00,
                            "unitsToDisplayUnit": 1,
                            "unitsToPriceUnit": 1
                          }
                        ]
                      },
                      {
                        "id": "bfccbd32-162f-8048-b08c-f66e4732a585",
                        "name": "Data Transfer - OHLCV 1HRS - 1BROKER",
                        "quotaValueDefault": 0,
                        "prices": [
                          {
                            "id": "bfccbd32-162f-8048-b08c-f66e4732a585",
                            "description": "0.00 UC per byte",
                            "beginRange": 0,
                            "displayUnit": "Bytes",
                            "pricePerUnitUSD": 0.00,
                            "unitsToDisplayUnit": 1,
                            "unitsToPriceUnit": 1
                          }
                        ]
                      },
                      {
                        "id": "e5a2cb77-be9f-944d-9b6a-262ed4a9c1cb",
                        "name": "Data Transfer - OHLCV 1MIN - 1BROKER",
                        "quotaValueDefault": 0,
                        "prices": [
                          {
                            "id": "e5a2cb77-be9f-944d-9b6a-262ed4a9c1cb",
                            "description": "0.00 UC per byte",
                            "beginRange": 0,
                            "displayUnit": "Bytes",
                            "pricePerUnitUSD": 0.00,
                            "unitsToDisplayUnit": 1,
                            "unitsToPriceUnit": 1
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Products.ProductCatalogResponse"
                  }
                },
                "example": [
                  {
                    "id": "FlatFiles",
                    "name": "Flat Files API",
                    "isApiProductType": true,
                    "displayOrder": 4,
                    "productLine": "CoinAPI",
                    "skus": [
                      {
                        "id": "3aa478cc-94da-1542-bb61-54d74222ffe9",
                        "name": "Data Transfer - OHLCV 1DAY - 1BROKER",
                        "quotaValueDefault": 0,
                        "prices": [
                          {
                            "id": "3aa478cc-94da-1542-bb61-54d74222ffe9",
                            "description": "0.00 UC per byte",
                            "beginRange": 0,
                            "displayUnit": "Bytes",
                            "pricePerUnitUSD": 0.00,
                            "unitsToDisplayUnit": 1,
                            "unitsToPriceUnit": 1
                          }
                        ]
                      },
                      {
                        "id": "bfccbd32-162f-8048-b08c-f66e4732a585",
                        "name": "Data Transfer - OHLCV 1HRS - 1BROKER",
                        "quotaValueDefault": 0,
                        "prices": [
                          {
                            "id": "bfccbd32-162f-8048-b08c-f66e4732a585",
                            "description": "0.00 UC per byte",
                            "beginRange": 0,
                            "displayUnit": "Bytes",
                            "pricePerUnitUSD": 0.00,
                            "unitsToDisplayUnit": 1,
                            "unitsToPriceUnit": 1
                          }
                        ]
                      },
                      {
                        "id": "e5a2cb77-be9f-944d-9b6a-262ed4a9c1cb",
                        "name": "Data Transfer - OHLCV 1MIN - 1BROKER",
                        "quotaValueDefault": 0,
                        "prices": [
                          {
                            "id": "e5a2cb77-be9f-944d-9b6a-262ed4a9c1cb",
                            "description": "0.00 UC per byte",
                            "beginRange": 0,
                            "displayUnit": "Bytes",
                            "pricePerUnitUSD": 0.00,
                            "unitsToDisplayUnit": 1,
                            "unitsToPriceUnit": 1
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Products.ProductCatalogResponse"
                  }
                },
                "example": [
                  {
                    "id": "FlatFiles",
                    "name": "Flat Files API",
                    "isApiProductType": true,
                    "displayOrder": 4,
                    "productLine": "CoinAPI",
                    "skus": [
                      {
                        "id": "3aa478cc-94da-1542-bb61-54d74222ffe9",
                        "name": "Data Transfer - OHLCV 1DAY - 1BROKER",
                        "quotaValueDefault": 0,
                        "prices": [
                          {
                            "id": "3aa478cc-94da-1542-bb61-54d74222ffe9",
                            "description": "0.00 UC per byte",
                            "beginRange": 0,
                            "displayUnit": "Bytes",
                            "pricePerUnitUSD": 0.00,
                            "unitsToDisplayUnit": 1,
                            "unitsToPriceUnit": 1
                          }
                        ]
                      },
                      {
                        "id": "bfccbd32-162f-8048-b08c-f66e4732a585",
                        "name": "Data Transfer - OHLCV 1HRS - 1BROKER",
                        "quotaValueDefault": 0,
                        "prices": [
                          {
                            "id": "bfccbd32-162f-8048-b08c-f66e4732a585",
                            "description": "0.00 UC per byte",
                            "beginRange": 0,
                            "displayUnit": "Bytes",
                            "pricePerUnitUSD": 0.00,
                            "unitsToDisplayUnit": 1,
                            "unitsToPriceUnit": 1
                          }
                        ]
                      },
                      {
                        "id": "e5a2cb77-be9f-944d-9b6a-262ed4a9c1cb",
                        "name": "Data Transfer - OHLCV 1MIN - 1BROKER",
                        "quotaValueDefault": 0,
                        "prices": [
                          {
                            "id": "e5a2cb77-be9f-944d-9b6a-262ed4a9c1cb",
                            "description": "0.00 UC per byte",
                            "beginRange": 0,
                            "displayUnit": "Bytes",
                            "pricePerUnitUSD": 0.00,
                            "unitsToDisplayUnit": 1,
                            "unitsToPriceUnit": 1
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Products.ProductCatalogResponse"
                  }
                },
                "example": "﻿Id,Name,IsApiProductType,DisplayOrder,ProductLine\r\nFlatFiles,Flat Files API,True,4,CoinAPI\r\n"
              }
            }
          },
          "404": {
            "description": "Product not found"
          }
        }
      }
    },
    "/api/quota": {
      "get": {
        "tags": [
          "Quota"
        ],
        "summary": "Get quota information",
        "description": "Retrieves current quota limits and usage for the organization",
        "operationId": "console_list_quota",
        "responses": {
          "200": {
            "description": "Successfully retrieved quota information"
          }
        }
      }
    },
    "/api/referrals": {
      "get": {
        "tags": [
          "Referrals"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/referrals/code": {
      "post": {
        "tags": [
          "Referrals"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Referrals.SetReferralCodeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Referrals.SetReferralCodeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Referrals.SetReferralCodeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/referrals/report": {
      "get": {
        "tags": [
          "Referrals"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/referrals/link-stats": {
      "get": {
        "tags": [
          "Referrals"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/referrals/payouts": {
      "get": {
        "tags": [
          "Referrals"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/referrals/payout-method": {
      "post": {
        "tags": [
          "Referrals"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Referrals.SetReferralPayoutMethodRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Referrals.SetReferralPayoutMethodRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Referrals.SetReferralPayoutMethodRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/referrals/payout-method/stripe-connect": {
      "post": {
        "tags": [
          "Referrals"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Referrals.CompleteStripeConnectRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Referrals.CompleteStripeConnectRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Referrals.CompleteStripeConnectRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/request-logs/query": {
      "get": {
        "tags": [
          "Request Logs"
        ],
        "summary": "Gets raw request logs with flexible filtering for the current organization",
        "description": "Returns raw request log entries for your organization with flexible filtering options. Use for detailed analysis, UI display, and export. Status code filtering: 1-digit (e.g., '4') for 4xx range, 2-digit (e.g., '40') for 40x range, 3-digit (e.g., '404') for exact match.",
        "operationId": "console_list_request_log_query",
        "parameters": [
          {
            "name": "traceId",
            "in": "query",
            "description": "Optional trace ID filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service",
            "in": "query",
            "description": "Optional service name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "route",
            "in": "query",
            "description": "Optional route filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statusCode",
            "in": "query",
            "description": "Optional status code filter (1-digit: 4xx range, 2-digit: 40x range, 3-digit: exact match)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeStart",
            "in": "query",
            "description": "Start time for the query range",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeEnd",
            "in": "query",
            "description": "End time for the query range",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "minutes",
            "in": "query",
            "description": "Minutes back from now (alternative to timeStart/timeEnd)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request logs retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.RequestLogDto"
                  }
                },
                "examples": {
                  "Successful API Request": {
                    "value": {
                      "hostname": "api-server-01",
                      "service": "coinapi-rest",
                      "environment": "production",
                      "eventDate": "2024-01-15T00:00:00.0000000Z",
                      "eventTime": "2024-01-15T14:30:25.0000000Z",
                      "eventTimeMicroseconds": "2024-01-15T14:30:25.1234560Z",
                      "requestStartTime": "2024-01-15T14:30:25.0000000Z",
                      "requestStartTimeMicroseconds": "2024-01-15T14:30:25.1234560Z",
                      "requestDurationMs": 145,
                      "timeToFirstByteMs": 0,
                      "serverToClientDurationMs": 0,
                      "httpMethod": "GET",
                      "scheme": "https",
                      "isSecure": 1,
                      "host": "rest.coinapi.io",
                      "path": "/v1/exchanges",
                      "route": "/v1/exchanges",
                      "queryString": "filter_exchange_id=BINANCE",
                      "requestUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
                      "requestReferer": "https://coinapi.io",
                      "requestContentType": "application/json",
                      "requestXForwardedFor": "203.0.113.195",
                      "requestBytes": 512,
                      "idempotencyKey": "idmp_7f9a8b2c1d3e4f5g",
                      "userId": "user_12345",
                      "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                      "apiKeyId": "f1e2d3c4-b5a6-9879-8765-4321dcba0987",
                      "authSubject": "user:12345",
                      "authScopesCsv": "read:exchanges,read:assets",
                      "requestId": "req_7f9a8b2c1d3e4f5g",
                      "traceId": "trace_1a2b3c4d5e6f7890",
                      "spanId": "span_9876543210abcdef",
                      "parentSpanId": "span_fedcba0987654321",
                      "logComment": "Exchange data request",
                      "tagsCsv": "api:v1,endpoint:exchanges",
                      "clientIp": "203.0.113.195",
                      "clientPort": 54321,
                      "tlsProtocol": "TLSv1.3",
                      "tlsCipher": "TLS_AES_256_GCM_SHA384",
                      "mtlsPeerFingerprint": "SHA256:abcd1234...",
                      "rateLimitBucket": "api_key_daily",
                      "rateLimitLimit": 10000,
                      "rateLimitRemaining": 9847,
                      "rateLimitResetTime": "2024-01-16T00:00:00.0000000Z",
                      "statusCode": 200,
                      "statusFamily": 0,
                      "responseContentType": "application/json",
                      "responseBytes": 2048,
                      "responseBytesCompressed": 0,
                      "localPort": 0,
                      "remotePort": 0,
                      "clientCertificatePresent": 0,
                      "requestHeadersSize": 0,
                      "responseHeadersSize": 0,
                      "connectionReused": 0,
                      "requestAborted": 0,
                      "upgradeRequested": 0,
                      "hasRequestBody": 0,
                      "requestHeadersValid": 0
                    }
                  },
                  "Error Response": {
                    "value": {
                      "hostname": "api-server-02",
                      "service": "coinapi-rest",
                      "environment": "production",
                      "eventDate": "2024-01-15T00:00:00.0000000Z",
                      "eventTime": "2024-01-15T15:45:30.0000000Z",
                      "eventTimeMicroseconds": "2024-01-15T15:45:30.4567890Z",
                      "requestStartTime": "2024-01-15T15:45:30.0000000Z",
                      "requestStartTimeMicroseconds": "2024-01-15T15:45:30.4567890Z",
                      "requestDurationMs": 89,
                      "timeToFirstByteMs": 0,
                      "serverToClientDurationMs": 0,
                      "httpMethod": "GET",
                      "scheme": "https",
                      "isSecure": 1,
                      "host": "rest.coinapi.io",
                      "path": "/v1/ohlcv/latest",
                      "route": "/v1/ohlcv/latest",
                      "queryString": "symbol_id=INVALID_SYMBOL",
                      "requestUserAgent": "CoinAPI-Client/1.0",
                      "requestReferer": "",
                      "requestContentType": "application/json",
                      "requestXForwardedFor": "198.51.100.42",
                      "requestBytes": 256,
                      "idempotencyKey": "idmp_9f8e7d6c5b4a3210",
                      "userId": "user_67890",
                      "organizationId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
                      "apiKeyId": "e5f6a7b8-c9d0-1234-5678-90abcdef1234",
                      "authSubject": "user:67890",
                      "authScopesCsv": "read:ohlcv",
                      "requestId": "req_9f8e7d6c5b4a3210",
                      "traceId": "trace_5e4d3c2b1a098765",
                      "spanId": "span_4321098765fedcba",
                      "parentSpanId": "span_abcdef1234567890",
                      "logComment": "OHLCV data request with invalid symbol",
                      "tagsCsv": "api:v1,endpoint:ohlcv,error:invalid_symbol",
                      "clientIp": "198.51.100.42",
                      "clientPort": 49152,
                      "tlsProtocol": "TLSv1.3",
                      "tlsCipher": "TLS_AES_256_GCM_SHA384",
                      "mtlsPeerFingerprint": "",
                      "rateLimitBucket": "api_key_daily",
                      "rateLimitLimit": 5000,
                      "rateLimitRemaining": 4876,
                      "rateLimitResetTime": "2024-01-16T00:00:00.0000000Z",
                      "statusCode": 400,
                      "statusFamily": 0,
                      "responseContentType": "application/json",
                      "responseBytes": 156,
                      "responseBytesCompressed": 0,
                      "errorCode": "INVALID_SYMBOL",
                      "errorMessage": "The specified symbol ID is not valid or does not exist",
                      "localPort": 0,
                      "remotePort": 0,
                      "clientCertificatePresent": 0,
                      "requestHeadersSize": 0,
                      "responseHeadersSize": 0,
                      "connectionReused": 0,
                      "requestAborted": 0,
                      "upgradeRequested": 0,
                      "hasRequestBody": 0,
                      "requestHeadersValid": 0
                    }
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.RequestLogDto"
                  }
                },
                "examples": {
                  "Successful API Request": {
                    "value": {
                      "hostname": "api-server-01",
                      "service": "coinapi-rest",
                      "environment": "production",
                      "eventDate": "2024-01-15T00:00:00.0000000Z",
                      "eventTime": "2024-01-15T14:30:25.0000000Z",
                      "eventTimeMicroseconds": "2024-01-15T14:30:25.1234560Z",
                      "requestStartTime": "2024-01-15T14:30:25.0000000Z",
                      "requestStartTimeMicroseconds": "2024-01-15T14:30:25.1234560Z",
                      "requestDurationMs": 145,
                      "timeToFirstByteMs": 0,
                      "serverToClientDurationMs": 0,
                      "httpMethod": "GET",
                      "scheme": "https",
                      "isSecure": 1,
                      "host": "rest.coinapi.io",
                      "path": "/v1/exchanges",
                      "route": "/v1/exchanges",
                      "queryString": "filter_exchange_id=BINANCE",
                      "requestUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
                      "requestReferer": "https://coinapi.io",
                      "requestContentType": "application/json",
                      "requestXForwardedFor": "203.0.113.195",
                      "requestBytes": 512,
                      "idempotencyKey": "idmp_7f9a8b2c1d3e4f5g",
                      "userId": "user_12345",
                      "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                      "apiKeyId": "f1e2d3c4-b5a6-9879-8765-4321dcba0987",
                      "authSubject": "user:12345",
                      "authScopesCsv": "read:exchanges,read:assets",
                      "requestId": "req_7f9a8b2c1d3e4f5g",
                      "traceId": "trace_1a2b3c4d5e6f7890",
                      "spanId": "span_9876543210abcdef",
                      "parentSpanId": "span_fedcba0987654321",
                      "logComment": "Exchange data request",
                      "tagsCsv": "api:v1,endpoint:exchanges",
                      "clientIp": "203.0.113.195",
                      "clientPort": 54321,
                      "tlsProtocol": "TLSv1.3",
                      "tlsCipher": "TLS_AES_256_GCM_SHA384",
                      "mtlsPeerFingerprint": "SHA256:abcd1234...",
                      "rateLimitBucket": "api_key_daily",
                      "rateLimitLimit": 10000,
                      "rateLimitRemaining": 9847,
                      "rateLimitResetTime": "2024-01-16T00:00:00.0000000Z",
                      "statusCode": 200,
                      "statusFamily": 0,
                      "responseContentType": "application/json",
                      "responseBytes": 2048,
                      "responseBytesCompressed": 0,
                      "localPort": 0,
                      "remotePort": 0,
                      "clientCertificatePresent": 0,
                      "requestHeadersSize": 0,
                      "responseHeadersSize": 0,
                      "connectionReused": 0,
                      "requestAborted": 0,
                      "upgradeRequested": 0,
                      "hasRequestBody": 0,
                      "requestHeadersValid": 0
                    }
                  },
                  "Error Response": {
                    "value": {
                      "hostname": "api-server-02",
                      "service": "coinapi-rest",
                      "environment": "production",
                      "eventDate": "2024-01-15T00:00:00.0000000Z",
                      "eventTime": "2024-01-15T15:45:30.0000000Z",
                      "eventTimeMicroseconds": "2024-01-15T15:45:30.4567890Z",
                      "requestStartTime": "2024-01-15T15:45:30.0000000Z",
                      "requestStartTimeMicroseconds": "2024-01-15T15:45:30.4567890Z",
                      "requestDurationMs": 89,
                      "timeToFirstByteMs": 0,
                      "serverToClientDurationMs": 0,
                      "httpMethod": "GET",
                      "scheme": "https",
                      "isSecure": 1,
                      "host": "rest.coinapi.io",
                      "path": "/v1/ohlcv/latest",
                      "route": "/v1/ohlcv/latest",
                      "queryString": "symbol_id=INVALID_SYMBOL",
                      "requestUserAgent": "CoinAPI-Client/1.0",
                      "requestReferer": "",
                      "requestContentType": "application/json",
                      "requestXForwardedFor": "198.51.100.42",
                      "requestBytes": 256,
                      "idempotencyKey": "idmp_9f8e7d6c5b4a3210",
                      "userId": "user_67890",
                      "organizationId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
                      "apiKeyId": "e5f6a7b8-c9d0-1234-5678-90abcdef1234",
                      "authSubject": "user:67890",
                      "authScopesCsv": "read:ohlcv",
                      "requestId": "req_9f8e7d6c5b4a3210",
                      "traceId": "trace_5e4d3c2b1a098765",
                      "spanId": "span_4321098765fedcba",
                      "parentSpanId": "span_abcdef1234567890",
                      "logComment": "OHLCV data request with invalid symbol",
                      "tagsCsv": "api:v1,endpoint:ohlcv,error:invalid_symbol",
                      "clientIp": "198.51.100.42",
                      "clientPort": 49152,
                      "tlsProtocol": "TLSv1.3",
                      "tlsCipher": "TLS_AES_256_GCM_SHA384",
                      "mtlsPeerFingerprint": "",
                      "rateLimitBucket": "api_key_daily",
                      "rateLimitLimit": 5000,
                      "rateLimitRemaining": 4876,
                      "rateLimitResetTime": "2024-01-16T00:00:00.0000000Z",
                      "statusCode": 400,
                      "statusFamily": 0,
                      "responseContentType": "application/json",
                      "responseBytes": 156,
                      "responseBytesCompressed": 0,
                      "errorCode": "INVALID_SYMBOL",
                      "errorMessage": "The specified symbol ID is not valid or does not exist",
                      "localPort": 0,
                      "remotePort": 0,
                      "clientCertificatePresent": 0,
                      "requestHeadersSize": 0,
                      "responseHeadersSize": 0,
                      "connectionReused": 0,
                      "requestAborted": 0,
                      "upgradeRequested": 0,
                      "hasRequestBody": 0,
                      "requestHeadersValid": 0
                    }
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.RequestLogDto"
                  }
                },
                "examples": {
                  "Successful API Request": {
                    "value": {
                      "hostname": "api-server-01",
                      "service": "coinapi-rest",
                      "environment": "production",
                      "eventDate": "2024-01-15T00:00:00.0000000Z",
                      "eventTime": "2024-01-15T14:30:25.0000000Z",
                      "eventTimeMicroseconds": "2024-01-15T14:30:25.1234560Z",
                      "requestStartTime": "2024-01-15T14:30:25.0000000Z",
                      "requestStartTimeMicroseconds": "2024-01-15T14:30:25.1234560Z",
                      "requestDurationMs": 145,
                      "timeToFirstByteMs": 0,
                      "serverToClientDurationMs": 0,
                      "httpMethod": "GET",
                      "scheme": "https",
                      "isSecure": 1,
                      "host": "rest.coinapi.io",
                      "path": "/v1/exchanges",
                      "route": "/v1/exchanges",
                      "queryString": "filter_exchange_id=BINANCE",
                      "requestUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
                      "requestReferer": "https://coinapi.io",
                      "requestContentType": "application/json",
                      "requestXForwardedFor": "203.0.113.195",
                      "requestBytes": 512,
                      "idempotencyKey": "idmp_7f9a8b2c1d3e4f5g",
                      "userId": "user_12345",
                      "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                      "apiKeyId": "f1e2d3c4-b5a6-9879-8765-4321dcba0987",
                      "authSubject": "user:12345",
                      "authScopesCsv": "read:exchanges,read:assets",
                      "requestId": "req_7f9a8b2c1d3e4f5g",
                      "traceId": "trace_1a2b3c4d5e6f7890",
                      "spanId": "span_9876543210abcdef",
                      "parentSpanId": "span_fedcba0987654321",
                      "logComment": "Exchange data request",
                      "tagsCsv": "api:v1,endpoint:exchanges",
                      "clientIp": "203.0.113.195",
                      "clientPort": 54321,
                      "tlsProtocol": "TLSv1.3",
                      "tlsCipher": "TLS_AES_256_GCM_SHA384",
                      "mtlsPeerFingerprint": "SHA256:abcd1234...",
                      "rateLimitBucket": "api_key_daily",
                      "rateLimitLimit": 10000,
                      "rateLimitRemaining": 9847,
                      "rateLimitResetTime": "2024-01-16T00:00:00.0000000Z",
                      "statusCode": 200,
                      "statusFamily": 0,
                      "responseContentType": "application/json",
                      "responseBytes": 2048,
                      "responseBytesCompressed": 0,
                      "localPort": 0,
                      "remotePort": 0,
                      "clientCertificatePresent": 0,
                      "requestHeadersSize": 0,
                      "responseHeadersSize": 0,
                      "connectionReused": 0,
                      "requestAborted": 0,
                      "upgradeRequested": 0,
                      "hasRequestBody": 0,
                      "requestHeadersValid": 0
                    }
                  },
                  "Error Response": {
                    "value": {
                      "hostname": "api-server-02",
                      "service": "coinapi-rest",
                      "environment": "production",
                      "eventDate": "2024-01-15T00:00:00.0000000Z",
                      "eventTime": "2024-01-15T15:45:30.0000000Z",
                      "eventTimeMicroseconds": "2024-01-15T15:45:30.4567890Z",
                      "requestStartTime": "2024-01-15T15:45:30.0000000Z",
                      "requestStartTimeMicroseconds": "2024-01-15T15:45:30.4567890Z",
                      "requestDurationMs": 89,
                      "timeToFirstByteMs": 0,
                      "serverToClientDurationMs": 0,
                      "httpMethod": "GET",
                      "scheme": "https",
                      "isSecure": 1,
                      "host": "rest.coinapi.io",
                      "path": "/v1/ohlcv/latest",
                      "route": "/v1/ohlcv/latest",
                      "queryString": "symbol_id=INVALID_SYMBOL",
                      "requestUserAgent": "CoinAPI-Client/1.0",
                      "requestReferer": "",
                      "requestContentType": "application/json",
                      "requestXForwardedFor": "198.51.100.42",
                      "requestBytes": 256,
                      "idempotencyKey": "idmp_9f8e7d6c5b4a3210",
                      "userId": "user_67890",
                      "organizationId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
                      "apiKeyId": "e5f6a7b8-c9d0-1234-5678-90abcdef1234",
                      "authSubject": "user:67890",
                      "authScopesCsv": "read:ohlcv",
                      "requestId": "req_9f8e7d6c5b4a3210",
                      "traceId": "trace_5e4d3c2b1a098765",
                      "spanId": "span_4321098765fedcba",
                      "parentSpanId": "span_abcdef1234567890",
                      "logComment": "OHLCV data request with invalid symbol",
                      "tagsCsv": "api:v1,endpoint:ohlcv,error:invalid_symbol",
                      "clientIp": "198.51.100.42",
                      "clientPort": 49152,
                      "tlsProtocol": "TLSv1.3",
                      "tlsCipher": "TLS_AES_256_GCM_SHA384",
                      "mtlsPeerFingerprint": "",
                      "rateLimitBucket": "api_key_daily",
                      "rateLimitLimit": 5000,
                      "rateLimitRemaining": 4876,
                      "rateLimitResetTime": "2024-01-16T00:00:00.0000000Z",
                      "statusCode": 400,
                      "statusFamily": 0,
                      "responseContentType": "application/json",
                      "responseBytes": 156,
                      "responseBytesCompressed": 0,
                      "errorCode": "INVALID_SYMBOL",
                      "errorMessage": "The specified symbol ID is not valid or does not exist",
                      "localPort": 0,
                      "remotePort": 0,
                      "clientCertificatePresent": 0,
                      "requestHeadersSize": 0,
                      "responseHeadersSize": 0,
                      "connectionReused": 0,
                      "requestAborted": 0,
                      "upgradeRequested": 0,
                      "hasRequestBody": 0,
                      "requestHeadersValid": 0
                    }
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.RequestLogDto"
                  }
                },
                "examples": {
                  "Successful API Request": {
                    "value": "Swashbuckle.AspNetCore.Filters.MvcOutputFormatter+FormatterNotFoundException: OutputFormatter not found for 'text/csv' for example of BBXT.Common.RequestLog.RequestLogDto."
                  },
                  "Error Response": {
                    "value": "Swashbuckle.AspNetCore.Filters.MvcOutputFormatter+FormatterNotFoundException: OutputFormatter not found for 'text/csv' for example of BBXT.Common.RequestLog.RequestLogDto."
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/request-logs/time-series": {
      "get": {
        "tags": [
          "Request Logs"
        ],
        "summary": "Gets time-series analytics with flexible filtering for the current organization",
        "description": "Returns time-series analytics for your organization grouped by time intervals. Use for charts, trend analysis, and comparing changes over time periods.",
        "operationId": "console_list_request_log_time_series",
        "parameters": [
          {
            "name": "traceId",
            "in": "query",
            "description": "Optional trace ID filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service",
            "in": "query",
            "description": "Optional service name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "route",
            "in": "query",
            "description": "Optional route filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statusCode",
            "in": "query",
            "description": "Optional status code filter (1-digit: 4xx range, 2-digit: 40x range, 3-digit: exact match)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeStart",
            "in": "query",
            "description": "Start time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeEnd",
            "in": "query",
            "description": "End time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "minutes",
            "in": "query",
            "description": "Minutes back from now (alternative to timeStart/timeEnd)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "intervalMinutes",
            "in": "query",
            "description": "Time interval in minutes (5, 15, 30, 60, 360, 720, 1440)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 60
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Time-series analytics retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.TimeSeriesAnalyticsDto"
                  }
                },
                "examples": {
                  "3-Hour Time Series": {
                    "value": [
                      {
                        "timeSlot": "2024-01-15T14:00:00.0000000Z",
                        "totalRequests": 1847,
                        "responseTimeMilliSecondsMin": 23,
                        "responseTimeMilliSecondsMax": 2456,
                        "responseTimeMilliSecondsAvg": 145,
                        "responseTimeMilliSecondsP50": 120,
                        "responseTimeMilliSecondsP90": 298,
                        "responseTimeMilliSecondsP95": 456,
                        "responseTimeMilliSecondsP99": 890,
                        "responseSizeAvg": 2048.5,
                        "responseSizeSum": 3785472
                      },
                      {
                        "timeSlot": "2024-01-15T15:00:00.0000000Z",
                        "totalRequests": 2134,
                        "responseTimeMilliSecondsMin": 18,
                        "responseTimeMilliSecondsMax": 3201,
                        "responseTimeMilliSecondsAvg": 167,
                        "responseTimeMilliSecondsP50": 134,
                        "responseTimeMilliSecondsP90": 321,
                        "responseTimeMilliSecondsP95": 523,
                        "responseTimeMilliSecondsP99": 1123,
                        "responseSizeAvg": 1987.3,
                        "responseSizeSum": 4241678
                      },
                      {
                        "timeSlot": "2024-01-15T16:00:00.0000000Z",
                        "totalRequests": 1756,
                        "responseTimeMilliSecondsMin": 15,
                        "responseTimeMilliSecondsMax": 2890,
                        "responseTimeMilliSecondsAvg": 178,
                        "responseTimeMilliSecondsP50": 145,
                        "responseTimeMilliSecondsP90": 356,
                        "responseTimeMilliSecondsP95": 567,
                        "responseTimeMilliSecondsP99": 1045,
                        "responseSizeAvg": 2234.7,
                        "responseSizeSum": 3924378
                      }
                    ]
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.TimeSeriesAnalyticsDto"
                  }
                },
                "examples": {
                  "3-Hour Time Series": {
                    "value": [
                      {
                        "timeSlot": "2024-01-15T14:00:00.0000000Z",
                        "totalRequests": 1847,
                        "responseTimeMilliSecondsMin": 23,
                        "responseTimeMilliSecondsMax": 2456,
                        "responseTimeMilliSecondsAvg": 145,
                        "responseTimeMilliSecondsP50": 120,
                        "responseTimeMilliSecondsP90": 298,
                        "responseTimeMilliSecondsP95": 456,
                        "responseTimeMilliSecondsP99": 890,
                        "responseSizeAvg": 2048.5,
                        "responseSizeSum": 3785472
                      },
                      {
                        "timeSlot": "2024-01-15T15:00:00.0000000Z",
                        "totalRequests": 2134,
                        "responseTimeMilliSecondsMin": 18,
                        "responseTimeMilliSecondsMax": 3201,
                        "responseTimeMilliSecondsAvg": 167,
                        "responseTimeMilliSecondsP50": 134,
                        "responseTimeMilliSecondsP90": 321,
                        "responseTimeMilliSecondsP95": 523,
                        "responseTimeMilliSecondsP99": 1123,
                        "responseSizeAvg": 1987.3,
                        "responseSizeSum": 4241678
                      },
                      {
                        "timeSlot": "2024-01-15T16:00:00.0000000Z",
                        "totalRequests": 1756,
                        "responseTimeMilliSecondsMin": 15,
                        "responseTimeMilliSecondsMax": 2890,
                        "responseTimeMilliSecondsAvg": 178,
                        "responseTimeMilliSecondsP50": 145,
                        "responseTimeMilliSecondsP90": 356,
                        "responseTimeMilliSecondsP95": 567,
                        "responseTimeMilliSecondsP99": 1045,
                        "responseSizeAvg": 2234.7,
                        "responseSizeSum": 3924378
                      }
                    ]
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.TimeSeriesAnalyticsDto"
                  }
                },
                "examples": {
                  "3-Hour Time Series": {
                    "value": [
                      {
                        "timeSlot": "2024-01-15T14:00:00.0000000Z",
                        "totalRequests": 1847,
                        "responseTimeMilliSecondsMin": 23,
                        "responseTimeMilliSecondsMax": 2456,
                        "responseTimeMilliSecondsAvg": 145,
                        "responseTimeMilliSecondsP50": 120,
                        "responseTimeMilliSecondsP90": 298,
                        "responseTimeMilliSecondsP95": 456,
                        "responseTimeMilliSecondsP99": 890,
                        "responseSizeAvg": 2048.5,
                        "responseSizeSum": 3785472
                      },
                      {
                        "timeSlot": "2024-01-15T15:00:00.0000000Z",
                        "totalRequests": 2134,
                        "responseTimeMilliSecondsMin": 18,
                        "responseTimeMilliSecondsMax": 3201,
                        "responseTimeMilliSecondsAvg": 167,
                        "responseTimeMilliSecondsP50": 134,
                        "responseTimeMilliSecondsP90": 321,
                        "responseTimeMilliSecondsP95": 523,
                        "responseTimeMilliSecondsP99": 1123,
                        "responseSizeAvg": 1987.3,
                        "responseSizeSum": 4241678
                      },
                      {
                        "timeSlot": "2024-01-15T16:00:00.0000000Z",
                        "totalRequests": 1756,
                        "responseTimeMilliSecondsMin": 15,
                        "responseTimeMilliSecondsMax": 2890,
                        "responseTimeMilliSecondsAvg": 178,
                        "responseTimeMilliSecondsP50": 145,
                        "responseTimeMilliSecondsP90": 356,
                        "responseTimeMilliSecondsP95": 567,
                        "responseTimeMilliSecondsP99": 1045,
                        "responseSizeAvg": 2234.7,
                        "responseSizeSum": 3924378
                      }
                    ]
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.TimeSeriesAnalyticsDto"
                  }
                },
                "examples": {
                  "3-Hour Time Series": {
                    "value": "﻿TimeSlot,TotalRequests,ResponseTimeMilliSecondsMin,ResponseTimeMilliSecondsMax,ResponseTimeMilliSecondsAvg,ResponseTimeMilliSecondsP50,ResponseTimeMilliSecondsP90,ResponseTimeMilliSecondsP95,ResponseTimeMilliSecondsP99,ResponseSizeAvg,ResponseSizeSum\r\n01/15/2024 14:00:00,1847,23,2456,145,120,298,456,890,2048.5,3785472\r\n01/15/2024 15:00:00,2134,18,3201,167,134,321,523,1123,1987.3,4241678\r\n01/15/2024 16:00:00,1756,15,2890,178,145,356,567,1045,2234.7,3924378\r\n"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/request-logs/summary": {
      "get": {
        "tags": [
          "Request Logs"
        ],
        "summary": "Gets summary analytics for the current organization grouped by service, route, and status code",
        "description": "Returns summary statistics for your organization grouped by service, route, and status code. Use to identify issues with specific services and compare performance across endpoints.",
        "operationId": "console_list_request_log_summary",
        "parameters": [
          {
            "name": "service",
            "in": "query",
            "description": "Optional service name filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "route",
            "in": "query",
            "description": "Optional route filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statusCode",
            "in": "query",
            "description": "Optional status code filter (1-digit: 4xx range, 2-digit: 40x range, 3-digit: exact match)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeStart",
            "in": "query",
            "description": "Start time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeEnd",
            "in": "query",
            "description": "End time for the analysis period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "minutes",
            "in": "query",
            "description": "Minutes back from now (alternative to timeStart/timeEnd)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Summary analytics retrieved successfully",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.OrganizationServiceSummaryDto"
                  }
                },
                "examples": {
                  "Organization Service Summary": {
                    "value": [
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "service": "coinapi-rest",
                        "route": "/v1/exchanges",
                        "totalRequests": 15674,
                        "statusCode": 200,
                        "responseTimeMilliSecondsMin": 12,
                        "responseTimeMilliSecondsMax": 4567,
                        "responseTimeMilliSecondsAvg": 156,
                        "responseTimeMilliSecondsP50": 134,
                        "responseTimeMilliSecondsP90": 289,
                        "responseTimeMilliSecondsP95": 456,
                        "responseTimeMilliSecondsP99": 1234,
                        "responseSizeAvg": 2156.8,
                        "responseSizeSum": 33798765
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "service": "coinapi-rest",
                        "route": "/v1/assets",
                        "totalRequests": 8934,
                        "statusCode": 200,
                        "responseTimeMilliSecondsMin": 18,
                        "responseTimeMilliSecondsMax": 2890,
                        "responseTimeMilliSecondsAvg": 198,
                        "responseTimeMilliSecondsP50": 167,
                        "responseTimeMilliSecondsP90": 345,
                        "responseTimeMilliSecondsP95": 567,
                        "responseTimeMilliSecondsP99": 890,
                        "responseSizeAvg": 1876.4,
                        "responseSizeSum": 16765432
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "service": "coinapi-rest",
                        "route": "/v1/ohlcv/latest",
                        "totalRequests": 234,
                        "statusCode": 400,
                        "responseTimeMilliSecondsMin": 45,
                        "responseTimeMilliSecondsMax": 678,
                        "responseTimeMilliSecondsAvg": 89,
                        "responseTimeMilliSecondsP50": 78,
                        "responseTimeMilliSecondsP90": 156,
                        "responseTimeMilliSecondsP95": 234,
                        "responseTimeMilliSecondsP99": 456,
                        "responseSizeAvg": 456.2,
                        "responseSizeSum": 106751
                      }
                    ]
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.OrganizationServiceSummaryDto"
                  }
                },
                "examples": {
                  "Organization Service Summary": {
                    "value": [
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "service": "coinapi-rest",
                        "route": "/v1/exchanges",
                        "totalRequests": 15674,
                        "statusCode": 200,
                        "responseTimeMilliSecondsMin": 12,
                        "responseTimeMilliSecondsMax": 4567,
                        "responseTimeMilliSecondsAvg": 156,
                        "responseTimeMilliSecondsP50": 134,
                        "responseTimeMilliSecondsP90": 289,
                        "responseTimeMilliSecondsP95": 456,
                        "responseTimeMilliSecondsP99": 1234,
                        "responseSizeAvg": 2156.8,
                        "responseSizeSum": 33798765
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "service": "coinapi-rest",
                        "route": "/v1/assets",
                        "totalRequests": 8934,
                        "statusCode": 200,
                        "responseTimeMilliSecondsMin": 18,
                        "responseTimeMilliSecondsMax": 2890,
                        "responseTimeMilliSecondsAvg": 198,
                        "responseTimeMilliSecondsP50": 167,
                        "responseTimeMilliSecondsP90": 345,
                        "responseTimeMilliSecondsP95": 567,
                        "responseTimeMilliSecondsP99": 890,
                        "responseSizeAvg": 1876.4,
                        "responseSizeSum": 16765432
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "service": "coinapi-rest",
                        "route": "/v1/ohlcv/latest",
                        "totalRequests": 234,
                        "statusCode": 400,
                        "responseTimeMilliSecondsMin": 45,
                        "responseTimeMilliSecondsMax": 678,
                        "responseTimeMilliSecondsAvg": 89,
                        "responseTimeMilliSecondsP50": 78,
                        "responseTimeMilliSecondsP90": 156,
                        "responseTimeMilliSecondsP95": 234,
                        "responseTimeMilliSecondsP99": 456,
                        "responseSizeAvg": 456.2,
                        "responseSizeSum": 106751
                      }
                    ]
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.OrganizationServiceSummaryDto"
                  }
                },
                "examples": {
                  "Organization Service Summary": {
                    "value": [
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "service": "coinapi-rest",
                        "route": "/v1/exchanges",
                        "totalRequests": 15674,
                        "statusCode": 200,
                        "responseTimeMilliSecondsMin": 12,
                        "responseTimeMilliSecondsMax": 4567,
                        "responseTimeMilliSecondsAvg": 156,
                        "responseTimeMilliSecondsP50": 134,
                        "responseTimeMilliSecondsP90": 289,
                        "responseTimeMilliSecondsP95": 456,
                        "responseTimeMilliSecondsP99": 1234,
                        "responseSizeAvg": 2156.8,
                        "responseSizeSum": 33798765
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "service": "coinapi-rest",
                        "route": "/v1/assets",
                        "totalRequests": 8934,
                        "statusCode": 200,
                        "responseTimeMilliSecondsMin": 18,
                        "responseTimeMilliSecondsMax": 2890,
                        "responseTimeMilliSecondsAvg": 198,
                        "responseTimeMilliSecondsP50": 167,
                        "responseTimeMilliSecondsP90": 345,
                        "responseTimeMilliSecondsP95": 567,
                        "responseTimeMilliSecondsP99": 890,
                        "responseSizeAvg": 1876.4,
                        "responseSizeSum": 16765432
                      },
                      {
                        "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                        "service": "coinapi-rest",
                        "route": "/v1/ohlcv/latest",
                        "totalRequests": 234,
                        "statusCode": 400,
                        "responseTimeMilliSecondsMin": 45,
                        "responseTimeMilliSecondsMax": 678,
                        "responseTimeMilliSecondsAvg": 89,
                        "responseTimeMilliSecondsP50": 78,
                        "responseTimeMilliSecondsP90": 156,
                        "responseTimeMilliSecondsP95": 234,
                        "responseTimeMilliSecondsP99": 456,
                        "responseSizeAvg": 456.2,
                        "responseSizeSum": 106751
                      }
                    ]
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RequestLog.OrganizationServiceSummaryDto"
                  }
                },
                "examples": {
                  "Organization Service Summary": {
                    "value": "﻿OrganizationId,Service,Route,TotalRequests,StatusCode,ResponseTimeMilliSecondsMin,ResponseTimeMilliSecondsMax,ResponseTimeMilliSecondsAvg,ResponseTimeMilliSecondsP50,ResponseTimeMilliSecondsP90,ResponseTimeMilliSecondsP95,ResponseTimeMilliSecondsP99,ResponseSizeAvg,ResponseSizeSum\r\na1b2c3d4-e5f6-7890-abcd-ef1234567890,coinapi-rest,/v1/exchanges,15674,200,12,4567,156,134,289,456,1234,2156.8,33798765\r\na1b2c3d4-e5f6-7890-abcd-ef1234567890,coinapi-rest,/v1/assets,8934,200,18,2890,198,167,345,567,890,1876.4,16765432\r\na1b2c3d4-e5f6-7890-abcd-ef1234567890,coinapi-rest,/v1/ohlcv/latest,234,400,45,678,89,78,156,234,456,456.2,106751\r\n"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/api/subscription": {
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Get subscription data",
        "description": "Retrieves current subscription information for the organization",
        "operationId": "console_get_subscription",
        "responses": {
          "200": {
            "description": "Successfully retrieved subscription data",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationProductBilling"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationProductBilling"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationProductBilling"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationProductBilling"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/subscription/manage-stripe": {
      "put": {
        "tags": [
          "Subscription"
        ],
        "summary": "Get billing portal link",
        "description": "Creates a link to Stripe billing portal for subscription management",
        "operationId": "console_update_subscription_manage_portal",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully created billing portal link"
          },
          "400": {
            "description": "Invalid redirect URL"
          }
        }
      }
    },
    "/api/subscription/create-stripe/{id_stripe_plan}": {
      "put": {
        "tags": [
          "Subscription"
        ],
        "summary": "Create subscription checkout link",
        "description": "Creates a checkout link for a new subscription plan",
        "operationId": "console_update_subscription_create_checkout",
        "parameters": [
          {
            "name": "id_stripe_plan",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model.RedirectData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully created subscription checkout link"
          },
          "400": {
            "description": "Invalid plan ID or redirect URL"
          },
          "404": {
            "description": "Subscription plan not found"
          }
        }
      }
    },
    "/api/subscription/products": {
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Get subscription products",
        "description": "Retrieves all available subscription products and billing plans",
        "operationId": "console_list_subscription_products",
        "responses": {
          "200": {
            "description": "Successfully retrieved subscription products",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.ProductBilling"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.ProductBilling"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.ProductBilling"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.ProductBilling"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/subscription/state": {
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Get subscription state",
        "description": "Retrieves the current subscription state and status for the organization",
        "operationId": "console_list_subscription_current",
        "responses": {
          "200": {
            "description": "Successfully retrieved subscription state"
          }
        }
      }
    },
    "/api/support/tickets": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Get all tickets",
        "description": "Retrieves all support tickets for the current user and organization",
        "operationId": "console_list_support_tickets",
        "responses": {
          "200": {
            "description": "Successfully retrieved tickets",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationTicket"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationTicket"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationTicket"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.OrganizationTicket"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/support/ticket/{ticketId}": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Get specific ticket",
        "description": "Retrieves details of a specific support ticket",
        "operationId": "console_get_support_ticket_by_id",
        "parameters": [
          {
            "name": "ticketId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved ticket",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Model.OrganizationTicket"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.OrganizationTicket"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.OrganizationTicket"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - ticket doesn't belong to user"
          },
          "404": {
            "description": "Ticket not found"
          }
        }
      }
    },
    "/api/support/ticket/comment": {
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Add comment to ticket",
        "description": "Adds a comment to an existing support ticket",
        "operationId": "console_add_support_ticket_comment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Models.AddComment"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Models.AddComment"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Models.AddComment"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Comment successfully added to ticket"
          },
          "400": {
            "description": "Invalid request or error adding comment"
          },
          "401": {
            "description": "Unauthorized - ticket doesn't belong to user"
          },
          "404": {
            "description": "Ticket not found"
          }
        }
      }
    },
    "/api/tax-ids": {
      "get": {
        "tags": [
          "Tax IDs"
        ],
        "summary": "Get tax IDs",
        "description": "Retrieves all tax identification numbers for the organization",
        "operationId": "console_list_tax_ids",
        "responses": {
          "200": {
            "description": "Successfully retrieved tax IDs",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.TaxIdModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.TaxIdModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.TaxIdModel"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.TaxIdModel"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Organization not found"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      },
      "post": {
        "tags": [
          "Tax IDs"
        ],
        "summary": "Add tax ID",
        "description": "Adds a new tax identification number to the organization",
        "operationId": "console_create_tax_ids",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaxIds.TaxIdCreate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TaxIds.TaxIdCreate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TaxIds.TaxIdCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successfully added tax ID"
          },
          "400": {
            "description": "Invalid tax ID data or validation failed"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/api/tax-ids/types": {
      "get": {
        "tags": [
          "Tax IDs"
        ],
        "summary": "Get tax ID types",
        "description": "Retrieves list of available tax ID types",
        "operationId": "console_get_tax_ids_types",
        "responses": {
          "200": {
            "description": "Successfully retrieved tax ID types",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/Model.TaxIdType"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/Model.TaxIdType"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/Model.TaxIdType"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/Model.TaxIdType"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/teams": {
      "get": {
        "tags": [
          "Team"
        ],
        "summary": "Get team data",
        "description": "Retrieves team membership and context information for the current user",
        "parameters": [
          {
            "name": "amplitudeDeviceId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved team data",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.ContextModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.ContextModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.ContextModel"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Models.ContextModel"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Team"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Team.CreateTeamRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Team.CreateTeamRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Team.CreateTeamRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Team"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/teams/leave": {
      "put": {
        "tags": [
          "Team"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/users": {
      "get": {
        "tags": [
          "Team"
        ],
        "summary": "Get user contacts",
        "description": "Retrieves additional email contacts for the organization",
        "operationId": "console_list_users",
        "responses": {
          "200": {
            "description": "Successfully retrieved user contacts",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.TeamUser"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.TeamUser"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.TeamUser"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.TeamUser"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/users/invite": {
      "post": {
        "tags": [
          "Team"
        ],
        "summary": "Invite a user",
        "description": "Sends an invitation email. The user joins the organization only after accepting. Role must be user or admin.",
        "operationId": "console_invite_user",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Team.InviteUserDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Team.InviteUserDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Team.InviteUserDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Invitation sent"
          },
          "400": {
            "description": "Invalid email, unsupported role, banned domain, or a pending invitation already exists"
          }
        }
      }
    },
    "/api/users/invites/{id}/resend": {
      "post": {
        "tags": [
          "Team"
        ],
        "summary": "Resend an invitation",
        "description": "Issues a new invitation link and emails it again. Pending, expired, and declined invitations can be resent.",
        "operationId": "console_resend_invite",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Invitation resent"
          },
          "404": {
            "description": "Invitation not found"
          }
        }
      }
    },
    "/api/users/invites/respond": {
      "post": {
        "tags": [
          "Team"
        ],
        "summary": "Accept or deny an invitation",
        "description": "Accept adds the invited email to the organization. Deny leaves them out. The token comes from the invitation email.",
        "operationId": "console_respond_to_invite",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Team.RespondToInviteDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Team.RespondToInviteDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Team.RespondToInviteDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Invitation response recorded"
          },
          "400": {
            "description": "Invalid, expired, or already answered invitation"
          }
        }
      }
    },
    "/api/users/delete": {
      "delete": {
        "tags": [
          "Team"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/billing/usage": {
      "get": {
        "tags": [
          "Usage Management"
        ],
        "summary": "Get current usage",
        "description": "Retrieves current usage statistics and limits for the organization",
        "operationId": "console_get_usage_management",
        "responses": {
          "200": {
            "description": "Successfully retrieved usage information",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Model.UsageManagement"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.UsageManagement"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.UsageManagement"
                }
              }
            }
          }
        }
      }
    },
    "/api/billing/update-usage": {
      "post": {
        "tags": [
          "Usage Management"
        ],
        "summary": "Update usage settings",
        "description": "Updates usage management settings and limits",
        "operationId": "console_create_usage_management_update_usage",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.UsageManagement"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.UsageManagement"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model.UsageManagement"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully updated usage settings"
          },
          "400": {
            "description": "Invalid usage settings"
          }
        }
      }
    },
    "/api/billing/auto-recharge": {
      "get": {
        "tags": [
          "Usage Management"
        ],
        "summary": "Get auto-recharge settings",
        "description": "Retrieves current auto-recharge configuration",
        "operationId": "console_get_usage_management_auto_recharge",
        "responses": {
          "200": {
            "description": "Successfully retrieved auto-recharge settings",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Model.AutoRecharge"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.AutoRecharge"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model.AutoRecharge"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Usage Management"
        ],
        "summary": "Update auto-recharge settings",
        "description": "Updates auto-recharge configuration for automatic credit top-ups",
        "operationId": "console_create_usage_management_auto_recharge",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.AutoRecharge"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.AutoRecharge"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model.AutoRecharge"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully updated auto-recharge settings"
          },
          "400": {
            "description": "Invalid auto-recharge settings"
          }
        }
      }
    },
    "/api/billing/add-credits/methods": {
      "get": {
        "tags": [
          "Usage Management"
        ],
        "summary": "Get credit payment methods",
        "description": "Retrieves available payment methods for adding credits",
        "operationId": "console_get_usage_management_add_credits_methods",
        "responses": {
          "200": {
            "description": "Successfully retrieved payment methods",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AddCreditsMethod"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AddCreditsMethod"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AddCreditsMethod"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Model.AddCreditsMethod"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/billing/add-credits": {
      "post": {
        "tags": [
          "Usage Management"
        ],
        "summary": "Add credits",
        "description": "Adds credits to the organization account using the specified payment method",
        "operationId": "console_create_usage_management_add_credits",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.AddCreditsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model.AddCreditsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model.AddCreditsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully added credits"
          },
          "400": {
            "description": "Invalid request or payment failed"
          }
        }
      }
    },
    "/api/billing/credits": {
      "get": {
        "tags": [
          "Usage Management"
        ],
        "summary": "Get credit balance",
        "description": "Retrieves current credit balance for the organization",
        "operationId": "console_get_usage_management_credits",
        "responses": {
          "200": {
            "description": "Successfully retrieved credit balance"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ApiKeyIpRestrictions.ApiKeyIpAddressDto": {
        "type": "object",
        "properties": {
          "ipAddress": {
            "type": "string",
            "nullable": true
          },
          "firstSeenTime": {
            "type": "string",
            "format": "date-time"
          },
          "lastSeenTime": {
            "type": "string",
            "format": "date-time"
          },
          "lastDeniedTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "deniedCount": {
            "type": "integer",
            "format": "int32"
          },
          "asn": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "asName": {
            "type": "string",
            "nullable": true
          },
          "allowed": {
            "type": "boolean"
          },
          "suggestedCidr": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiKeyIpRestrictions.ApiKeyIpAlertsUpdateRequest": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiKeyIpRestrictions.ApiKeyIpAllowlistEntryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "cidr": {
            "type": "string",
            "nullable": true
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "createdTime": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiKeyIpRestrictions.ApiKeyIpAllowlistEntryInput": {
        "type": "object",
        "properties": {
          "cidr": {
            "type": "string",
            "nullable": true
          },
          "note": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiKeyIpRestrictions.ApiKeyIpAllowlistResponse": {
        "type": "object",
        "properties": {
          "restricted": {
            "type": "boolean"
          },
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistEntryDto"
            },
            "nullable": true
          },
          "newNetworkAlertsEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiKeyIpRestrictions.ApiKeyIpAllowlistUpdateRequest": {
        "type": "object",
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiKeyIpRestrictions.ApiKeyIpAllowlistEntryInput"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiKeyManagement.ApiKeyRenameRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiKeyManagement.ApiKeyStatusRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiKeyManagement.CreateApiKeyRequest": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "jwtSecret": {
            "type": "string",
            "nullable": true
          },
          "jwtAlgorithm": {
            "type": "string",
            "nullable": true
          },
          "jwtFingerprint": {
            "type": "string",
            "nullable": true
          },
          "expirationTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiKeyManagement.CreateApiKeyResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "apiKey": {
            "type": "string",
            "format": "uuid"
          },
          "expirationTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "jwtAlgorithm": {
            "type": "string",
            "nullable": true
          },
          "jwtFingerprint": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConnectionLog.ConnectionEventDto": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "format": "uuid"
          },
          "connectionId": {
            "type": "string",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "nullable": true
          },
          "host": {
            "type": "string",
            "nullable": true
          },
          "ipAddress": {
            "type": "string",
            "nullable": true
          },
          "protocolName": {
            "type": "string",
            "nullable": true
          },
          "serviceName": {
            "type": "string",
            "nullable": true
          },
          "dataCenter": {
            "type": "string",
            "nullable": true
          },
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "eventDescription": {
            "type": "string",
            "nullable": true
          },
          "eventTimestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ConnectionLog.ConnectionEventQueryDto": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "format": "uuid"
          },
          "connectionId": {
            "type": "string",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "format": "uuid"
          },
          "host": {
            "type": "string",
            "nullable": true
          },
          "ipAddress": {
            "type": "string",
            "nullable": true
          },
          "protocolName": {
            "type": "string",
            "nullable": true
          },
          "serviceName": {
            "type": "string",
            "nullable": true
          },
          "dataCenter": {
            "type": "string",
            "nullable": true
          },
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "eventDescription": {
            "type": "string",
            "nullable": true
          },
          "eventTimestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ConnectionLog.ConnectionEventTimeSeriesDto": {
        "type": "object",
        "properties": {
          "timeSlot": {
            "type": "string",
            "format": "date-time"
          },
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "eventCount": {
            "type": "integer",
            "format": "int64"
          },
          "uniqueConnections": {
            "type": "integer",
            "format": "int64"
          },
          "uniqueOrganizations": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "ConnectionLog.ConnectionQueryDto": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "format": "uuid"
          },
          "host": {
            "type": "string",
            "nullable": true
          },
          "ipAddress": {
            "type": "string",
            "nullable": true
          },
          "protocolName": {
            "type": "string",
            "nullable": true
          },
          "serviceName": {
            "type": "string",
            "nullable": true
          },
          "dataCenter": {
            "type": "string",
            "nullable": true
          },
          "lastHeartbeat": {
            "type": "string",
            "format": "date-time"
          },
          "connectionStartTime": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "connectionDurationSeconds": {
            "type": "number",
            "format": "double"
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConnectionLog.ConnectionStatusDto": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "nullable": true
          },
          "host": {
            "type": "string",
            "nullable": true
          },
          "ipAddress": {
            "type": "string",
            "nullable": true
          },
          "serviceName": {
            "type": "string",
            "nullable": true
          },
          "protocolName": {
            "type": "string",
            "nullable": true
          },
          "dataCenter": {
            "type": "string",
            "nullable": true
          },
          "lastHeartbeat": {
            "type": "string",
            "format": "date-time"
          },
          "connectionStartTime": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "isConnected": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ConnectionLog.ConnectionTimeSeriesDto": {
        "type": "object",
        "properties": {
          "timeSlot": {
            "type": "string",
            "format": "date-time"
          },
          "totalConnectionsInPeriod": {
            "type": "integer",
            "format": "int64"
          },
          "newConnectionsInPeriod": {
            "type": "integer",
            "format": "int64"
          },
          "connectionCountOnPeriodEnd": {
            "type": "integer",
            "format": "int64"
          },
          "connectionCountOnPeriodStart": {
            "type": "integer",
            "format": "int64"
          },
          "uniqueOrganizations": {
            "type": "integer",
            "format": "int64"
          },
          "averageConnectionDurationSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "totalConnectionTimeSeconds": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ConnectionLog.OrganizationConnectionEventSummaryDto": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "format": "uuid"
          },
          "serviceName": {
            "type": "string",
            "nullable": true
          },
          "protocolName": {
            "type": "string",
            "nullable": true
          },
          "dataCenter": {
            "type": "string",
            "nullable": true
          },
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "eventCount": {
            "type": "integer",
            "format": "int64"
          },
          "uniqueConnections": {
            "type": "integer",
            "format": "int64"
          },
          "firstEvent": {
            "type": "string",
            "format": "date-time"
          },
          "lastEvent": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ConnectionLog.OrganizationConnectionSummaryDto": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "format": "uuid"
          },
          "serviceName": {
            "type": "string",
            "nullable": true
          },
          "protocolName": {
            "type": "string",
            "nullable": true
          },
          "dataCenter": {
            "type": "string",
            "nullable": true
          },
          "totalConnections": {
            "type": "integer",
            "format": "int64"
          },
          "newConnectionsInPeriod": {
            "type": "integer",
            "format": "int64"
          },
          "averageConnectionDurationSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "totalConnectionTimeSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "firstConnection": {
            "type": "string",
            "format": "date-time"
          },
          "lastConnection": {
            "type": "string",
            "format": "date-time"
          },
          "lastActivity": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "InboundLeads.ContactUsFormSubmissionDto": {
        "type": "object",
        "properties": {
          "event_type": {
            "type": "string",
            "nullable": true
          },
          "firstname": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "siteUrl": {
            "type": "string",
            "nullable": true
          },
          "ampDeviceId": {
            "type": "string",
            "nullable": true
          },
          "ampSessionId": {
            "type": "integer",
            "format": "int64"
          },
          "recaptchaScore": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Model.AddCreditsMethod": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.AddCreditsRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "paymentMethodId": {
            "type": "string",
            "nullable": true
          },
          "redirectUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.AdditionalEmailContact": {
        "required": [
          "domain",
          "email",
          "id",
          "normalizedEmail",
          "organizationId",
          "timeCreated"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "format": "uuid"
          },
          "email": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "format": "email"
          },
          "domain": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "normalizedEmail": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "contactType": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "timeCreated": {
            "type": "string",
            "format": "date-time"
          },
          "timeLastSignedIn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.ApiKey": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "apikey": {
            "type": "string",
            "nullable": true
          },
          "productName": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastUpdate": {
            "type": "string",
            "format": "date-time"
          },
          "lastUsedSeconds": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "expirationTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "jwtAlgorithm": {
            "type": "string",
            "nullable": true
          },
          "jwtFingerprint": {
            "type": "string",
            "nullable": true
          },
          "emailOfCreator": {
            "type": "string",
            "nullable": true
          },
          "keyType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "ipRestricted": {
            "type": "boolean",
            "readOnly": true
          },
          "ipAllowlistCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Model.AuditEventDto": {
        "type": "object",
        "properties": {
          "idEvent": {
            "type": "string",
            "format": "uuid"
          },
          "idOrganization": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "eventTimestamp": {
            "type": "string",
            "format": "date-time"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "ipAddress": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.AutoRecharge": {
        "type": "object",
        "properties": {
          "isAutoRechargeEnabled": {
            "type": "boolean"
          },
          "balanceGoesBelow": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "balanceBackUpTo": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.CardData": {
        "type": "object",
        "properties": {
          "cardType": {
            "type": "string",
            "nullable": true
          },
          "ending": {
            "type": "string",
            "nullable": true
          },
          "isDefault": {
            "type": "boolean"
          },
          "owner": {
            "type": "string",
            "nullable": true
          },
          "expiringMonth": {
            "type": "integer",
            "format": "int32"
          },
          "expiringYear": {
            "type": "integer",
            "format": "int32"
          },
          "cardId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.Notification": {
        "type": "object",
        "properties": {
          "idNotification": {
            "type": "string",
            "format": "uuid"
          },
          "idProduct": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "defaultValue": {
            "type": "integer",
            "format": "int32"
          },
          "groupName": {
            "type": "string",
            "nullable": true
          },
          "emailTemplate": {
            "type": "string",
            "nullable": true
          },
          "isConfigurable": {
            "type": "integer",
            "format": "int32"
          },
          "product": {
            "$ref": "#/components/schemas/Model.Product"
          }
        },
        "additionalProperties": false
      },
      "Model.NotificationHistory": {
        "required": [
          "subject"
        ],
        "type": "object",
        "properties": {
          "idOrganization": {
            "type": "string",
            "format": "uuid"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "subject": {
            "maxLength": 250,
            "minLength": 0,
            "type": "string"
          },
          "organization": {
            "$ref": "#/components/schemas/Model.Organization"
          },
          "resendEmailId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "Model.NotificationUserSettings": {
        "type": "object",
        "properties": {
          "idNotification": {
            "type": "string",
            "format": "uuid"
          },
          "idUser": {
            "type": "string",
            "format": "uuid"
          },
          "value": {
            "type": "integer",
            "format": "int32"
          },
          "notification": {
            "$ref": "#/components/schemas/Model.Notification"
          },
          "user": {
            "$ref": "#/components/schemas/Model.AdditionalEmailContact"
          }
        },
        "additionalProperties": false
      },
      "Model.Organization": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "stripeId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "address1": {
            "type": "string",
            "nullable": true
          },
          "address2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "purchaseOrder": {
            "type": "string",
            "nullable": true
          },
          "billingEmail": {
            "type": "string",
            "nullable": true
          },
          "autoRechargeEnabled": {
            "type": "integer",
            "format": "int32"
          },
          "autoRechargeBalanceGoesBelowUsd": {
            "type": "integer",
            "format": "int32"
          },
          "autoRechargeBalanceBackUpToUsd": {
            "type": "integer",
            "format": "int32"
          },
          "creditBalance": {
            "type": "integer",
            "format": "int32"
          },
          "creditUninvoicedCurrent": {
            "type": "integer",
            "format": "int32"
          },
          "creditUninvoicedLimit": {
            "type": "integer",
            "format": "int32"
          },
          "creditUsageYesterday": {
            "type": "integer",
            "format": "int32"
          },
          "creditUsageToday": {
            "type": "integer",
            "format": "int32"
          },
          "creditUsageTodayUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pastDueUsd": {
            "type": "integer",
            "format": "int32"
          },
          "pastDueSince": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "apiKeysActiveCount": {
            "type": "integer",
            "format": "int32"
          },
          "ticketsLiveWaitOnProvider": {
            "type": "integer",
            "format": "int32"
          },
          "ticketsLiveWaitOnCustomer": {
            "type": "integer",
            "format": "int32"
          },
          "ticketsNotLive": {
            "type": "integer",
            "format": "int32"
          },
          "totalPaidUsd": {
            "type": "integer",
            "format": "int32"
          },
          "totalPaidUsdLastW": {
            "type": "integer",
            "format": "int32"
          },
          "totalPaidUsdLastM": {
            "type": "integer",
            "format": "int32"
          },
          "totalPaidUsdLastQ": {
            "type": "integer",
            "format": "int32"
          },
          "totalPaidUsdLastY": {
            "type": "integer",
            "format": "int32"
          },
          "tier": {
            "type": "string",
            "nullable": true
          },
          "lifetimeValueTier": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lifetimeValueNextTierUsdCents": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "firstPaymentDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastAuditTrailEvent": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "usageInvoicedUpToExcl": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "paymentMethodsLiveCount": {
            "type": "integer",
            "format": "int32"
          },
          "quotaThresholdLastNotification": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "quotaExceededLastNotification": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "allNotificationsEmail": {
            "type": "string",
            "nullable": true
          },
          "actionRequiredNotificationsEmail": {
            "type": "string",
            "nullable": true
          },
          "creditsLowBalanceLastNotification": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "timeCreated": {
            "type": "string",
            "format": "date-time"
          },
          "teamMembersCount": {
            "type": "integer",
            "format": "int32"
          },
          "spendMgmtEnabled": {
            "type": "integer",
            "format": "int32"
          },
          "spendMgmtCreditUsageDailyHardLimit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "spendMgmtCreditUsageDailyNotifyThreshold": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "spendMgmtCreditUsageWebhookUrl": {
            "type": "string",
            "nullable": true
          },
          "spendMgmtNotifyLimitLastNotification": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "spendMgmtHardLimitLastNotification": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "slackChannelRequestedTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "statusChangedTime": {
            "type": "string",
            "format": "date-time"
          },
          "statusSuspendedReason": {
            "type": "string",
            "nullable": true
          },
          "billingMode": {
            "type": "string",
            "nullable": true
          },
          "customReferralCode": {
            "maxLength": 32,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "creatingConsoleLoginId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "stripeConnectAccountId": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "referralPayoutMethod": {
            "maxLength": 32,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "stripeConnectReleasedUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.OrganizationInvoice": {
        "type": "object",
        "properties": {
          "idOrganization": {
            "type": "string",
            "format": "uuid"
          },
          "id": {
            "type": "string",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "paidDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "paid": {
            "type": "boolean",
            "readOnly": true
          },
          "voided": {
            "type": "boolean",
            "readOnly": true
          },
          "uncollectible": {
            "type": "boolean",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "amountUsdCents": {
            "type": "integer",
            "format": "int64"
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "organization": {
            "$ref": "#/components/schemas/Model.Organization"
          }
        },
        "additionalProperties": false
      },
      "Model.OrganizationPaymentMethod": {
        "required": [
          "createdTime",
          "idOrganization"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "idOrganization": {
            "type": "string",
            "format": "uuid"
          },
          "idProvider": {
            "maxLength": 32,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "createdTime": {
            "type": "string",
            "format": "date-time"
          },
          "externalId": {
            "maxLength": 250,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "externalType": {
            "maxLength": 32,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "string",
            "nullable": true
          },
          "removedTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastFailedTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastSuccessTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cardFingerPrint": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "isDefault": {
            "type": "boolean"
          },
          "organization": {
            "$ref": "#/components/schemas/Model.Organization"
          }
        },
        "additionalProperties": false
      },
      "Model.OrganizationProductBilling": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "idOrganization": {
            "type": "string",
            "format": "uuid"
          },
          "idProductBilling": {
            "type": "string",
            "format": "uuid"
          },
          "idStripeSubscription": {
            "type": "string",
            "nullable": true
          },
          "idStripeSubscriptionItem": {
            "type": "string",
            "nullable": true
          },
          "timeCreated": {
            "type": "string",
            "format": "date-time"
          },
          "timeEnded": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "timeUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "timeCanceledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "mrr": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "mrrNew": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "mrrChurn": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "organization": {
            "$ref": "#/components/schemas/Model.Organization"
          },
          "productBilling": {
            "$ref": "#/components/schemas/Model.ProductBilling"
          }
        },
        "additionalProperties": false
      },
      "Model.OrganizationTicket": {
        "type": "object",
        "properties": {
          "idOrganizationTicket": {
            "type": "string",
            "format": "uuid"
          },
          "idOrganization": {
            "type": "string",
            "format": "uuid"
          },
          "idUser": {
            "type": "string",
            "format": "uuid"
          },
          "idTicketZendesk": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "idOrganizationZendesk": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "subject": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "metadata": {
            "type": "string",
            "nullable": true
          },
          "severity": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "organization": {
            "$ref": "#/components/schemas/Model.Organization"
          },
          "additionalEmailContact": {
            "$ref": "#/components/schemas/Model.AdditionalEmailContact"
          },
          "organizationTicketEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Model.OrganizationTicketEvent"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.OrganizationTicketEvent": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "author": {
            "type": "string",
            "nullable": true
          },
          "authorRole": {
            "maxLength": 32,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "text": {
            "type": "string",
            "nullable": true
          },
          "isInternal": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Model.OrganizationUsageDto": {
        "type": "object",
        "properties": {
          "idSkuProduct": {
            "type": "string",
            "format": "uuid"
          },
          "idSku": {
            "type": "string",
            "format": "uuid"
          },
          "productLine": {
            "type": "string",
            "nullable": true
          },
          "productName": {
            "type": "string",
            "nullable": true
          },
          "skuName": {
            "type": "string",
            "nullable": true
          },
          "priceDescription": {
            "type": "string",
            "nullable": true
          },
          "beginRange": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "displayUnit": {
            "type": "string",
            "nullable": true
          },
          "pricePerUnitUsd": {
            "type": "number",
            "format": "double"
          },
          "unitsToDisplayUnit": {
            "type": "integer",
            "format": "int64"
          },
          "unitsToPriceUnit": {
            "type": "integer",
            "format": "int64"
          },
          "timeStart": {
            "type": "string",
            "format": "date-time"
          },
          "timeEnd": {
            "type": "string",
            "format": "date-time"
          },
          "unitsBillable": {
            "type": "integer",
            "format": "int64"
          },
          "unitsInQuota": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Model.Product": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isApiProductType": {
            "type": "boolean"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "productLine": {
            "type": "string",
            "nullable": true
          },
          "lastSyncTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.ProductBilling": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "idProduct": {
            "type": "string",
            "nullable": true
          },
          "idStripeProduct": {
            "type": "string",
            "nullable": true
          },
          "idStripeProductPlan": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "flatFeeAmount": {
            "type": "integer",
            "format": "int32"
          },
          "flatFeeCurrency": {
            "type": "string",
            "nullable": true
          },
          "flatFeeInterval": {
            "type": "string",
            "nullable": true
          },
          "flatFeeIntervalCount": {
            "type": "integer",
            "format": "int32"
          },
          "isVisible": {
            "type": "boolean"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "mrr": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "product": {
            "$ref": "#/components/schemas/Model.Product"
          }
        },
        "additionalProperties": false
      },
      "Model.RedirectData": {
        "type": "object",
        "properties": {
          "redirectUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.TaxIdModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "taxIdType": {
            "type": "string",
            "nullable": true
          },
          "taxIdValue": {
            "type": "string",
            "nullable": true
          },
          "verificationStatus": {
            "type": "string",
            "nullable": true
          },
          "taxIdTypeDetails": {
            "$ref": "#/components/schemas/Model.TaxIdType"
          }
        },
        "additionalProperties": false
      },
      "Model.TaxIdType": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "countryLabel": {
            "type": "string",
            "nullable": true
          },
          "format": {
            "type": "string",
            "nullable": true
          },
          "placeholder": {
            "type": "string",
            "nullable": true
          },
          "stripeType": {
            "type": "string",
            "nullable": true
          },
          "verifiable": {
            "type": "boolean"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "reverseCharge": {
            "type": "boolean"
          },
          "supported": {
            "type": "boolean"
          },
          "replacementString": {
            "type": "string",
            "nullable": true
          },
          "onlyReplaceIfGroupCaptured": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Model.TeamUser": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "format": "uuid"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "domain": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "contactType": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "timeCreated": {
            "type": "string",
            "format": "date-time"
          },
          "timeLastSignedIn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastSignedInSeconds": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Model.UsageDateRangeDto": {
        "type": "object",
        "properties": {
          "minDate": {
            "type": "string",
            "format": "date-time"
          },
          "maxDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Model.UsageManagement": {
        "type": "object",
        "properties": {
          "isSpendMgmtEnabled": {
            "type": "boolean"
          },
          "dailySpendHardLimit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dailySpendNotifyThreshold": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "webhookUrl": {
            "type": "string",
            "nullable": true
          },
          "creditUsageToday": {
            "type": "number",
            "format": "double"
          },
          "creditUsageYesterday": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Models.AddComment": {
        "type": "object",
        "properties": {
          "ticket_id": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Models.ContextModel": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "format": "uuid"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "organization_name": {
            "type": "string",
            "nullable": true
          },
          "members": {
            "type": "integer",
            "format": "int32"
          },
          "active_api_keys": {
            "type": "integer",
            "format": "int32"
          },
          "organization_status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Models.FreeCreditsStatusResult": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "nullable": true
          },
          "creditsUnlocked": {
            "type": "boolean"
          },
          "creditsGranted": {
            "type": "boolean"
          },
          "hasPaymentMethod": {
            "type": "boolean"
          },
          "disqualifiedByOtherRules": {
            "type": "boolean"
          },
          "creditsUsdCents": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "disqualificationReasons": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Models.LinkAttributionRequest": {
        "type": "object",
        "properties": {
          "referral": {
            "type": "string",
            "nullable": true
          },
          "amplitudeDeviceId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Models.MetricGroupDataRequest": {
        "type": "object",
        "properties": {
          "metricName": {
            "type": "string",
            "nullable": true
          },
          "groupBy": {
            "type": "string",
            "nullable": true
          },
          "time_start": {
            "type": "string",
            "format": "date-time"
          },
          "time_end": {
            "type": "string",
            "format": "date-time"
          },
          "dataCenter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "dataSource": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "operationName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "protocolName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "serviceName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "timeFormat": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Models.OrganizationBalanceTransactionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "createdTime": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Models.OrganizationTierLimitDto": {
        "type": "object",
        "properties": {
          "tier": {
            "type": "integer",
            "format": "int32"
          },
          "maxConcurrency": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxRequestsPerMinute": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "nextTierAtUsdCents": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Models.PricingMigrationItem": {
        "type": "object",
        "properties": {
          "exceptionId": {
            "type": "string",
            "format": "uuid"
          },
          "scopeId": {
            "type": "string",
            "nullable": true
          },
          "currentPlanCode": {
            "type": "string",
            "nullable": true
          },
          "targetPlanCode": {
            "type": "string",
            "nullable": true
          },
          "deadlineUtc": {
            "type": "string",
            "format": "date-time"
          },
          "canMoveNow": {
            "type": "boolean"
          },
          "moveNowApiPath": {
            "type": "string",
            "nullable": true
          },
          "pricesToRemove": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Models.PricingMigrationPriceItem"
            },
            "nullable": true
          },
          "pricesToAdd": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Models.PricingMigrationPriceItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Models.PricingMigrationMoveNowResult": {
        "type": "object",
        "properties": {
          "exceptionId": {
            "type": "string",
            "format": "uuid"
          },
          "scopeId": {
            "type": "string",
            "nullable": true
          },
          "previousPlanCode": {
            "type": "string",
            "nullable": true
          },
          "newPlanCode": {
            "type": "string",
            "nullable": true
          },
          "effectiveToUtc": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Models.PricingMigrationPriceItem": {
        "type": "object",
        "properties": {
          "priceId": {
            "type": "string",
            "format": "uuid"
          },
          "skuId": {
            "type": "string",
            "format": "uuid"
          },
          "skuName": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "beginRange": {
            "type": "integer",
            "format": "int64"
          },
          "displayUnit": {
            "type": "string",
            "nullable": true
          },
          "pricePerUnitUsd": {
            "type": "number",
            "format": "double"
          },
          "unitsToDisplayUnit": {
            "type": "integer",
            "format": "int64"
          },
          "unitsToPriceUnit": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Notification.ListNotificationsForUserRequest": {
        "type": "object",
        "properties": {
          "idNotification": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "groupName": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Notification.NotificationUserChangeRequest": {
        "type": "object",
        "properties": {
          "idNotification": {
            "type": "string",
            "format": "uuid"
          },
          "value": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "OrganizationIpAddresses.OrganizationIpAddressViewDto": {
        "type": "object",
        "properties": {
          "ipAddress": {
            "type": "string",
            "nullable": true
          },
          "network": {
            "type": "string",
            "nullable": true
          },
          "asn": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "asName": {
            "type": "string",
            "nullable": true
          },
          "firstSeenTime": {
            "type": "string",
            "format": "date-time"
          },
          "lastSeenTime": {
            "type": "string",
            "format": "date-time"
          },
          "apiKeys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrganizationIpAddresses.OrganizationIpApiKeyDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrganizationIpAddresses.OrganizationIpAddressesResponse": {
        "type": "object",
        "properties": {
          "days": {
            "type": "integer",
            "format": "int32"
          },
          "ipAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrganizationIpAddresses.OrganizationIpAddressViewDto"
            },
            "nullable": true
          },
          "truncated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "OrganizationIpAddresses.OrganizationIpApiKeyDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "deleted": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "OrganizationIpAddresses.OrganizationIpNetworkDto": {
        "type": "object",
        "properties": {
          "network": {
            "type": "string",
            "nullable": true
          },
          "asn": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "asName": {
            "type": "string",
            "nullable": true
          },
          "ipCount": {
            "type": "integer",
            "format": "int32"
          },
          "firstSeenTime": {
            "type": "string",
            "format": "date-time"
          },
          "lastSeenTime": {
            "type": "string",
            "format": "date-time"
          },
          "apiKeys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrganizationIpAddresses.OrganizationIpApiKeyDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrganizationIpAddresses.OrganizationIpNetworksResponse": {
        "type": "object",
        "properties": {
          "days": {
            "type": "integer",
            "format": "int32"
          },
          "networks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrganizationIpAddresses.OrganizationIpNetworkDto"
            },
            "nullable": true
          },
          "truncated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Products.ProductCatalogPriceResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The price ID.",
            "format": "uuid"
          },
          "description": {
            "type": "string",
            "description": "Price description.",
            "nullable": true
          },
          "beginRange": {
            "type": "integer",
            "description": "Beginning range for the price tier.",
            "format": "int64"
          },
          "displayUnit": {
            "type": "string",
            "description": "Display unit for the price tier.",
            "nullable": true
          },
          "pricePerUnitUSD": {
            "type": "number",
            "description": "Price per unit in USD.",
            "format": "double"
          },
          "unitsToDisplayUnit": {
            "type": "integer",
            "description": "Units to display unit conversion factor.",
            "format": "int64"
          },
          "unitsToPriceUnit": {
            "type": "integer",
            "description": "Units to price unit conversion factor.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "Response model for a SKU price tier in the public product catalog."
      },
      "Products.ProductCatalogResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The product ID.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The product name.",
            "nullable": true
          },
          "isApiProductType": {
            "type": "boolean",
            "description": "Whether this is an API product type."
          },
          "displayOrder": {
            "type": "integer",
            "description": "Display order for sorting.",
            "format": "int32"
          },
          "productLine": {
            "type": "string",
            "description": "The product line.",
            "nullable": true
          },
          "skus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Products.ProductCatalogSkuResponse"
            },
            "description": "Product SKUs and their pricing tiers.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response model for the public product catalog pricing table."
      },
      "Products.ProductCatalogSkuResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The SKU ID.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The SKU name.",
            "nullable": true
          },
          "quotaKey": {
            "type": "string",
            "description": "Quota key used by the SKU.",
            "nullable": true
          },
          "quotaValueDefault": {
            "type": "integer",
            "description": "Default quota value for the SKU.",
            "format": "int64"
          },
          "goLiveDate": {
            "type": "string",
            "description": "SKU go-live date.",
            "format": "date-time",
            "nullable": true
          },
          "billingDateStartInclusive": {
            "type": "string",
            "description": "Inclusive billing start date for the SKU.",
            "format": "date-time",
            "nullable": true
          },
          "billingDateEndExclusive": {
            "type": "string",
            "description": "Exclusive billing end date for the SKU.",
            "format": "date-time",
            "nullable": true
          },
          "prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Products.ProductCatalogPriceResponse"
            },
            "description": "Pricing tiers for the SKU.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response model for a product SKU in the public product catalog."
      },
      "Referrals.CompleteStripeConnectRequest": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Referrals.SetReferralCodeRequest": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Referrals.SetReferralPayoutMethodRequest": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "nullable": true
          },
          "returnUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RequestLog.OrganizationServiceSummaryDto": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "format": "uuid"
          },
          "service": {
            "type": "string",
            "nullable": true
          },
          "route": {
            "type": "string",
            "nullable": true
          },
          "totalRequests": {
            "type": "integer",
            "format": "int64"
          },
          "statusCode": {
            "type": "integer",
            "format": "int32"
          },
          "responseTimeMilliSecondsMin": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsMax": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsAvg": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsP50": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsP90": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsP95": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsP99": {
            "type": "integer",
            "format": "int64"
          },
          "responseSizeAvg": {
            "type": "number",
            "format": "double"
          },
          "responseSizeSum": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RequestLog.RequestLogDto": {
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string",
            "nullable": true
          },
          "service": {
            "type": "string",
            "nullable": true
          },
          "environment": {
            "type": "string",
            "nullable": true
          },
          "eventDate": {
            "type": "string",
            "format": "date-time"
          },
          "eventTime": {
            "type": "string",
            "format": "date-time"
          },
          "eventTimeMicroseconds": {
            "type": "string",
            "format": "date-time"
          },
          "requestStartTime": {
            "type": "string",
            "format": "date-time"
          },
          "requestStartTimeMicroseconds": {
            "type": "string",
            "format": "date-time"
          },
          "requestDurationMs": {
            "type": "integer",
            "format": "int64"
          },
          "timeToFirstByteMs": {
            "type": "integer",
            "format": "int64"
          },
          "serverToClientDurationMs": {
            "type": "integer",
            "format": "int64"
          },
          "httpMethod": {
            "type": "string",
            "nullable": true
          },
          "scheme": {
            "type": "string",
            "nullable": true
          },
          "isSecure": {
            "type": "integer",
            "format": "int32"
          },
          "host": {
            "type": "string",
            "nullable": true
          },
          "path": {
            "type": "string",
            "nullable": true
          },
          "route": {
            "type": "string",
            "nullable": true
          },
          "queryString": {
            "type": "string",
            "nullable": true
          },
          "requestUserAgent": {
            "type": "string",
            "nullable": true
          },
          "requestReferer": {
            "type": "string",
            "nullable": true
          },
          "requestContentType": {
            "type": "string",
            "nullable": true
          },
          "requestXForwardedFor": {
            "type": "string",
            "nullable": true
          },
          "requestBytes": {
            "type": "integer",
            "format": "int64"
          },
          "idempotencyKey": {
            "type": "string",
            "nullable": true
          },
          "userId": {
            "type": "string",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "apiKeyId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "authSubject": {
            "type": "string",
            "nullable": true
          },
          "authScopesCsv": {
            "type": "string",
            "nullable": true
          },
          "requestId": {
            "type": "string",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "nullable": true
          },
          "spanId": {
            "type": "string",
            "nullable": true
          },
          "parentSpanId": {
            "type": "string",
            "nullable": true
          },
          "logComment": {
            "type": "string",
            "nullable": true
          },
          "tagsCsv": {
            "type": "string",
            "nullable": true
          },
          "mcpFunction": {
            "type": "string",
            "nullable": true
          },
          "mcpParameters": {
            "type": "string",
            "nullable": true
          },
          "clientIp": {
            "type": "string",
            "nullable": true
          },
          "clientPort": {
            "type": "integer",
            "format": "int32"
          },
          "tlsProtocol": {
            "type": "string",
            "nullable": true
          },
          "tlsCipher": {
            "type": "string",
            "nullable": true
          },
          "mtlsPeerFingerprint": {
            "type": "string",
            "nullable": true
          },
          "rateLimitBucket": {
            "type": "string",
            "nullable": true
          },
          "rateLimitLimit": {
            "type": "integer",
            "format": "int32"
          },
          "rateLimitRemaining": {
            "type": "integer",
            "format": "int32"
          },
          "rateLimitResetTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "statusCode": {
            "type": "integer",
            "format": "int32"
          },
          "statusFamily": {
            "type": "integer",
            "format": "int32"
          },
          "responseContentType": {
            "type": "string",
            "nullable": true
          },
          "responseContentEncoding": {
            "type": "string",
            "nullable": true
          },
          "responseBytes": {
            "type": "integer",
            "format": "int64"
          },
          "responseBytesCompressed": {
            "type": "integer",
            "format": "int64"
          },
          "errorCode": {
            "type": "string",
            "nullable": true
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "stackTrace": {
            "type": "string",
            "nullable": true
          },
          "connectionId": {
            "type": "string",
            "nullable": true
          },
          "localIpAddress": {
            "type": "string",
            "nullable": true
          },
          "localPort": {
            "type": "integer",
            "format": "int32"
          },
          "remoteIpAddress": {
            "type": "string",
            "nullable": true
          },
          "remotePort": {
            "type": "integer",
            "format": "int32"
          },
          "http2StreamId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "tlsKeyExchange": {
            "type": "string",
            "nullable": true
          },
          "clientCertificatePresent": {
            "type": "integer",
            "format": "int32"
          },
          "clientCertificateThumbprint": {
            "type": "string",
            "nullable": true
          },
          "clientCertificateSubject": {
            "type": "string",
            "nullable": true
          },
          "requestHeadersSize": {
            "type": "integer",
            "format": "int64"
          },
          "responseHeadersSize": {
            "type": "integer",
            "format": "int64"
          },
          "connectionReused": {
            "type": "integer",
            "format": "int32"
          },
          "requestAborted": {
            "type": "integer",
            "format": "int32"
          },
          "upgradeRequested": {
            "type": "integer",
            "format": "int32"
          },
          "hasRequestBody": {
            "type": "integer",
            "format": "int32"
          },
          "requestContentEncoding": {
            "type": "string",
            "nullable": true
          },
          "requestAcceptEncoding": {
            "type": "string",
            "nullable": true
          },
          "requestHeadersValid": {
            "type": "integer",
            "format": "int32"
          },
          "statusCodeCategory": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RequestLog.TimeSeriesAnalyticsDto": {
        "type": "object",
        "properties": {
          "timeSlot": {
            "type": "string",
            "format": "date-time"
          },
          "totalRequests": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsMin": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsMax": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsAvg": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsP50": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsP90": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsP95": {
            "type": "integer",
            "format": "int64"
          },
          "responseTimeMilliSecondsP99": {
            "type": "integer",
            "format": "int64"
          },
          "responseSizeAvg": {
            "type": "number",
            "format": "double"
          },
          "responseSizeSum": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Services.EmailNotificationsDto": {
        "type": "object",
        "properties": {
          "billingEmail": {
            "type": "string",
            "nullable": true
          },
          "allNotificationsEmail": {
            "type": "string",
            "nullable": true
          },
          "actionRequiredNotificationsEmail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TaxIds.TaxIdCreate": {
        "required": [
          "taxIdType",
          "taxIdValue"
        ],
        "type": "object",
        "properties": {
          "taxIdType": {
            "minLength": 1,
            "type": "string"
          },
          "taxIdValue": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Team.CreateTeamRequest": {
        "type": "object",
        "properties": {
          "teamName": {
            "type": "string",
            "nullable": true
          },
          "amplitudeDeviceId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Team.InviteUserDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Team.RespondToInviteDto": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "nullable": true
          },
          "decision": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "APIKey": {
        "type": "apiKey",
        "description": "API Key is required to access the endpoints",
        "name": "Authorization",
        "in": "header"
      },
      "JWT": {
        "type": "http",
        "description": "JWT Authorization header using the Bearer scheme. Example: \"Bearer {token}\"",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "APIKey": [ ]
    },
    {
      "JWT": [ ]
    }
  ],
  "tags": [
    {
      "name": "Team",
      "description": "Team membership, users, and organization collaboration management.",
      "x-displayName": "Team"
    },
    {
      "name": "Support",
      "description": "Support tickets, ticket details, and support interactions.",
      "x-displayName": "Support"
    },
    {
      "name": "Subscription",
      "description": "Subscription state, plans, and checkout links.",
      "x-displayName": "Subscription"
    },
    {
      "name": "Referrals",
      "x-displayName": "Referrals"
    },
    {
      "name": "Quota",
      "description": "Current quota balances, limits, and quota-related account information.",
      "x-displayName": "Quota"
    },
    {
      "name": "Products",
      "description": "Available product catalog and product metadata for subscriptions.",
      "x-displayName": "Products"
    },
    {
      "name": "Organization",
      "description": "Organization profile, balances, and usage information.",
      "x-displayName": "Organization"
    },
    {
      "name": "Notifications",
      "description": "User and organization notifications plus read-state management.",
      "x-displayName": "Notifications"
    },
    {
      "name": "Connection Analytics",
      "description": "Aggregated connection metrics, trends, and analytics views.",
      "x-displayName": "Connection Analytics"
    },
    {
      "name": "Connection Logs",
      "description": "Recent connection history and connection-event ingestion endpoints.",
      "x-displayName": "Connection Logs"
    },
    {
      "name": "Metrics Usage",
      "description": "Usage metrics for metered products and quota consumption.",
      "x-displayName": "Metrics Usage"
    },
    {
      "name": "Request Logs",
      "description": "HTTP/API request logs and related request-level analytics.",
      "x-displayName": "Request Logs"
    },
    {
      "name": "Inbound Leads",
      "description": "Website contact-us form submissions accepted with an inbound-leads organization API key and processed as webhooks.",
      "x-displayName": "Inbound Leads"
    },
    {
      "name": "Free Credits",
      "description": "Trial-credit status for organizations in relation to eligibility checks.",
      "x-displayName": "Free Credits"
    },
    {
      "name": "Usage Management",
      "description": "Usage summaries, estimates, and billing-oriented consumption views.",
      "x-displayName": "Usage Management"
    },
    {
      "name": "Tax IDs",
      "description": "Manage tax identification details used for billing and invoices.",
      "x-displayName": "Tax IDs"
    },
    {
      "name": "Pricing Migrations",
      "x-displayName": "Pricing Migrations"
    },
    {
      "name": "Payment Methods",
      "description": "Stored payment methods used for subscriptions and billing.",
      "x-displayName": "Payment Methods"
    },
    {
      "name": "Payment Cards",
      "description": "Card-focused payment actions and saved payment card workflows.",
      "x-displayName": "Payment Cards"
    },
    {
      "name": "Invoices",
      "description": "Invoice retrieval, payment flows, and public invoice access.",
      "x-displayName": "Invoices"
    },
    {
      "name": "Audit Log",
      "description": "Organization audit trail entries and filtered activity history.",
      "x-displayName": "Audit Log"
    },
    {
      "name": "LinkAttribution",
      "x-displayName": "LinkAttribution"
    },
    {
      "name": "API Keys",
      "description": "Create, list, rename, enable, and delete organization API keys.",
      "x-displayName": "API Keys"
    }
  ]
}