{
  "openapi": "3.1.0",
  "info": {
    "title": "EDI Analytics API",
    "version": "1.0.0",
    "description": "Public analytics contract: security resolution, unified metric catalog, global prices, standardized fundamentals, cross-domain matrix retrieval, and asynchronous batch execution. Design notes: docs/analytics_api_v1_spec.md. Authentication: session cookie via POST /api/auth/login. All data endpoints return the canonical envelope {data, errors, meta} with row-level errors and a meta.registryVersion stamp."
  },
  "paths": {
    "/api/analytics/v1/batch-result": {
      "get": {
        "tags": [
          "analytics-api"
        ],
        "summary": "Get Batch Result",
        "operationId": "get_batch_result_api_analytics_v1_batch_result_get",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/v1/batch-status": {
      "get": {
        "tags": [
          "analytics-api"
        ],
        "summary": "Get Batch Status",
        "description": "FactSet status codes: 202 while pending/running, 201 when the result\nexists (Location points at /batch-result), 200 with status=error.",
        "operationId": "get_batch_status_api_analytics_v1_batch_status_get",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/v1/catalog/metrics": {
      "get": {
        "tags": [
          "analytics-api"
        ],
        "summary": "Get Catalog Metrics",
        "operationId": "get_catalog_metrics_api_analytics_v1_catalog_metrics_get",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Category"
            }
          },
          {
            "name": "subcategory",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Subcategory"
            }
          },
          {
            "name": "dataset",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Dataset"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Domain"
            }
          },
          {
            "name": "entityType",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Entitytype"
            }
          },
          {
            "name": "valueType",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Valuetype"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "name": "includeDeprecated",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Includedeprecated"
            }
          },
          {
            "name": "pitDataItems",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "title": "Pitdataitems"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 5000,
              "minimum": 1,
              "default": 1000,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/v1/keys": {
      "get": {
        "tags": [
          "analytics-api"
        ],
        "summary": "List Api Keys",
        "operationId": "list_api_keys_api_analytics_v1_keys_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "analytics-api"
        ],
        "summary": "Create Api Key",
        "operationId": "create_api_key_api_analytics_v1_keys_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/v1/keys/{key_id}": {
      "delete": {
        "tags": [
          "analytics-api"
        ],
        "summary": "Revoke Api Key",
        "operationId": "revoke_api_key_api_analytics_v1_keys__key_id__delete",
        "parameters": [
          {
            "name": "key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Key Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/v1/matrix": {
      "post": {
        "tags": [
          "analytics-api"
        ],
        "summary": "Post Matrix",
        "operationId": "post_matrix_api_analytics_v1_matrix_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatrixRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/v1/resolve": {
      "post": {
        "tags": [
          "analytics-api"
        ],
        "summary": "Resolve",
        "operationId": "resolve_api_analytics_v1_resolve_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/content/fundamentals/v1/fundamentals": {
      "post": {
        "tags": [
          "fundamentals-api"
        ],
        "summary": "Post Fundamentals",
        "operationId": "post_fundamentals_api_content_fundamentals_v1_fundamentals_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FundamentalsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/content/funds/v1/flows": {
      "post": {
        "tags": [
          "funds-api"
        ],
        "summary": "Post Fund Flows",
        "operationId": "post_fund_flows_api_content_funds_v1_flows_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FundsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/content/funds/v1/prices": {
      "post": {
        "tags": [
          "funds-api"
        ],
        "summary": "Post Fund Prices",
        "operationId": "post_fund_prices_api_content_funds_v1_prices_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FundsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/content/funds/v1/returns": {
      "post": {
        "tags": [
          "funds-api"
        ],
        "summary": "Post Fund Returns",
        "operationId": "post_fund_returns_api_content_funds_v1_returns_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FundsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/content/funds/v1/summary": {
      "post": {
        "tags": [
          "funds-api"
        ],
        "summary": "Post Fund Summary",
        "operationId": "post_fund_summary_api_content_funds_v1_summary_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FundsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/content/global-prices/v1/prices": {
      "post": {
        "tags": [
          "global-prices-api"
        ],
        "summary": "Post Prices",
        "operationId": "post_prices_api_content_global_prices_v1_prices_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GlobalPricesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/content/screener/v1/count": {
      "post": {
        "tags": [
          "screener-api"
        ],
        "summary": "Post Screener Count",
        "operationId": "post_screener_count_api_content_screener_v1_count_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/content/screener/v1/fields": {
      "get": {
        "tags": [
          "screener-api"
        ],
        "summary": "Get Screener Fields",
        "operationId": "get_screener_fields_api_content_screener_v1_fields_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/content/screener/v1/search": {
      "post": {
        "tags": [
          "screener-api"
        ],
        "summary": "Post Screener Search",
        "operationId": "post_screener_search_api_content_screener_v1_search_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Adjust": {
        "type": "string",
        "enum": [
          "SPLIT",
          "SPLIT_SPINOFF",
          "DIV_SPIN_SPLITS",
          "UNSPLIT"
        ],
        "title": "Adjust"
      },
      "AnalyticsResponse": {
        "properties": {
          "data": {
            "items": {},
            "type": "array",
            "title": "Data"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/RowError"
            },
            "type": "array",
            "title": "Errors",
            "default": []
          },
          "meta": {
            "$ref": "#/components/schemas/Meta",
            "default": {}
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "AnalyticsResponse"
      },
      "Basis": {
        "type": "string",
        "enum": [
          "original",
          "restated"
        ],
        "title": "Basis"
      },
      "CreateKeyRequest": {
        "properties": {
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "expiresInDays": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiresindays"
          }
        },
        "type": "object",
        "title": "CreateKeyRequest"
      },
      "ErrorCode": {
        "type": "string",
        "enum": [
          "UNRESOLVED_IDENTIFIER",
          "AMBIGUOUS_IDENTIFIER",
          "INVALID_IDENTIFIER",
          "UNSUPPORTED_MARKET",
          "UNSUPPORTED_METRIC",
          "LIMIT_EXCEEDED",
          "EXECUTION_ERROR",
          "FX_UNAVAILABLE"
        ],
        "title": "ErrorCode"
      },
      "FiscalPeriodWindow": {
        "properties": {
          "start": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start"
          },
          "end": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "End"
          }
        },
        "type": "object",
        "title": "FiscalPeriodWindow"
      },
      "Frequency": {
        "type": "string",
        "enum": [
          "D",
          "AD",
          "W",
          "M",
          "AM",
          "AQ",
          "CQ",
          "ASA",
          "CSA",
          "AY",
          "CY"
        ],
        "title": "Frequency",
        "description": "Observation frequency; A* = anchored to the request start date,\nC*/plain = last trading day of the calendar bucket."
      },
      "FundamentalsRequest": {
        "properties": {
          "ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Ids"
          },
          "metrics": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Metrics"
          },
          "periodicity": {
            "$ref": "#/components/schemas/Periodicity",
            "default": "FY"
          },
          "basis": {
            "$ref": "#/components/schemas/Basis",
            "default": "original"
          },
          "fiscalPeriod": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiscalPeriodWindow"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "LOCAL"
          },
          "batch": {
            "type": "string",
            "title": "Batch",
            "default": "N"
          }
        },
        "type": "object",
        "required": [
          "ids",
          "metrics"
        ],
        "title": "FundamentalsRequest"
      },
      "FundsRequest": {
        "properties": {
          "ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Ids"
          },
          "startDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Startdate"
          },
          "endDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Enddate"
          },
          "fields": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Fields",
            "default": [
              "nav"
            ]
          },
          "frequency": {
            "$ref": "#/components/schemas/Frequency",
            "default": "D"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "LOCAL"
          },
          "batch": {
            "type": "string",
            "title": "Batch",
            "default": "N"
          }
        },
        "type": "object",
        "required": [
          "ids"
        ],
        "title": "FundsRequest"
      },
      "GlobalPricesRequest": {
        "properties": {
          "ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Ids"
          },
          "startDate": {
            "type": "string",
            "format": "date",
            "title": "Startdate"
          },
          "endDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Enddate"
          },
          "fields": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Fields",
            "default": [
              "price",
              "priceOpen",
              "priceHigh",
              "priceLow",
              "volume"
            ]
          },
          "frequency": {
            "$ref": "#/components/schemas/Frequency",
            "default": "D"
          },
          "calendar": {
            "$ref": "#/components/schemas/TradingCalendar",
            "default": "FIVEDAY"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "LOCAL"
          },
          "adjust": {
            "$ref": "#/components/schemas/Adjust",
            "default": "SPLIT"
          },
          "batch": {
            "type": "string",
            "title": "Batch",
            "default": "N"
          }
        },
        "type": "object",
        "required": [
          "ids",
          "startDate"
        ],
        "title": "GlobalPricesRequest"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "IdentifierIn": {
        "properties": {
          "value": {
            "type": "string",
            "title": "Value"
          },
          "type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Type"
          },
          "market": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Market"
          }
        },
        "type": "object",
        "required": [
          "value"
        ],
        "title": "IdentifierIn"
      },
      "MatrixMetricSpec": {
        "properties": {
          "metric": {
            "type": "string",
            "title": "Metric"
          },
          "dataset": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dataset"
          },
          "periodMode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Periodmode"
          }
        },
        "type": "object",
        "required": [
          "metric"
        ],
        "title": "MatrixMetricSpec"
      },
      "MatrixRequest": {
        "properties": {
          "ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Ids"
          },
          "metrics": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "$ref": "#/components/schemas/MatrixMetricSpec"
                }
              ]
            },
            "type": "array",
            "title": "Metrics"
          },
          "asOf": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Asof"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "LOCAL"
          },
          "batch": {
            "type": "string",
            "title": "Batch",
            "default": "N"
          }
        },
        "type": "object",
        "required": [
          "ids",
          "metrics"
        ],
        "title": "MatrixRequest"
      },
      "Meta": {
        "properties": {
          "pagination": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "null"
              }
            ]
          },
          "registryVersion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Registryversion"
          },
          "fxRateDate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fxratedate"
          }
        },
        "type": "object",
        "title": "Meta"
      },
      "Pagination": {
        "properties": {
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "isEstimatedTotal": {
            "type": "boolean",
            "title": "Isestimatedtotal",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "total"
        ],
        "title": "Pagination"
      },
      "Periodicity": {
        "type": "string",
        "enum": [
          "FY",
          "QTR",
          "SEMI",
          "LTM",
          "YTD"
        ],
        "title": "Periodicity"
      },
      "ResolveRequest": {
        "properties": {
          "identifiers": {
            "items": {
              "$ref": "#/components/schemas/IdentifierIn"
            },
            "type": "array",
            "title": "Identifiers"
          }
        },
        "type": "object",
        "required": [
          "identifiers"
        ],
        "title": "ResolveRequest"
      },
      "RowError": {
        "properties": {
          "requestId": {
            "type": "string",
            "title": "Requestid"
          },
          "code": {
            "$ref": "#/components/schemas/ErrorCode"
          },
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          }
        },
        "type": "object",
        "required": [
          "requestId",
          "code"
        ],
        "title": "RowError"
      },
      "ScreenCondition": {
        "properties": {
          "metric": {
            "type": "string",
            "title": "Metric"
          },
          "operator": {
            "type": "string",
            "enum": [
              "gt",
              "gte",
              "lt",
              "lte",
              "eq",
              "neq"
            ],
            "title": "Operator"
          },
          "value": {
            "type": "number",
            "title": "Value"
          }
        },
        "type": "object",
        "required": [
          "metric",
          "operator",
          "value"
        ],
        "title": "ScreenCondition"
      },
      "ScreenRequest": {
        "properties": {
          "conditions": {
            "items": {
              "$ref": "#/components/schemas/ScreenCondition"
            },
            "type": "array",
            "title": "Conditions",
            "default": []
          },
          "sectors": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sectors"
          },
          "exchanges": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchanges"
          },
          "countries": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Countries"
          },
          "tickers": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tickers"
          },
          "metrics": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Metrics",
            "default": []
          },
          "sortBy": {
            "type": "string",
            "title": "Sortby",
            "default": "MARKET_CAP"
          },
          "sortDir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "title": "Sortdir",
            "default": "desc"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "USD"
          },
          "limit": {
            "type": "integer",
            "title": "Limit",
            "default": 200
          },
          "offset": {
            "type": "integer",
            "title": "Offset",
            "default": 0
          },
          "batch": {
            "type": "string",
            "title": "Batch",
            "default": "N"
          }
        },
        "type": "object",
        "title": "ScreenRequest"
      },
      "TradingCalendar": {
        "type": "string",
        "enum": [
          "FIVEDAY",
          "SEVENDAY",
          "LOCAL"
        ],
        "title": "TradingCalendar"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      }
    }
  },
  "tags": [
    {
      "name": "analytics-api",
      "description": "Cross-domain: resolve, catalog, matrix, batch"
    },
    {
      "name": "global-prices-api",
      "description": "EOD prices, frequency sampling, adjustments"
    },
    {
      "name": "fundamentals-api",
      "description": "Standardized fiscal data: FY/QTR/LTM/YTD"
    }
  ]
}
