{
  "openapi": "3.1.0",
  "info": {
    "title": "Flashduty Open API",
    "description": "Public HTTP API for the Flashduty incident management platform — incidents, notification templates, channels, schedules, monitors, RUM, and platform administration. Every operation is authenticated with an `app_key` query parameter issued from the Flashduty console under Account → APP Keys. Responses follow a uniform envelope: `{ request_id, data }` on success, `{ request_id, error }` on failure.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.flashcat.cloud",
      "description": "Flashduty Open API"
    }
  ],
  "security": [
    {
      "AppKeyAuth": []
    }
  ],
  "tags": [
    {
      "name": "RUM/Applications",
      "description": "Manage Real User Monitoring (RUM) applications."
    },
    {
      "name": "RUM/Data query",
      "description": "Run RUM analytics queries over event data."
    },
    {
      "name": "RUM/Issues",
      "description": "Query and manage RUM error tracking issues and preset severity rules."
    },
    {
      "name": "RUM/Facets",
      "description": "Query RUM facet fields and their value distributions for building analytics filters."
    },
    {
      "name": "RUM/Sourcemaps",
      "description": "Manage and query RUM sourcemap files for browser, Android, and iOS error symbolication."
    },
    {
      "name": "RUM/Session replay",
      "description": "Retrieve session replay metadata and recorded segments for RUM sessions."
    }
  ],
  "paths": {
    "/rum/facet/count": {
      "post": {
        "operationId": "rum-read-facet-count",
        "summary": "Count facet value distribution",
        "description": "Return the top N values for a facet field within a time range, sorted by occurrence count descending.",
        "tags": [
          "RUM/Facets"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **300 requests/minute**; **100 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Use `POST /rum/facet/list` to discover available `facet_key` values for each scope.\n- The `scope` must be one of: `session`, `view`, `action`, `error`, `resource`, `long_task`, `vital`, `issue`, `sourcemap`.\n- Pass `dql` to further filter events before counting. DQL syntax follows the RUM query language.\n- Pass `sql` with a WHERE-clause only (no SELECT) for SQL-style filtering.\n- Default limit is 100; maximum is 100.\n- Time range is required (`start_time` / `end_time` in Unix epoch **milliseconds**). Maximum span is 31 days.",
          "href": "/en/api-reference/rum/facets/rum-read-facet-count",
          "metadata": {
            "sidebarTitle": "Count facet value distribution"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumFacetCountResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "items": [
                      {
                        "facet_value": "TypeError",
                        "count": 1523
                      },
                      {
                        "facet_value": "ReferenceError",
                        "count": 342
                      },
                      {
                        "facet_value": "SyntaxError",
                        "count": 89
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumFacetCountRequest"
              },
              "example": {
                "scope": "error",
                "facet_key": "error.type",
                "start_time": 1712620800000,
                "end_time": 1712707200000,
                "limit": 10
              }
            }
          }
        }
      }
    },
    "/rum/application/webhook/test": {
      "post": {
        "operationId": "rum-application-webhook-test",
        "summary": "Test application webhook",
        "description": "Send a sample RUM alert event to verify an application's webhook URL.",
        "tags": [
          "RUM/Applications"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | **Applications Manage** (`rum`) |\n\n## Usage\n\n- The endpoint validates the URL before sending the sample event.\n- A failed delivery still returns HTTP 200 with `ok=false` and the delivery error in `message`.",
          "href": "/en/api-reference/rum/applications/rum-application-webhook-test",
          "metadata": {
            "sidebarTitle": "Test application webhook"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumWebhookTestResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "ok": true,
                    "status_code": 200,
                    "message": "ok"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumWebhookTestRequest"
              },
              "example": {
                "application_id": "rum-app-prod",
                "webhook_url": "https://hooks.example.com/rum-alerts"
              }
            }
          }
        }
      }
    },
    "/rum/issue/info": {
      "post": {
        "operationId": "rum-issue-read-info",
        "summary": "Get issue detail",
        "description": "Retrieve full details of a single issue by `issue_id`.",
        "tags": [
          "RUM/Issues"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |",
          "href": "/en/api-reference/rum/issues/rum-issue-read-info",
          "metadata": {
            "sidebarTitle": "Get issue detail"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumIssueItem"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "team_id": 2477033058131,
                    "issue_id": "NHEacQHi2DhXqobr9qPQz9",
                    "application_id": "eWbr4xk3ZRnLabRa6unqwD",
                    "application_name": "Flashduty DEV",
                    "service": "fd-console",
                    "status": "for_review",
                    "error_count": 752,
                    "session_count": 381,
                    "is_crash": false,
                    "age": 5078684,
                    "resolved_at": 0,
                    "resolved_by": 0,
                    "created_at": 1770883154944,
                    "updated_at": 1775961914595,
                    "first_seen": {
                      "timestamp": 1770883154944,
                      "version": "1.0.0"
                    },
                    "last_seen": {
                      "timestamp": 1775961839090,
                      "version": "1.0.0"
                    },
                    "error": {
                      "message": "Script error.",
                      "type": "Error"
                    },
                    "suspected_cause": {
                      "source": "auto",
                      "value": "code.exception",
                      "reason": "The error message 'Script error.' typically indicates an unhandled exception in JavaScript.",
                      "person_id": 0
                    },
                    "versions": [
                      "1.0.0"
                    ],
                    "severity": "Info"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumIssueIDRequest"
              },
              "example": {
                "issue_id": "NHEacQHi2DhXqobr9qPQz9"
              }
            }
          }
        }
      }
    },
    "/rum/application/list": {
      "post": {
        "operationId": "rum-application-read-list",
        "summary": "List applications",
        "description": "Return a paginated list of RUM applications accessible to the current user.",
        "tags": [
          "RUM/Applications"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Use `is_my_team` to filter applications belonging to the current user's teams.\n- Default page size is 20, maximum is 100.\n- `orderby` accepts `created_at` or `updated_at`.",
          "href": "/en/api-reference/rum/applications/rum-application-read-list",
          "metadata": {
            "sidebarTitle": "List applications"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumApplicationListResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "has_next_page": true,
                    "total": 7,
                    "items": [
                      {
                        "account_id": 2451002751131,
                        "application_id": "WoyQQ3BohkdtPivubEvE8o",
                        "application_name": "flashcat-rum",
                        "type": "browser",
                        "client_token": "a3cea433a8685a398cdfd68f54a45e06131",
                        "team_id": 2477033058131,
                        "is_private": true,
                        "no_ip": true,
                        "no_geo": false,
                        "alerting": {
                          "enabled": true,
                          "channel_ids": [
                            2490121812131
                          ],
                          "integration_id": 4759595678131
                        },
                        "tracing": {
                          "enabled": false,
                          "open_type": "",
                          "endpoint": ""
                        },
                        "status": "enabled",
                        "created_by": 4441703362131,
                        "updated_by": 3790925372131,
                        "created_at": 1746673831462,
                        "updated_at": 1773398630657,
                        "links": {
                          "enabled": true,
                          "systems": [
                            {
                              "id": "s3-crash-logs",
                              "name": "S3 Crash Logs",
                              "icon_text": "S3",
                              "icon_color": "#0F766E",
                              "url": "https://s3.example.com/logs?app=${application_id}&trace=${trace_id}",
                              "event_types": [
                                "crash",
                                "error"
                              ],
                              "enabled": true
                            }
                          ]
                        }
                      },
                      {
                        "account_id": 2451002751131,
                        "application_id": "eWbr4xk3ZRnLabRa6unqwD",
                        "application_name": "Flashduty DEV",
                        "type": "browser",
                        "client_token": "ce8d1be90fc6534f89ce36ebf526765e131",
                        "team_id": 2477033058131,
                        "is_private": false,
                        "no_ip": false,
                        "no_geo": false,
                        "alerting": {
                          "enabled": true,
                          "channel_ids": [
                            5962711836131,
                            5967875767131
                          ],
                          "integration_id": 4759595678131
                        },
                        "tracing": {
                          "enabled": true,
                          "open_type": "popup",
                          "endpoint": "https://www.tracing.com/${trace_id}"
                        },
                        "status": "enabled",
                        "created_by": 2476444212131,
                        "updated_by": 3122470302131,
                        "created_at": 1742958482000,
                        "updated_at": 1772096392711,
                        "links": {
                          "enabled": false,
                          "systems": []
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumApplicationListRequest"
              },
              "example": {
                "p": 1,
                "limit": 20,
                "query": "",
                "is_my_team": false
              }
            }
          }
        }
      }
    },
    "/rum/facet/list": {
      "post": {
        "operationId": "rum-read-facet-list",
        "summary": "List RUM facet fields",
        "description": "Return all available RUM field definitions, optionally filtered by scope and facet status.",
        "tags": [
          "RUM/Facets"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Use the returned `field_key` values as `facet_key` in `POST /rum/facet/count`.\n- Valid `scopes` are: `session`, `view`, `action`, `error`, `resource`, `long_task`, `vital`, `issue`, `sourcemap`.\n- Set `is_facet: true` to return only facet-enabled fields (those that support value distribution queries).",
          "href": "/en/api-reference/rum/facets/rum-read-facet-list",
          "metadata": {
            "sidebarTitle": "List RUM facet fields"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumFacetListResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "items": [
                      {
                        "account_id": 0,
                        "field_key": "error.type",
                        "field_name": "Error type",
                        "group": "Error",
                        "description": "The type of the error.",
                        "value_type": "string",
                        "show_type": "list",
                        "unit_family": "",
                        "unit_name": "",
                        "edit_able": false,
                        "is_facet": true,
                        "enum_values": [],
                        "scopes": [
                          "error"
                        ],
                        "status": "active",
                        "queryable": true
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumFacetListRequest"
              },
              "example": {
                "scopes": [
                  "error"
                ],
                "is_facet": true
              }
            }
          }
        }
      }
    },
    "/sourcemap/stack/enrich": {
      "post": {
        "operationId": "sourcemap-read-stack-enrich",
        "summary": "Enrich a stack trace",
        "description": "Symbolicate or deobfuscate a browser, Android, iOS, Mini Program, or HarmonyOS stack trace.",
        "tags": [
          "RUM/Sourcemaps"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- `type` defaults to `browser` when omitted for backward compatibility.\n- Set `near` from 1 to 20 to include source-code snippets around converted frames.\n- For Android NDK native crashes, provide `arch` and `source_type: ndk` so the backend routes to native symbolication.\n- For iOS crash stacks, pass `binary_images` so addresses can be relocated against the uploaded dSYM files.\n- `no_cache` is intended for debugging and bypasses cached enrich results.",
          "href": "/en/api-reference/rum/sourcemaps/sourcemap-read-stack-enrich",
          "metadata": {
            "sidebarTitle": "Enrich a stack trace"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/SourcemapStackEnrichResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "frames": [
                      {
                        "function": "renderCheckout",
                        "file": "src/pages/checkout.tsx",
                        "line": 42,
                        "column": 17,
                        "converted": true,
                        "code_snippets": [
                          {
                            "line": 41,
                            "code": "const cart = props.cart;"
                          },
                          {
                            "line": 42,
                            "code": "return cart.items.map(renderItem);"
                          }
                        ],
                        "original_frame": {
                          "function": "render",
                          "file": "https://cdn.example.com/app.min.js",
                          "line": 1,
                          "column": 2345
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourcemapStackEnrichRequest"
              },
              "example": {
                "type": "browser",
                "service": "my-web-app",
                "version": "1.0.0",
                "stack": "TypeError: Cannot read properties of undefined\n    at render (https://cdn.example.com/app.min.js:1:2345)",
                "near": 3
              }
            }
          }
        }
      }
    },
    "/rum/data/query": {
      "post": {
        "operationId": "rum-read-data-query",
        "summary": "Query RUM data",
        "description": "Run one or more SQL-style RUM data queries over a bounded time range.",
        "tags": [
          "RUM/Data query"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Send 1 to 10 queries in one request; each query `id` becomes a key in the response object.\n- `start_time` and `end_time` are required Unix epoch milliseconds. The maximum time range is 31 days.\n- Use `format: table` for tabular results, or `format: time_series` for bucketed time-series results.\n- For `time_series`, `interval` defaults to 3600 seconds and `max_points` defaults to 1226 when omitted.\n- `search_after_ctx` is returned by paginated table queries and can be sent back to continue scanning.",
          "href": "/en/api-reference/rum/data-query/rum-read-data-query",
          "metadata": {
            "sidebarTitle": "Query RUM data"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumDataQueryResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "errors_by_type": {
                      "data": {
                        "fields": [
                          {
                            "name": "error.type",
                            "type": "String",
                            "nullable": false
                          },
                          {
                            "name": "errors",
                            "type": "UInt64",
                            "nullable": false
                          }
                        ],
                        "values": [
                          [
                            "TypeError",
                            1523
                          ],
                          [
                            "ReferenceError",
                            342
                          ]
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumDataQueryRequest"
              },
              "example": {
                "start_time": 1712620800000,
                "end_time": 1712707200000,
                "queries": [
                  {
                    "id": "errors_by_type",
                    "sql": "SELECT error.type, count(*) AS errors FROM error GROUP BY error.type ORDER BY errors DESC LIMIT 10",
                    "format": "table",
                    "time_zone": "Asia/Shanghai"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/rum/issue/list": {
      "post": {
        "operationId": "rum-issue-read-list",
        "summary": "List issues",
        "description": "Return a paginated list of RUM error tracking issues matching the given filters.",
        "tags": [
          "RUM/Issues"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- `start_time` and `end_time` are millisecond timestamps. Maximum range: 183 days.\n- `statuses` filters by issue status. Valid values: `for_review`, `reviewed`, `ignored`, `resolved`.\n- `orderby` accepts: `created_at`, `updated_at`, `session_count`, `error_count`.\n- Use `dql` or `sql` for advanced filtering. Cannot provide both.",
          "href": "/en/api-reference/rum/issues/rum-issue-read-list",
          "metadata": {
            "sidebarTitle": "List issues"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumIssueListResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "items": [
                      {
                        "team_id": 2477033058131,
                        "issue_id": "NHEacQHi2DhXqobr9qPQz9",
                        "application_id": "eWbr4xk3ZRnLabRa6unqwD",
                        "application_name": "Flashduty DEV",
                        "service": "fd-console",
                        "status": "for_review",
                        "error_count": 752,
                        "session_count": 381,
                        "is_crash": false,
                        "age": 5078684,
                        "resolved_at": 0,
                        "resolved_by": 0,
                        "created_at": 1770883154944,
                        "updated_at": 1775961914595,
                        "first_seen": {
                          "timestamp": 1770883154944,
                          "version": "1.0.0"
                        },
                        "last_seen": {
                          "timestamp": 1775961839090,
                          "version": "1.0.0"
                        },
                        "error": {
                          "message": "Script error.",
                          "type": "Error"
                        },
                        "suspected_cause": {
                          "source": "auto",
                          "value": "code.exception",
                          "reason": "The error message 'Script error.' typically indicates an unhandled exception in JavaScript.",
                          "person_id": 0
                        },
                        "versions": [
                          "1.0.0"
                        ],
                        "severity": "Info"
                      },
                      {
                        "team_id": 2477033058131,
                        "issue_id": "H8kZSmxiE7EgdyD4fCyyNa",
                        "application_id": "eWbr4xk3ZRnLabRa6unqwD",
                        "application_name": "Flashduty DEV",
                        "service": "fd-console",
                        "status": "for_review",
                        "error_count": 3,
                        "session_count": 1,
                        "is_crash": false,
                        "age": 48,
                        "resolved_at": 0,
                        "resolved_by": 0,
                        "created_at": 1775189479566,
                        "updated_at": 1775191284163,
                        "first_seen": {
                          "timestamp": 1775189479566,
                          "version": "1.0.0"
                        },
                        "last_seen": {
                          "timestamp": 1775189527762,
                          "version": "1.0.0"
                        },
                        "error": {
                          "message": "API ERROR: We encountered an internal error | POST /api/access/logout",
                          "type": "Error"
                        },
                        "suspected_cause": {
                          "source": "auto",
                          "value": "api.failed_request",
                          "reason": "The error indicates an internal server error during a POST request to /api/access/logout.",
                          "person_id": 0
                        },
                        "versions": [
                          "1.0.0"
                        ],
                        "severity": "Info"
                      }
                    ],
                    "has_next_page": true,
                    "total": 111
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumIssueListRequest"
              },
              "example": {
                "start_time": 1772611200000,
                "end_time": 1775961914595,
                "application_ids": [
                  "eWbr4xk3ZRnLabRa6unqwD"
                ],
                "statuses": [
                  "for_review"
                ],
                "p": 1,
                "limit": 20,
                "orderby": "updated_at"
              }
            }
          }
        }
      }
    },
    "/rum/issue/update": {
      "post": {
        "operationId": "rum-issue-write-update",
        "summary": "Update issue",
        "description": "Update the status or suspected cause of an issue.",
        "tags": [
          "RUM/Issues"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- `status` valid values: `for_review`, `reviewed`, `ignored`, `resolved`.\n- `suspected_cause` valid values: `api.failed_request`, `network.error`, `code.exception`, `code.invalid_object_access`, `code.invalid_argument`, `unknown`.\n- Setting `status` to `resolved` also stamps `resolved_at` and `resolved_by` on the issue; moving a resolved issue back to another status clears them.\n- Every call is recorded in the account audit log. Don't put secrets in request fields.",
          "href": "/en/api-reference/rum/issues/rum-issue-write-update",
          "metadata": {
            "sidebarTitle": "Update issue"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/EmptyResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {}
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumIssueUpdateRequest"
              },
              "example": {
                "issue_id": "NHEacQHi2DhXqobr9qPQz9",
                "status": "resolved"
              }
            }
          }
        }
      }
    },
    "/rum/application/infos": {
      "post": {
        "operationId": "rum-application-read-infos",
        "summary": "Batch get applications",
        "description": "Retrieve details for multiple RUM applications by their IDs in one request.",
        "tags": [
          "RUM/Applications"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Maximum 200 IDs per request.",
          "href": "/en/api-reference/rum/applications/rum-application-read-infos",
          "metadata": {
            "sidebarTitle": "Batch get applications"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumApplicationInfosResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "items": [
                      {
                        "account_id": 2451002751131,
                        "application_id": "eWbr4xk3ZRnLabRa6unqwD",
                        "application_name": "Flashduty DEV",
                        "type": "browser",
                        "client_token": "ce8d1be90fc6534f89ce36ebf526765e131",
                        "team_id": 2477033058131,
                        "is_private": false,
                        "no_ip": false,
                        "no_geo": false,
                        "alerting": {
                          "enabled": true,
                          "channel_ids": [
                            5962711836131,
                            5967875767131
                          ],
                          "integration_id": 4759595678131
                        },
                        "tracing": {
                          "enabled": true,
                          "open_type": "popup",
                          "endpoint": "https://www.tracing.com/${trace_id}"
                        },
                        "status": "enabled",
                        "created_by": 2476444212131,
                        "updated_by": 3122470302131,
                        "created_at": 1742958482000,
                        "updated_at": 1772096392711,
                        "links": {
                          "enabled": false,
                          "systems": []
                        }
                      },
                      {
                        "account_id": 2451002751131,
                        "application_id": "WoyQQ3BohkdtPivubEvE8o",
                        "application_name": "flashcat-rum",
                        "type": "browser",
                        "client_token": "a3cea433a8685a398cdfd68f54a45e06131",
                        "team_id": 2477033058131,
                        "is_private": true,
                        "no_ip": true,
                        "no_geo": false,
                        "alerting": {
                          "enabled": true,
                          "channel_ids": [
                            2490121812131
                          ],
                          "integration_id": 4759595678131
                        },
                        "tracing": {
                          "enabled": false,
                          "open_type": "",
                          "endpoint": ""
                        },
                        "status": "enabled",
                        "created_by": 4441703362131,
                        "updated_by": 3790925372131,
                        "created_at": 1746673831462,
                        "updated_at": 1773398630657,
                        "links": {
                          "enabled": true,
                          "systems": [
                            {
                              "id": "s3-crash-logs",
                              "name": "S3 Crash Logs",
                              "icon_text": "S3",
                              "icon_color": "#0F766E",
                              "url": "https://s3.example.com/logs?app=${application_id}&trace=${trace_id}",
                              "event_types": [
                                "crash",
                                "error"
                              ],
                              "enabled": true
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumApplicationInfosRequest"
              },
              "example": {
                "application_ids": [
                  "eWbr4xk3ZRnLabRa6unqwD",
                  "WoyQQ3BohkdtPivubEvE8o"
                ]
              }
            }
          }
        }
      }
    },
    "/rum/field/list": {
      "post": {
        "operationId": "rum-read-field-list",
        "summary": "List RUM fields",
        "description": "Return RUM field definitions, optionally filtered by scope and facet status.",
        "tags": [
          "RUM/Facets"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- This is the current field-model route for discovering RUM fields.\n- Use returned `field_key` values in RUM data queries and facet-count requests.\n- Set `is_facet: true` to return only fields that support value distribution queries.",
          "href": "/en/api-reference/rum/facets/rum-read-field-list",
          "metadata": {
            "sidebarTitle": "List RUM fields"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumFieldListResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "items": [
                      {
                        "account_id": 0,
                        "field_key": "error.type",
                        "field_name": "Error type",
                        "group": "Error",
                        "description": "The type of the error.",
                        "value_type": "string",
                        "show_type": "list",
                        "unit_family": "",
                        "unit_name": "",
                        "edit_able": false,
                        "is_facet": true,
                        "enum_values": [],
                        "scopes": [
                          "error"
                        ],
                        "status": "active",
                        "queryable": true
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumFieldListRequest"
              },
              "example": {
                "scopes": [
                  "error"
                ],
                "is_facet": false
              }
            }
          }
        }
      }
    },
    "/rum/application/info": {
      "post": {
        "operationId": "rum-application-read-info",
        "summary": "Get application detail",
        "description": "Retrieve full details of a single RUM application by `application_id`.",
        "tags": [
          "RUM/Applications"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |",
          "href": "/en/api-reference/rum/applications/rum-application-read-info",
          "metadata": {
            "sidebarTitle": "Get application detail"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumApplicationItem"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "account_id": 2451002751131,
                    "application_id": "WoyQQ3BohkdtPivubEvE8o",
                    "application_name": "flashcat-rum",
                    "type": "browser",
                    "client_token": "a3cea433a8685a398cdfd68f54a45e06131",
                    "team_id": 2477033058131,
                    "is_private": true,
                    "no_ip": true,
                    "no_geo": false,
                    "alerting": {
                      "enabled": true,
                      "channel_ids": [
                        2490121812131
                      ],
                      "integration_id": 4759595678131
                    },
                    "tracing": {
                      "enabled": false,
                      "open_type": "",
                      "endpoint": ""
                    },
                    "status": "enabled",
                    "created_by": 4441703362131,
                    "updated_by": 3790925372131,
                    "created_at": 1746673831462,
                    "updated_at": 1773398630657,
                    "links": {
                      "enabled": true,
                      "systems": [
                        {
                          "id": "s3-crash-logs",
                          "name": "S3 Crash Logs",
                          "icon_text": "S3",
                          "icon_color": "#0F766E",
                          "url": "https://s3.example.com/logs?app=${application_id}&trace=${trace_id}",
                          "event_types": [
                            "crash",
                            "error"
                          ],
                          "enabled": true
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumApplicationIDRequest"
              },
              "example": {
                "application_id": "WoyQQ3BohkdtPivubEvE8o"
              }
            }
          }
        }
      }
    },
    "/rum/application/delete": {
      "post": {
        "operationId": "rum-application-write-delete",
        "summary": "Delete application",
        "description": "Delete a RUM application by `application_id`.",
        "tags": [
          "RUM/Applications"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | **Applications Manage** (`rum`) |\n\n## Usage\n\n- Every call is recorded in the account audit log. Don't put secrets in request fields.",
          "href": "/en/api-reference/rum/applications/rum-application-write-delete",
          "metadata": {
            "sidebarTitle": "Delete application"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/EmptyResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {}
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumApplicationIDRequest"
              },
              "example": {
                "application_id": "qLpu24Dz4CAzWsESPbJYWA"
              }
            }
          }
        }
      }
    },
    "/rum/application/create": {
      "post": {
        "operationId": "rum-application-write-create",
        "summary": "Create application",
        "description": "Create a new RUM application. Returns the generated `application_id` and `client_token`.",
        "tags": [
          "RUM/Applications"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | **Applications Manage** (`rum`) |\n\n## Usage\n\n- `type` must be one of: `browser`, `ios`, `android`, `react-native`, `flutter`, `kotlin-multiplatform`, `roku`, `unity`.\n- `links.systems[].url` must start with `http` or `https`; `${var}` tokens are resolved from RUM event context.\n- `links.systems[].event_types` accepts: `crash`, `error`, `view`, `action`, `resource`, `session`, `all`.\n- `client_token` is auto-generated and used to initialize the RUM SDK.\n- Every call is recorded in the account audit log. Don't put secrets in request fields.",
          "href": "/en/api-reference/rum/applications/rum-application-write-create",
          "metadata": {
            "sidebarTitle": "Create application"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumApplicationCreateResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "application_id": "qLpu24Dz4CAzWsESPbJYWA",
                    "application_name": "My Web App",
                    "client_token": "e090078724855a4ca168c3884880dfbc131"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumApplicationCreateRequest"
              },
              "example": {
                "application_name": "My Web App",
                "type": "browser",
                "team_id": 2477033058131,
                "is_private": false,
                "links": {
                  "enabled": true,
                  "systems": [
                    {
                      "id": "s3-crash-logs",
                      "name": "S3 Crash Logs",
                      "icon_text": "S3",
                      "icon_color": "#0F766E",
                      "url": "https://s3.example.com/logs?app=${application_id}&trace=${trace_id}",
                      "event_types": [
                        "crash",
                        "error"
                      ],
                      "enabled": true
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/rum/application/update": {
      "post": {
        "operationId": "rum-application-write-update",
        "summary": "Update application",
        "description": "Update an existing RUM application. All fields except `application_id` are optional — only provided fields are updated.",
        "tags": [
          "RUM/Applications"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | **Applications Manage** (`rum`) |\n\n## Usage\n\n- `links.systems[].url` must start with `http` or `https`; `${var}` tokens are resolved from RUM event context.\n- `links.systems[].event_types` accepts: `crash`, `error`, `view`, `action`, `resource`, `session`, `all`.\n- Every call is recorded in the account audit log. Don't put secrets in request fields.",
          "href": "/en/api-reference/rum/applications/rum-application-write-update",
          "metadata": {
            "sidebarTitle": "Update application"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/EmptyResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {}
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumApplicationUpdateRequest"
              },
              "example": {
                "application_id": "WoyQQ3BohkdtPivubEvE8o",
                "application_name": "My Web App v2",
                "alerting": {
                  "enabled": true,
                  "channel_ids": [
                    2490121812131
                  ]
                },
                "links": {
                  "enabled": true,
                  "systems": [
                    {
                      "id": "s3-crash-logs",
                      "name": "S3 Crash Logs",
                      "icon_text": "S3",
                      "icon_color": "#0F766E",
                      "url": "https://s3.example.com/logs?app=${application_id}&trace=${trace_id}",
                      "event_types": [
                        "crash",
                        "error"
                      ],
                      "enabled": true
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/sourcemap/list": {
      "post": {
        "operationId": "sourcemap-read-list",
        "summary": "List sourcemaps",
        "description": "Return a paginated list of uploaded sourcemap files filtered by platform type, service, and version.",
        "tags": [
          "RUM/Sourcemaps"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- `start_time` and `end_time` are required — both use Unix epoch **milliseconds**. Maximum window is 365 days.\n- The `type` field selects the platform: `browser` (JavaScript), `android`, or `ios`. Defaults to `browser` when omitted.\n- Default page size is 20; maximum is 100. Default sort is `created_at` descending.\n- For Android, `build_id` matches the Gradle plugin build identifier. For iOS, `uuid` matches the dSYM bundle UUID.",
          "href": "/en/api-reference/rum/sourcemaps/sourcemap-read-list",
          "metadata": {
            "sidebarTitle": "List sourcemaps"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/SourcemapListResponse"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "total": 3,
                    "items": [
                      {
                        "key": "browser/my-web-app/1.0.0/main.js.map",
                        "type": "browser",
                        "service": "my-web-app",
                        "version": "1.0.0",
                        "size": 204800,
                        "git_repository_url": "https://github.com/example/my-web-app",
                        "git_commit_sha": "abc1234def5678",
                        "created_at": 1712700000,
                        "updated_at": 1712700000,
                        "metadata": {}
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourcemapListRequest"
              },
              "example": {
                "start_time": 1712000000000,
                "end_time": 1712700000000,
                "type": "browser",
                "services": [
                  "my-web-app"
                ],
                "p": 1,
                "limit": 20
              }
            }
          }
        }
      }
    },
    "/rum/session-replay/metadata": {
      "post": {
        "operationId": "rum-session-replay-read-metadata",
        "summary": "Get session replay metadata",
        "description": "Return the application, device, session bounds, and views recorded for a replayable session.",
        "tags": [
          "RUM/Session replay"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- Returns `InvalidParameter` if the session does not exist, or if it has no replay data recorded (`session_has_replay` is false).\n- Returns `InvalidParameter` if no views are found within the session's time window.\n- Pass `ts` to disambiguate when a `session_id` has been reused across different time windows.",
          "href": "/en/api-reference/rum/session-replay/rum-session-replay-read-metadata",
          "metadata": {
            "sidebarTitle": "Get session replay metadata"
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumSessionReplayMetaItem"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "data": {
                    "application": {
                      "id": "WoyQQ3BohkdtPivubEvE8o"
                    },
                    "device": {
                      "type": "desktop"
                    },
                    "session": {
                      "is_active": false,
                      "server_time_delta": 0,
                      "source": "browser",
                      "start": 1752480000000,
                      "end": 1752480600000
                    },
                    "views": [
                      {
                        "source": "browser",
                        "view_id": "6f2b6b1a-8f7e-4e3a-9c2b-1a2b3c4d5e6f",
                        "name": "/dashboard",
                        "url": "https://app.example.com/dashboard",
                        "loading_type": "initial_load",
                        "container_source": "",
                        "container_view_id": "",
                        "server_time_delta": 0,
                        "start": 1752480000000,
                        "end": 1752480600000,
                        "is_active": false
                      }
                    ],
                    "foreground_periods": []
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumSessionReplayMetaRequest"
              },
              "example": {
                "session_id": "0a4a2e64-8a4f-4b9a-9c1e-3a2f9e6d7c81"
              }
            }
          }
        }
      }
    },
    "/rum/session-replay/segments": {
      "post": {
        "operationId": "rum-session-replay-read-segments",
        "summary": "List session replay segments",
        "description": "Page through the recorded replay segments of a session, as presigned URLs or a raw stream.",
        "tags": [
          "RUM/Session replay"
        ],
        "x-mint": {
          "content": "## Restrictions\n\n| Aspect | Value |\n| ------ | ----- |\n| Rate limits | **1,000 requests/minute**; **50 requests/second** per account |\n| Permissions | None — any valid `app_key` can call this operation |\n\n## Usage\n\n- When `url_mode` is `false` (default), the response streams `application/x-ndjson` — one decompressed replay segment JSON object per line — and is **not** wrapped in the standard envelope. The pagination cursor for the next call is returned in the `X-Search-After-Ctx` response header instead of a body field.\n- When `url_mode` is `true`, the response is a normal JSON envelope containing presigned download URLs (valid 1 hour) instead of the raw segment bytes.\n- Pass `ts` to seek to the most recent full-snapshot segment at or before that time, instead of paging from the start of the session.\n- `limit` accepts 1-99; values of 100 or more are rejected.",
          "href": "/en/api-reference/rum/session-replay/rum-session-replay-read-segments",
          "metadata": {
            "sidebarTitle": "List session replay segments"
          }
        },
        "responses": {
          "200": {
            "description": "Success. Shape depends on `url_mode` — see Usage.",
            "headers": {
              "X-Search-After-Ctx": {
                "description": "Base64-encoded pagination cursor for the next call. Only set in streaming mode (`url_mode: false`).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/SuccessEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/RumSessionReplaySegmentsResult"
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R5",
                  "data": {
                    "items": [
                      "https://rum-replay.flashcat.cloud/short-term/2451002751131/0a4a2e64-8a4f-4b9a-9c1e-3a2f9e6d7c81/segments/1752480001234?X-Amz-Signature=example",
                      "https://rum-replay.flashcat.cloud/short-term/2451002751131/0a4a2e64-8a4f-4b9a-9c1e-3a2f9e6d7c81/segments/1752480032456?X-Amz-Signature=example"
                    ],
                    "search_after_ctx": "c2hvcnQtdGVybS8yNDUxMDAyNzUxMTMxLzBhNGEyZTY0LThhNGYtNGI5YS05YzFlLTNhMmY5ZTZkN2M4MS9zZWdtZW50cy8xNzUyNDgwMDMyNDU2"
                  }
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string",
                  "description": "Newline-delimited JSON (NDJSON). Each line is one decompressed replay segment record (rrweb-format events), streamed directly and not wrapped in the standard envelope."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RumSessionReplaySegmentsRequest"
              },
              "example": {
                "session_id": "0a4a2e64-8a4f-4b9a-9c1e-3a2f9e6d7c81",
                "limit": 20,
                "url_mode": true
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "AppKeyAuth": {
        "type": "apiKey",
        "in": "query",
        "name": "app_key",
        "description": "App key issued from the Flashduty console under Account → APP Keys. Required on every public API call. Keep it secret — it grants the same access as the owning account."
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Invalid request — usually a missing or malformed parameter.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "examples": {
              "missingParameter": {
                "value": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "error": {
                    "code": "InvalidParameter",
                    "message": "The specified parameter is not valid."
                  }
                }
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Missing or invalid app_key.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "examples": {
              "missingAppKey": {
                "value": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "error": {
                    "code": "Unauthorized",
                    "message": "You are unauthorized."
                  }
                }
              }
            }
          }
        }
      },
      "Forbidden": {
        "description": "The app_key is valid but lacks permission for this operation.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "examples": {
              "noEditPermission": {
                "value": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "error": {
                    "code": "AccessDenied",
                    "message": "Access Denied."
                  }
                }
              }
            }
          }
        }
      },
      "NotFound": {
        "description": "The referenced resource does not exist or has been deleted. Note: Flashduty historically returns HTTP 400 with code `ResourceNotFound` for missing domain entities; a true 404 is reserved for unknown routes.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "examples": {
              "resourceMissing": {
                "value": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "error": {
                    "code": "ResourceNotFound",
                    "message": "The resource you request is not found"
                  }
                }
              }
            }
          }
        }
      },
      "TooManyRequests": {
        "description": "Rate limit hit. Either the global API limit, a per-account limit, or a per-integration limit.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "examples": {
              "rateLimited": {
                "value": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "error": {
                    "code": "RequestTooFrequently",
                    "message": "Request too frequently."
                  }
                }
              }
            }
          }
        }
      },
      "ServerError": {
        "description": "Unexpected server-side error. Include the request_id when reporting.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "examples": {
              "internal": {
                "value": {
                  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
                  "error": {
                    "code": "InternalError",
                    "message": "We encountered an internal error, and it has been reported. Please try again later."
                  }
                }
              }
            }
          }
        }
      }
    },
    "schemas": {
      "DutyError": {
        "type": "object",
        "description": "Error payload inside the response envelope. Present only on non-2xx responses.",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ErrorCode"
          },
          "message": {
            "type": "string",
            "description": "Human-readable error message, localized by the caller's Accept-Language. May contain field names, IDs, or other context from the failing request.",
            "example": "The specified parameter template_id is not valid."
          }
        },
        "required": [
          "code",
          "message"
        ]
      },
      "EmptyObject": {
        "type": "object",
        "description": "An empty object. Returned as the `data` payload by operations whose success signal is simply the absence of an error.",
        "additionalProperties": false
      },
      "EmptyRequest": {
        "type": "object",
        "description": "No parameters required.",
        "additionalProperties": false
      },
      "EmptyResponse": {
        "type": "object",
        "description": "Empty response body. The server returns `data: null` on success.",
        "properties": {}
      },
      "ErrorCode": {
        "type": "string",
        "description": "Flashduty error code enum. Every failed API response sets `error.code` to one of these stable wire strings. HTTP status is informational — the authoritative signal is the enum value.\n\n| Code | HTTP | Meaning |\n|---|---|---|\n| `OK` | 200 | Reserved — not returned on real errors. |\n| `InvalidParameter` | 400 | A required parameter is missing or failed validation. |\n| `BadRequest` | 400 | Generic 400 used when no more specific code fits. |\n| `InvalidContentType` | 400 | The `Content-Type` header is not `application/json`. |\n| `ResourceNotFound` | 400 | The referenced resource does not exist. Note: returned as HTTP 400, not 404 (historical choice). |\n| `NoLicense` | 400 | The feature is license-gated and no active license was found. |\n| `ReferenceExist` | 400 | Deletion blocked — other entities still reference this resource. |\n| `Unauthorized` | 401 | `app_key` is missing, invalid, or expired. |\n| `BalanceNotEnough` | 402 | Billing-gated operation with insufficient account balance. |\n| `AccessDenied` | 403 | Authenticated but lacking the permission required for this operation. |\n| `RouteNotFound` | 404 | The request URL path is not a known route. |\n| `MethodNotAllowed` | 405 | The HTTP method is not allowed on this otherwise-known path. |\n| `UndonedOrderExist` | 409 | An outstanding billing order blocks this new one. Wait and retry. |\n| `RequestLocked` | 423 | Operation temporarily locked due to repeated failures. |\n| `EntityTooLarge` | 413 | Request body exceeds the configured max size. |\n| `RequestTooFrequently` | 429 | Rate limit hit — API-global, per-account, or per-integration. |\n| `RequestVerifyRequired` | 428 | Second-factor verification required but not supplied. |\n| `DangerousOperation` | 428 | High-risk operation requires MFA verification. |\n| `InternalError` | 500 | Unhandled server-side error. Include `request_id` in the bug report. |\n| `ServiceUnavailable` | 503 | A backend dependency is unavailable. Try again later. |",
        "enum": [
          "OK",
          "InvalidParameter",
          "BadRequest",
          "InvalidContentType",
          "ResourceNotFound",
          "NoLicense",
          "ReferenceExist",
          "Unauthorized",
          "BalanceNotEnough",
          "AccessDenied",
          "RouteNotFound",
          "MethodNotAllowed",
          "UndonedOrderExist",
          "RequestLocked",
          "EntityTooLarge",
          "RequestTooFrequently",
          "RequestVerifyRequired",
          "DangerousOperation",
          "InternalError",
          "ServiceUnavailable"
        ],
        "x-enumDescriptions": {
          "OK": "Reserved — not returned on real errors.",
          "InvalidParameter": "A required parameter is missing or failed validation.",
          "BadRequest": "Generic 400 used when no more specific code fits.",
          "InvalidContentType": "The `Content-Type` header is not `application/json`.",
          "ResourceNotFound": "The referenced resource does not exist. Note: returned as HTTP 400, not 404 (historical choice).",
          "NoLicense": "The feature is license-gated and no active license was found.",
          "ReferenceExist": "Deletion blocked — other entities still reference this resource.",
          "Unauthorized": "`app_key` is missing, invalid, or expired.",
          "BalanceNotEnough": "Billing-gated operation with insufficient account balance.",
          "AccessDenied": "Authenticated but lacking the permission required for this operation.",
          "RouteNotFound": "The request URL path is not a known route.",
          "MethodNotAllowed": "The HTTP method is not allowed on this otherwise-known path.",
          "UndonedOrderExist": "An outstanding billing order blocks this new one. Wait and retry.",
          "RequestLocked": "Operation temporarily locked due to repeated failures.",
          "EntityTooLarge": "Request body exceeds the configured max size.",
          "RequestTooFrequently": "Rate limit hit — API-global, per-account, or per-integration.",
          "RequestVerifyRequired": "Second-factor verification required but not supplied.",
          "DangerousOperation": "High-risk operation requires MFA verification.",
          "InternalError": "Unhandled server-side error. Include `request_id` in the bug report.",
          "ServiceUnavailable": "A backend dependency is unavailable. Try again later."
        },
        "example": "InvalidParameter"
      },
      "ErrorResponse": {
        "type": "object",
        "description": "Response envelope for errors. `error` is required; `data` is absent.",
        "properties": {
          "request_id": {
            "type": "string",
            "example": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4"
          },
          "error": {
            "$ref": "#/components/schemas/DutyError"
          }
        },
        "required": [
          "request_id",
          "error"
        ]
      },
      "FacetCountItem": {
        "type": "object",
        "description": "A facet value and its occurrence count.",
        "required": [
          "facet_value",
          "count"
        ],
        "properties": {
          "facet_value": {
            "description": "The facet value. Type matches the field's `value_type`."
          },
          "count": {
            "type": "integer",
            "format": "int64",
            "description": "Number of events with this facet value in the time range.",
            "example": 1523
          }
        }
      },
      "RumApplicationAlerting": {
        "type": "object",
        "description": "Alert settings for the application.",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Whether alerting is enabled."
          },
          "channel_ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Channel IDs to send alerts to."
          },
          "integration_id": {
            "type": "integer",
            "format": "int64",
            "description": "Associated on-call integration ID (read-only, auto-assigned)."
          }
        }
      },
      "RumApplicationCreateRequest": {
        "type": "object",
        "required": [
          "application_name",
          "type",
          "team_id"
        ],
        "description": "Parameters for creating a RUM application.",
        "properties": {
          "application_name": {
            "type": "string",
            "description": "Application name. 1–40 characters."
          },
          "type": {
            "type": "string",
            "enum": [
              "browser",
              "ios",
              "android",
              "react-native",
              "flutter",
              "kotlin-multiplatform",
              "roku",
              "unity"
            ],
            "description": "Application type."
          },
          "team_id": {
            "type": "integer",
            "format": "int64",
            "description": "Owning team ID."
          },
          "is_private": {
            "type": "boolean",
            "description": "Restrict access to team members only."
          },
          "no_ip": {
            "type": "boolean",
            "description": "Do not collect IP addresses."
          },
          "no_geo": {
            "type": "boolean",
            "description": "Do not infer geographic location."
          },
          "alerting": {
            "$ref": "#/components/schemas/RumApplicationAlerting"
          },
          "tracing": {
            "$ref": "#/components/schemas/RumApplicationTracing"
          },
          "links": {
            "$ref": "#/components/schemas/RumApplicationLinks"
          }
        }
      },
      "RumApplicationCreateResponse": {
        "type": "object",
        "description": "Result of creating a RUM application.",
        "properties": {
          "application_id": {
            "type": "string",
            "description": "Auto-generated unique application ID."
          },
          "application_name": {
            "type": "string",
            "description": "Application display name."
          },
          "client_token": {
            "type": "string",
            "description": "Token for RUM SDK initialization."
          }
        }
      },
      "RumApplicationIDRequest": {
        "type": "object",
        "required": [
          "application_id"
        ],
        "description": "Request with a single application ID.",
        "properties": {
          "application_id": {
            "type": "string",
            "description": "RUM application ID."
          }
        }
      },
      "RumApplicationInfosRequest": {
        "type": "object",
        "required": [
          "application_ids"
        ],
        "description": "Batch application info request.",
        "properties": {
          "application_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Up to 200 application IDs."
          }
        }
      },
      "RumApplicationInfosResponse": {
        "type": "object",
        "description": "Batch application info response.",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RumApplicationItem"
            }
          }
        }
      },
      "RumApplicationItem": {
        "type": "object",
        "description": "A RUM application.",
        "properties": {
          "account_id": {
            "type": "integer",
            "format": "int64",
            "description": "Account ID."
          },
          "application_id": {
            "type": "string",
            "description": "Unique application ID."
          },
          "application_name": {
            "type": "string",
            "description": "Application display name."
          },
          "type": {
            "type": "string",
            "enum": [
              "browser",
              "ios",
              "android",
              "react-native",
              "flutter",
              "kotlin-multiplatform",
              "roku",
              "unity"
            ],
            "description": "Application type."
          },
          "client_token": {
            "type": "string",
            "description": "Token used to initialize the RUM SDK."
          },
          "team_id": {
            "type": "integer",
            "format": "int64",
            "description": "Owning team ID."
          },
          "is_private": {
            "type": "boolean",
            "description": "If `true`, the application is only accessible to team members."
          },
          "no_ip": {
            "type": "boolean",
            "description": "If `true`, IP addresses are not collected."
          },
          "no_geo": {
            "type": "boolean",
            "description": "If `true`, geographic location is not inferred from IP."
          },
          "alerting": {
            "$ref": "#/components/schemas/RumApplicationAlerting"
          },
          "tracing": {
            "$ref": "#/components/schemas/RumApplicationTracing"
          },
          "links": {
            "$ref": "#/components/schemas/RumApplicationLinks"
          },
          "status": {
            "type": "string",
            "enum": [
              "enabled",
              "disabled",
              "deleted"
            ],
            "description": "Application status."
          },
          "created_by": {
            "type": "integer",
            "format": "int64",
            "description": "Creator member ID."
          },
          "updated_by": {
            "type": "integer",
            "format": "int64",
            "description": "Last updater member ID."
          },
          "created_at": {
            "type": "integer",
            "format": "int64",
            "description": "Creation timestamp, Unix epoch seconds."
          },
          "updated_at": {
            "type": "integer",
            "format": "int64",
            "description": "Last update timestamp, Unix epoch seconds."
          }
        }
      },
      "RumApplicationLink": {
        "type": "object",
        "description": "External system link rendered on matching RUM event detail pages.",
        "required": [
          "name",
          "url",
          "event_types"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable client-side identifier for this external system."
          },
          "name": {
            "type": "string",
            "description": "Display name of the external system."
          },
          "icon_text": {
            "type": "string",
            "description": "Short text shown in the link icon."
          },
          "icon_color": {
            "type": "string",
            "description": "Display color for the link icon."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "HTTP or HTTPS URL template. `${var}` tokens are resolved from the RUM event context."
          },
          "event_types": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "enum": [
                "crash",
                "error",
                "view",
                "action",
                "resource",
                "session",
                "all"
              ]
            },
            "description": "RUM event types where this external system link is shown."
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether this external system link is enabled."
          }
        }
      },
      "RumApplicationLinks": {
        "type": "object",
        "description": "External link integration settings for the application.",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Whether external link integration is enabled."
          },
          "systems": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/RumApplicationLink"
            },
            "description": "External systems whose URL templates can be opened from matching RUM events."
          }
        }
      },
      "RumApplicationListRequest": {
        "type": "object",
        "description": "Filters for listing RUM applications.",
        "properties": {
          "p": {
            "type": "integer",
            "description": "Page number (1-based). Default: 1."
          },
          "limit": {
            "type": "integer",
            "description": "Page size. Range: 1–100. Default: 20."
          },
          "orderby": {
            "type": "string",
            "enum": [
              "created_at",
              "updated_at"
            ],
            "description": "Sort field."
          },
          "asc": {
            "type": "boolean",
            "description": "Sort ascending if `true`."
          },
          "query": {
            "type": "string",
            "description": "Search query to filter by application name."
          },
          "team_id": {
            "type": "integer",
            "format": "int64",
            "description": "Filter by team ID."
          },
          "is_my_team": {
            "type": "boolean",
            "description": "If `true`, return only applications belonging to the current user's teams."
          }
        }
      },
      "RumApplicationListResponse": {
        "type": "object",
        "description": "Paginated list of RUM applications.",
        "properties": {
          "has_next_page": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RumApplicationItem"
            }
          }
        }
      },
      "RumApplicationTracing": {
        "type": "object",
        "description": "APM tracing integration settings.",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Whether tracing integration is enabled."
          },
          "open_type": {
            "type": "string",
            "enum": [
              "popup",
              "tab"
            ],
            "description": "How to open the trace link."
          },
          "endpoint": {
            "type": "string",
            "description": "Trace endpoint URL (http or https)."
          }
        }
      },
      "RumApplicationUpdateRequest": {
        "type": "object",
        "required": [
          "application_id"
        ],
        "description": "Parameters for updating a RUM application. All fields except `application_id` are optional.",
        "properties": {
          "application_id": {
            "type": "string",
            "description": "Application ID to update."
          },
          "application_name": {
            "type": "string",
            "description": "New application name."
          },
          "type": {
            "type": "string",
            "enum": [
              "browser",
              "ios",
              "android",
              "react-native",
              "flutter",
              "kotlin-multiplatform",
              "roku",
              "unity"
            ]
          },
          "team_id": {
            "type": "integer",
            "format": "int64"
          },
          "is_private": {
            "type": "boolean"
          },
          "no_ip": {
            "type": "boolean"
          },
          "no_geo": {
            "type": "boolean"
          },
          "alerting": {
            "$ref": "#/components/schemas/RumApplicationAlerting"
          },
          "tracing": {
            "$ref": "#/components/schemas/RumApplicationTracing"
          },
          "links": {
            "$ref": "#/components/schemas/RumApplicationLinks"
          }
        }
      },
      "RumDataAggregateFunction": {
        "type": "object",
        "description": "Aggregate function metadata used by the sampling engine.",
        "required": [
          "type",
          "column_name",
          "column_index"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Aggregate function type."
          },
          "column_name": {
            "type": "string",
            "description": "Column name used by the aggregate."
          },
          "column_index": {
            "type": "integer",
            "description": "Column index used by the aggregate."
          }
        }
      },
      "RumDataFieldMeta": {
        "type": "object",
        "description": "Metadata for one returned column.",
        "required": [
          "name",
          "type",
          "nullable"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Column name."
          },
          "type": {
            "type": "string",
            "description": "Backend database type name for this column."
          },
          "nullable": {
            "type": "boolean",
            "description": "Whether values in this column may be null."
          }
        }
      },
      "RumDataQueryDefinition": {
        "type": "object",
        "description": "One RUM data query definition.",
        "required": [
          "id",
          "sql",
          "format"
        ],
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 64,
            "description": "Client-supplied query ID. The same value is used as the key in the response object."
          },
          "sql": {
            "type": "string",
            "description": "RUM SQL query to execute."
          },
          "dql": {
            "type": "string",
            "description": "Optional RUM DQL filter expression used together with SQL validation."
          },
          "format": {
            "type": "string",
            "enum": [
              "time_series",
              "table"
            ],
            "description": "Output format. `table` returns rows; `time_series` returns bucketed time-series rows."
          },
          "interval": {
            "type": "integer",
            "format": "int64",
            "exclusiveMinimum": 0,
            "default": 3600,
            "description": "Time bucket interval in seconds for `time_series` queries."
          },
          "max_points": {
            "type": "integer",
            "format": "int64",
            "exclusiveMinimum": 0,
            "default": 1226,
            "description": "Maximum number of points for `time_series` queries."
          },
          "time_zone": {
            "type": "string",
            "description": "IANA time zone name used when evaluating time functions, such as `Asia/Shanghai`."
          },
          "search_after_ctx": {
            "type": "string",
            "description": "Opaque cursor returned by a previous table query for continuing pagination."
          },
          "disable_sampling": {
            "type": "boolean",
            "description": "When true, asks the query engine to avoid sampling when possible."
          }
        }
      },
      "RumDataQueryOutput": {
        "type": "object",
        "description": "Result for one query. Failed subqueries populate `error`; successful ones populate `data`.",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/DutyError"
          },
          "data": {
            "$ref": "#/components/schemas/RumDataQueryResult"
          }
        }
      },
      "RumDataQueryRequest": {
        "type": "object",
        "description": "Batch of RUM data queries over a bounded time range.",
        "required": [
          "start_time",
          "end_time",
          "queries"
        ],
        "properties": {
          "start_time": {
            "type": "integer",
            "format": "int64",
            "description": "Start of the query window, Unix epoch milliseconds.",
            "example": 1712620800000
          },
          "end_time": {
            "type": "integer",
            "format": "int64",
            "description": "End of the query window, Unix epoch milliseconds. Maximum 31-day span.",
            "example": 1712707200000
          },
          "queries": {
            "type": "array",
            "description": "Queries to execute concurrently. 1 to 10 queries are allowed.",
            "minItems": 1,
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/RumDataQueryDefinition"
            }
          }
        }
      },
      "RumDataQueryResponse": {
        "type": "object",
        "description": "Map from request query ID to that query's result or error.",
        "additionalProperties": {
          "$ref": "#/components/schemas/RumDataQueryOutput"
        }
      },
      "RumDataQueryResult": {
        "type": "object",
        "description": "Rows and metadata returned by one RUM data query.",
        "required": [
          "fields",
          "values"
        ],
        "properties": {
          "search_after_ctx": {
            "type": "string",
            "description": "Opaque cursor for continuing paginated table queries."
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RumDataFieldMeta"
            },
            "description": "Column metadata for the values matrix."
          },
          "values": {
            "type": "array",
            "description": "Rows returned by the query. Each row aligns with `fields` by index.",
            "items": {
              "type": "array",
              "items": {}
            }
          },
          "interval": {
            "type": "integer",
            "format": "int64",
            "description": "Effective time bucket interval in seconds for time-series queries."
          },
          "sampling": {
            "$ref": "#/components/schemas/RumDataSamplingDecision"
          }
        }
      },
      "RumDataSamplingDecision": {
        "type": "object",
        "description": "Sampling metadata when the query engine uses sampled data.",
        "required": [
          "enabled",
          "scale_factor"
        ],
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Whether sampling was applied."
          },
          "scale_factor": {
            "type": "number",
            "description": "Multiplier used to scale sampled counts back to estimated full counts."
          },
          "selected_tablets": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Storage tablets selected for the sampled query."
          },
          "aggregate_funcs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RumDataAggregateFunction"
            },
            "description": "Aggregate functions affected by sampling."
          }
        }
      },
      "RumFacetCountRequest": {
        "type": "object",
        "description": "Parameters for counting facet value distribution.",
        "required": [
          "scope",
          "facet_key",
          "start_time",
          "end_time"
        ],
        "properties": {
          "scope": {
            "type": "string",
            "description": "RUM data scope to query.",
            "enum": [
              "session",
              "view",
              "action",
              "error",
              "resource",
              "long_task",
              "vital",
              "issue",
              "sourcemap"
            ]
          },
          "facet_key": {
            "type": "string",
            "description": "The field key to count value distribution for."
          },
          "facet_value": {
            "description": "When set, filter events where `facet_key` equals this value before counting. Accepts string, number, or boolean."
          },
          "start_time": {
            "type": "integer",
            "format": "int64",
            "description": "Start of the time range, Unix epoch milliseconds.",
            "example": 1712620800000
          },
          "end_time": {
            "type": "integer",
            "format": "int64",
            "description": "End of the time range, Unix epoch milliseconds. Maximum 31-day span.",
            "example": 1712707200000
          },
          "dql": {
            "type": "string",
            "description": "RUM DQL filter expression applied before counting."
          },
          "sql": {
            "type": "string",
            "description": "SQL WHERE clause (no SELECT) for additional filtering."
          },
          "limit": {
            "type": "integer",
            "description": "Maximum number of top values to return. Default 100, maximum 100.",
            "maximum": 100,
            "default": 100
          }
        }
      },
      "RumFacetCountResponse": {
        "type": "object",
        "description": "Top N facet values sorted by count descending.",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FacetCountItem"
            }
          }
        }
      },
      "RumFacetListRequest": {
        "type": "object",
        "description": "Filter parameters for listing RUM field definitions.",
        "properties": {
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by RUM data scopes. Valid values: `session`, `view`, `action`, `error`, `resource`, `long_task`, `vital`, `issue`, `sourcemap`."
          },
          "is_facet": {
            "type": "boolean",
            "description": "When true, return only facet-enabled fields. When false or omitted, return all fields."
          }
        }
      },
      "RumFacetListResponse": {
        "type": "object",
        "description": "List of RUM field definitions.",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RumFieldItem"
            }
          }
        }
      },
      "RumFieldItem": {
        "type": "object",
        "description": "A RUM field definition.",
        "required": [
          "account_id",
          "field_key",
          "field_name",
          "group",
          "description",
          "value_type",
          "show_type",
          "unit_family",
          "unit_name",
          "edit_able",
          "is_facet",
          "enum_values",
          "scopes",
          "status",
          "queryable"
        ],
        "properties": {
          "account_id": {
            "type": "integer",
            "format": "int64",
            "description": "Account ID. 0 for built-in fields."
          },
          "field_key": {
            "type": "string",
            "description": "Unique field key, e.g. `error.type`."
          },
          "field_name": {
            "type": "string",
            "description": "Human-readable field name."
          },
          "group": {
            "type": "string",
            "description": "Display group for this field."
          },
          "description": {
            "type": "string",
            "description": "Description of what this field captures."
          },
          "value_type": {
            "type": "string",
            "description": "Data type of the field value.",
            "enum": [
              "string",
              "number",
              "boolean",
              "array<string>",
              "array<number>",
              "array<boolean>"
            ]
          },
          "show_type": {
            "type": "string",
            "description": "Display type in the analytics UI.",
            "enum": [
              "list",
              "range"
            ]
          },
          "unit_family": {
            "type": "string",
            "description": "Measurement unit family, e.g. `time`, `bytes`. Empty for dimensionless fields."
          },
          "unit_name": {
            "type": "string",
            "description": "Specific measurement unit, e.g. `millisecond`, `byte`."
          },
          "edit_able": {
            "type": "boolean",
            "description": "True if this is a custom field that can be edited by the user."
          },
          "is_facet": {
            "type": "boolean",
            "description": "True if value distribution counting is supported for this field."
          },
          "enum_values": {
            "type": "array",
            "description": "Predefined enumerable values for this field. Element type matches the field's `value_type`: string for `string`, number for `number`, boolean for `boolean`. Empty when the field has no fixed set of values.",
            "items": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            }
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "RUM scopes this field appears in."
          },
          "status": {
            "type": "string",
            "description": "Field status, e.g. `active`."
          },
          "queryable": {
            "type": "boolean",
            "description": "True if this field can be used in DQL/SQL queries."
          }
        }
      },
      "RumFieldListRequest": {
        "type": "object",
        "description": "Filter parameters for listing RUM field definitions.",
        "properties": {
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by RUM data scopes. Valid values: `session`, `view`, `action`, `error`, `resource`, `long_task`, `vital`, `issue`, `sourcemap`."
          },
          "is_facet": {
            "type": "boolean",
            "description": "When true, return only facet-enabled fields. When false or omitted, return all fields."
          }
        }
      },
      "RumFieldListResponse": {
        "type": "object",
        "description": "List of RUM field definitions.",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RumFieldItem"
            }
          }
        }
      },
      "RumIssueIDRequest": {
        "type": "object",
        "required": [
          "issue_id"
        ],
        "properties": {
          "issue_id": {
            "type": "string",
            "description": "Issue ID."
          }
        }
      },
      "RumIssueItem": {
        "type": "object",
        "description": "A RUM error tracking issue.",
        "properties": {
          "team_id": {
            "type": "integer",
            "format": "int64"
          },
          "issue_id": {
            "type": "string",
            "description": "Unique issue ID."
          },
          "application_id": {
            "type": "string"
          },
          "application_name": {
            "type": "string"
          },
          "service": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "for_review",
              "reviewed",
              "ignored",
              "resolved"
            ]
          },
          "error_count": {
            "type": "integer",
            "format": "int64",
            "description": "Total error occurrences."
          },
          "session_count": {
            "type": "integer",
            "format": "int64",
            "description": "Affected user sessions."
          },
          "is_crash": {
            "type": "boolean",
            "description": "Whether the error caused an app crash."
          },
          "age": {
            "type": "integer",
            "format": "int64"
          },
          "resolved_at": {
            "type": "integer",
            "format": "int64"
          },
          "resolved_by": {
            "type": "integer",
            "format": "int64"
          },
          "created_at": {
            "type": "integer",
            "format": "int64"
          },
          "updated_at": {
            "type": "integer",
            "format": "int64"
          },
          "first_seen": {
            "type": "object",
            "properties": {
              "timestamp": {
                "type": "integer",
                "format": "int64"
              },
              "version": {
                "type": "string"
              }
            }
          },
          "last_seen": {
            "type": "object",
            "properties": {
              "timestamp": {
                "type": "integer",
                "format": "int64"
              },
              "version": {
                "type": "string"
              }
            }
          },
          "error": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "type": {
                "type": "string"
              }
            }
          },
          "suspected_cause": {
            "type": "object",
            "properties": {
              "source": {
                "type": "string",
                "enum": [
                  "auto",
                  "user"
                ]
              },
              "value": {
                "type": "string",
                "enum": [
                  "api.failed_request",
                  "network.error",
                  "code.exception",
                  "code.invalid_object_access",
                  "code.invalid_argument",
                  "unknown"
                ]
              },
              "reason": {
                "type": "string"
              },
              "person_id": {
                "type": "integer",
                "format": "int64"
              }
            }
          },
          "regression": {
            "type": "object",
            "description": "Regression metadata. Present only when a previously resolved issue re-occurred.",
            "properties": {
              "regressed_at": {
                "type": "integer",
                "format": "int64",
                "description": "Timestamp when the regression was detected."
              },
              "regressed_at_version": {
                "type": "string",
                "description": "Application version in which the regression was observed."
              },
              "resolved_at": {
                "type": "integer",
                "format": "int64",
                "description": "Timestamp of the previous resolution before the regression."
              }
            }
          },
          "versions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "severity": {
            "type": "string",
            "description": "Issue severity level."
          }
        }
      },
      "RumIssueListRequest": {
        "type": "object",
        "required": [
          "start_time",
          "end_time"
        ],
        "description": "Filters for listing issues.",
        "properties": {
          "start_time": {
            "type": "integer",
            "format": "int64",
            "description": "Start of time range, millisecond timestamp."
          },
          "end_time": {
            "type": "integer",
            "format": "int64",
            "description": "End of time range, millisecond timestamp. Maximum range: 183 days."
          },
          "application_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by application IDs."
          },
          "dql": {
            "type": "string",
            "description": "DQL query for advanced filtering. Cannot be used with `sql`."
          },
          "sql": {
            "type": "string",
            "description": "SQL-style query for advanced filtering. Cannot be used with `dql`."
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "for_review",
                "reviewed",
                "ignored",
                "resolved"
              ]
            },
            "description": "Filter by statuses."
          },
          "suspected_causes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by suspected causes."
          },
          "team_ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Filter by team IDs."
          },
          "p": {
            "type": "integer",
            "description": "Page number. Default: 1."
          },
          "limit": {
            "type": "integer",
            "description": "Page size. Range: 1–100. Default: 20."
          },
          "orderby": {
            "type": "string",
            "enum": [
              "created_at",
              "updated_at",
              "session_count",
              "error_count"
            ]
          },
          "asc": {
            "type": "boolean"
          },
          "error_required": {
            "type": "boolean",
            "description": "If `true`, only return issues with at least one associated error event."
          },
          "by_intersection": {
            "type": "boolean"
          }
        }
      },
      "RumIssueListResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RumIssueItem"
            }
          },
          "has_next_page": {
            "type": "boolean"
          },
          "total": {
            "type": "integer"
          }
        }
      },
      "RumIssueUpdateRequest": {
        "type": "object",
        "required": [
          "issue_id"
        ],
        "description": "Parameters for updating an issue.",
        "properties": {
          "issue_id": {
            "type": "string",
            "description": "Issue ID to update."
          },
          "status": {
            "type": "string",
            "enum": [
              "for_review",
              "reviewed",
              "ignored",
              "resolved"
            ],
            "description": "New status."
          },
          "suspected_cause": {
            "type": "string",
            "enum": [
              "api.failed_request",
              "network.error",
              "code.exception",
              "code.invalid_object_access",
              "code.invalid_argument",
              "unknown"
            ],
            "description": "Suspected cause."
          }
        }
      },
      "RumWebhookTestRequest": {
        "type": "object",
        "description": "Parameters for sending a sample RUM alert webhook.",
        "required": [
          "application_id",
          "webhook_url"
        ],
        "properties": {
          "application_id": {
            "type": "string",
            "description": "RUM application ID."
          },
          "webhook_url": {
            "type": "string",
            "format": "uri",
            "description": "Webhook URL to receive the sample alert event."
          }
        }
      },
      "RumWebhookTestResponse": {
        "type": "object",
        "description": "Result of the webhook test delivery.",
        "required": [
          "ok",
          "status_code",
          "message"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "description": "Whether the webhook endpoint accepted the sample event."
          },
          "status_code": {
            "type": "integer",
            "description": "HTTP status code returned by the webhook endpoint. 0 when the request did not receive a response."
          },
          "message": {
            "type": "string",
            "description": "`ok` on success, otherwise the delivery error message."
          }
        }
      },
      "SourcemapBinaryImage": {
        "type": "object",
        "description": "Loaded binary image from a crash report.",
        "required": [
          "uuid",
          "name",
          "is_system"
        ],
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Build UUID identifying the binary or dSYM."
          },
          "name": {
            "type": "string",
            "description": "Binary image name."
          },
          "is_system": {
            "type": "boolean",
            "description": "Whether this binary belongs to the operating system."
          },
          "load_address": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer",
                "format": "int64"
              }
            ],
            "description": "Runtime address. Accepts a hex string such as `0x100000000` or a decimal integer."
          },
          "max_address": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer",
                "format": "int64"
              }
            ],
            "description": "Runtime address. Accepts a hex string such as `0x100000000` or a decimal integer."
          },
          "arch": {
            "type": "string",
            "description": "CPU architecture for this binary image."
          }
        }
      },
      "SourcemapCodeSnippet": {
        "type": "object",
        "description": "One source-code line returned around an enriched frame.",
        "required": [
          "line",
          "code"
        ],
        "properties": {
          "line": {
            "type": "integer",
            "description": "Source line number."
          },
          "code": {
            "type": "string",
            "description": "Source code on that line."
          }
        }
      },
      "SourcemapEnrichedFrame": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SourcemapStackFrame"
          },
          {
            "type": "object",
            "required": [
              "converted"
            ],
            "properties": {
              "converted": {
                "type": "boolean",
                "description": "Whether the frame was successfully symbolicated or deobfuscated."
              },
              "code_snippets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SourcemapCodeSnippet"
                },
                "description": "Source-code snippets around this frame."
              },
              "original_frame": {
                "$ref": "#/components/schemas/SourcemapStackFrame"
              },
              "third_party": {
                "type": "boolean",
                "description": "Whether the frame is from third-party or system libraries."
              }
            }
          }
        ]
      },
      "SourcemapItem": {
        "type": "object",
        "description": "A single uploaded sourcemap record.",
        "properties": {
          "key": {
            "type": "string",
            "description": "Storage key uniquely identifying this sourcemap file."
          },
          "type": {
            "type": "string",
            "description": "Platform type: `browser`, `android`, or `ios`.",
            "enum": [
              "browser",
              "android",
              "ios"
            ]
          },
          "service": {
            "type": "string",
            "description": "Application or service name."
          },
          "version": {
            "type": "string",
            "description": "Application version string."
          },
          "size": {
            "type": "integer",
            "format": "int64",
            "description": "File size in bytes."
          },
          "git_repository_url": {
            "type": "string",
            "description": "Git repository URL associated with this build."
          },
          "git_commit_sha": {
            "type": "string",
            "description": "Git commit SHA for this build."
          },
          "created_at": {
            "type": "integer",
            "format": "int64",
            "description": "Upload timestamp, Unix epoch seconds."
          },
          "updated_at": {
            "type": "integer",
            "format": "int64",
            "description": "Last update timestamp, Unix epoch seconds."
          },
          "metadata": {
            "type": "object",
            "description": "Free-form key-value metadata attached to the sourcemap. Shape depends on the upload client; common keys include `git_repository_url` and `git_commit_sha` (though those are also promoted to top-level fields).",
            "additionalProperties": true
          }
        }
      },
      "SourcemapListRequest": {
        "type": "object",
        "description": "Paginated filter for sourcemap listings.",
        "required": [
          "start_time",
          "end_time"
        ],
        "properties": {
          "start_time": {
            "type": "integer",
            "format": "int64",
            "description": "Start of upload time range, Unix epoch milliseconds. Must be > 0 and before `end_time`."
          },
          "end_time": {
            "type": "integer",
            "format": "int64",
            "description": "End of upload time range, Unix epoch milliseconds. Maximum window: 365 days."
          },
          "type": {
            "type": "string",
            "description": "Platform type. Defaults to `browser` when omitted.",
            "enum": [
              "browser",
              "android",
              "ios"
            ]
          },
          "services": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by service names. Up to 100 values."
          },
          "versions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Filter by version strings. Up to 100 values."
          },
          "query": {
            "type": "string",
            "description": "Substring match on the minified URL (browser) or build ID (android). Max 200 characters."
          },
          "build_id": {
            "type": "string",
            "description": "Android only. Filter by Gradle plugin build identifier. Max 200 characters."
          },
          "uuid": {
            "type": "string",
            "description": "iOS only. Filter by dSYM bundle UUID. Max 200 characters."
          },
          "p": {
            "type": "integer",
            "description": "Page number, starting at 1.",
            "minimum": 1,
            "default": 1,
            "example": 1
          },
          "limit": {
            "type": "integer",
            "description": "Page size. Maximum 100. Default 20.",
            "maximum": 100,
            "default": 20,
            "example": 20
          },
          "orderby": {
            "type": "string",
            "description": "Sort field.",
            "enum": [
              "created_at",
              "updated_at"
            ]
          },
          "asc": {
            "type": "boolean",
            "description": "Sort ascending. Default false (descending).",
            "default": false
          }
        }
      },
      "SourcemapListResponse": {
        "type": "object",
        "description": "Paginated list of sourcemap records.",
        "required": [
          "total",
          "items"
        ],
        "properties": {
          "total": {
            "type": "integer",
            "format": "int64",
            "description": "Total number of matching records.",
            "example": 3
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SourcemapItem"
            }
          }
        }
      },
      "SourcemapStackEnrichRequest": {
        "type": "object",
        "description": "Stack trace enrichment request.",
        "required": [
          "service",
          "version"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "browser",
              "android",
              "ios",
              "miniprogram",
              "harmony"
            ],
            "description": "Source platform. Defaults to `browser` when omitted."
          },
          "service": {
            "type": "string",
            "description": "Application or service name used when the sourcemap was uploaded."
          },
          "version": {
            "type": "string",
            "description": "Application version used when the sourcemap was uploaded."
          },
          "stack": {
            "type": "string",
            "description": "Raw stack trace to parse and enrich."
          },
          "near": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Number of nearby meaningful source lines to return around converted frames."
          },
          "no_cache": {
            "type": "boolean",
            "description": "Skip cached enrich results. Intended for debugging."
          },
          "build_id": {
            "type": "string",
            "description": "Android build ID for Gradle plugin 1.13.0 and later."
          },
          "variant": {
            "type": "string",
            "description": "Android build variant used by older Gradle plugin versions."
          },
          "arch": {
            "type": "string",
            "description": "Android NDK architecture such as `arm`, `arm64`, `x86`, or `x64`."
          },
          "source_type": {
            "type": "string",
            "description": "Android error source type. Use `ndk` with `arch` for native symbolication."
          },
          "binary_images": {
            "type": "array",
            "description": "Loaded binary images from an iOS crash report.",
            "items": {
              "$ref": "#/components/schemas/SourcemapBinaryImage"
            }
          }
        }
      },
      "SourcemapStackEnrichResponse": {
        "type": "object",
        "description": "Enriched stack frames.",
        "required": [
          "frames"
        ],
        "properties": {
          "frames": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SourcemapEnrichedFrame"
            }
          }
        }
      },
      "SourcemapStackFrame": {
        "type": "object",
        "description": "Parsed stack frame fields shared across platforms.",
        "properties": {
          "function": {
            "type": "string",
            "description": "Function or method name."
          },
          "file": {
            "type": "string",
            "description": "Source file, URL, or module path."
          },
          "line": {
            "type": "integer",
            "description": "Line number."
          },
          "column": {
            "type": "integer",
            "description": "Column number for JavaScript or Flutter frames."
          },
          "class_name": {
            "type": "string",
            "description": "Android Java/Kotlin class name."
          },
          "method_name": {
            "type": "string",
            "description": "Android Java/Kotlin method name without class prefix."
          },
          "module": {
            "type": "string",
            "description": "iOS Swift/Objective-C module name."
          },
          "address": {
            "type": "string",
            "description": "iOS or native memory address."
          },
          "offset": {
            "type": "integer",
            "description": "Symbol offset from function start."
          },
          "native_address": {
            "type": "string",
            "description": "Unity IL native address."
          }
        }
      },
      "SuccessEnvelope": {
        "type": "object",
        "description": "Success response envelope. On every 2xx response, `request_id` identifies the call (also mirrored in the `Flashcat-Request-Id` header) and `data` holds the endpoint-specific payload. Failure responses use a different shape — see `ErrorResponse`.",
        "properties": {
          "request_id": {
            "type": "string",
            "description": "Unique ID for this request. Mirrored in the Flashcat-Request-Id response header. Include it when reporting issues.",
            "example": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4"
          },
          "data": {
            "description": "Endpoint-specific payload. See each operation's 200 response schema."
          }
        },
        "required": [
          "request_id",
          "data"
        ]
      },
      "RumSessionReplayMetaRequest": {
        "type": "object",
        "required": [
          "session_id"
        ],
        "description": "Look up replay metadata for a single RUM session.",
        "properties": {
          "session_id": {
            "type": "string",
            "description": "RUM session ID."
          },
          "ts": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp in milliseconds of the session start time. Optional; disambiguates when a session ID has been reused across different time windows."
          }
        }
      },
      "RumReplayApplication": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "RUM application ID the session belongs to."
          }
        }
      },
      "RumReplayDevice": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Device type recorded for the session, e.g. `desktop`, `mobile`, `tablet`."
          }
        }
      },
      "RumReplaySession": {
        "type": "object",
        "properties": {
          "is_active": {
            "type": "boolean",
            "description": "Whether the session was still active as of the last recorded event."
          },
          "server_time_delta": {
            "type": "integer",
            "format": "int64",
            "description": "Clock skew in milliseconds between the client and Flashduty's servers, added to client timestamps for correction."
          },
          "source": {
            "type": "string",
            "enum": [
              "browser",
              "android",
              "ios",
              "miniprogram",
              "react-native",
              "flutter",
              "kotlin-multiplatform",
              "roku",
              "unity"
            ],
            "description": "SDK platform that recorded the session."
          },
          "start": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp in milliseconds when the session started."
          },
          "end": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp in milliseconds when the session ended (or was last updated, if still active)."
          }
        }
      },
      "RumReplayView": {
        "type": "object",
        "properties": {
          "source": {
            "type": "string",
            "enum": [
              "browser",
              "android",
              "ios",
              "miniprogram",
              "react-native",
              "flutter",
              "kotlin-multiplatform",
              "roku",
              "unity"
            ],
            "description": "SDK platform that recorded the view."
          },
          "view_id": {
            "type": "string",
            "description": "Unique ID of the view within the session."
          },
          "name": {
            "type": "string",
            "description": "View name, typically the route or screen name."
          },
          "url": {
            "type": "string",
            "description": "URL (web) or screen identifier (mobile) associated with the view."
          },
          "loading_type": {
            "type": "string",
            "description": "How the view was entered, e.g. `initial_load`, `route_change`."
          },
          "container_source": {
            "type": "string",
            "description": "SDK platform of the container app, when this view is embedded (e.g. a WebView inside a native app)."
          },
          "container_view_id": {
            "type": "string",
            "description": "View ID of the containing view, when this view is embedded."
          },
          "server_time_delta": {
            "type": "integer",
            "format": "int64",
            "description": "Clock skew in milliseconds between the client and Flashduty's servers, added to client timestamps for correction."
          },
          "end": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp in milliseconds when the view ended."
          },
          "start": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp in milliseconds when the view started."
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether the view was still active as of the last recorded event."
          }
        }
      },
      "RumReplayForegroundPeriod": {
        "type": "object",
        "description": "A time span during which the app was in the foreground (mobile sessions).",
        "properties": {
          "start": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp in milliseconds when the foreground period started."
          },
          "end": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp in milliseconds when the foreground period ended."
          },
          "view_id": {
            "type": "string",
            "description": "View ID active during this foreground period."
          }
        }
      },
      "RumSessionReplayMetaItem": {
        "type": "object",
        "description": "Replay metadata for a session: the application, device, session bounds, and every recorded view.",
        "properties": {
          "application": {
            "$ref": "#/components/schemas/RumReplayApplication"
          },
          "device": {
            "$ref": "#/components/schemas/RumReplayDevice"
          },
          "session": {
            "$ref": "#/components/schemas/RumReplaySession"
          },
          "views": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RumReplayView"
            },
            "description": "Every view recorded during the session, in chronological order."
          },
          "foreground_periods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RumReplayForegroundPeriod"
            },
            "description": "Foreground periods across the session (mobile sessions only; empty for web)."
          }
        }
      },
      "RumSessionReplaySegmentsRequest": {
        "type": "object",
        "required": [
          "session_id"
        ],
        "description": "Page through the recorded replay segments of a session, or a single view within it.",
        "properties": {
          "session_id": {
            "type": "string",
            "description": "RUM session ID."
          },
          "view_id": {
            "type": "string",
            "description": "Restrict results to segments belonging to this view. Omit to page through the entire session."
          },
          "search_after_ctx": {
            "type": "string",
            "description": "Pagination cursor from a previous call. Take it from the `search_after_ctx` field (URL mode) or the `X-Search-After-Ctx` response header (streaming mode)."
          },
          "ts": {
            "type": "integer",
            "format": "int64",
            "description": "Unix timestamp in milliseconds. When set (and `search_after_ctx` is empty), seeks to the most recent full-snapshot segment at or before this time instead of starting from the beginning."
          },
          "url_mode": {
            "type": "boolean",
            "description": "When `true`, return presigned download URLs as a JSON envelope instead of streaming segment bytes. Defaults to `false`."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 99,
            "default": 20,
            "description": "Maximum number of segments to return. 1-99, default 20."
          }
        }
      },
      "RumSessionReplaySegmentsResult": {
        "type": "object",
        "description": "Presigned segment URLs, returned only when `url_mode` is `true`.",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Presigned, time-limited URLs (valid 1 hour) for downloading each segment's raw compressed bytes."
          },
          "search_after_ctx": {
            "type": "string",
            "description": "Pagination cursor to pass as `search_after_ctx` on the next call. Empty when this page was the last one."
          }
        }
      }
    }
  }
}