{"swagger": "2.0", "info": {"title": "Sust Global Climate Explorer API", "description": "\nThis API provides programmatic access to physical risk exposure data.\nFor more guidance on using this API, please visit the Sust Global Dev Center: https://developers.sustglobal.com.\n", "schemes": ["https"], "url": "https://explorer.sustglobal.io/api/", "version": "1.0"}, "host": "explorer.sustglobal.io", "schemes": ["https"], "basePath": "/api", "consumes": ["application/json"], "produces": ["application/json"], "securityDefinitions": {"api_key": {"type": "apiKey", "name": "api_key", "in": "query"}, "X-SustGlobal-APIKey": {"type": "apiKey", "name": "X-SustGlobal-APIKey", "in": "header"}}, "security": [{"X-SustGlobal-APIKey": []}, {"api_key": []}], "paths": {"/portfolios/": {"get": {"operationId": "portfolios_list", "summary": "List Portfolios", "description": "Retrieve a list of portfolios.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"description": "", "schema": {"type": "array", "items": {"$ref": "#/definitions/PortfolioResponse"}}}}, "tags": ["Portfolios"]}, "post": {"operationId": "portfolios_create", "summary": "Create Portfolio", "description": "Create an empty portfolio.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/PortfolioCreateRequest"}}, {"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "201": {"description": "", "schema": {"$ref": "#/definitions/PortfolioResponse"}}}, "tags": ["Portfolios"]}, "parameters": []}, "/portfolios/{portfolio_name}/": {"get": {"operationId": "portfolios_read", "summary": "Get Portfolio", "description": "Retrieve a single portfolio.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"description": "", "schema": {"$ref": "#/definitions/PortfolioResponse"}}}, "tags": ["Portfolios"]}, "delete": {"operationId": "portfolios_delete", "summary": "Delete Portfolio", "description": "Deletes a portfolio and all associated Risk Exposure Data.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"description": "", "schema": {"$ref": "#/definitions/MessageResponse"}}}, "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/portfolios/{portfolio_name}/assets": {"get": {"operationId": "portfolios_assets_list", "summary": "List Portfolio Assets", "description": "Retrieve a set of assets belonging to a specific portfolio.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}, {"name": "rows", "in": "query", "description": "Maximum number of items to return per page (min=1, max=250)", "required": false, "type": "integer", "example": 250}, {"name": "page", "in": "query", "description": "Numerical index of current page, beginning at 1", "required": false, "type": "integer", "example": 1}, {"name": "portfolio_name", "in": "path", "description": "Name for portfolio", "required": true, "type": "string"}, {"name": "entity_id", "in": "query", "description": "Limit results to those pertaining to assets with the provided entity_id.", "required": false, "type": "string", "example": "XYZ"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"description": "", "schema": {"type": "array", "items": {"$ref": "#/definitions/AssetResponse"}}}}, "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/portfolios/{portfolio_name}/assets/export": {"get": {"operationId": "portfolios_assets_export_list", "summary": "Export Portfolio Assets", "description": "Trigger an export operation of portfolio assets.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}, {"name": "portfolio_name", "in": "path", "description": "Name for portfolio", "required": true, "type": "string"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"schema": {"type": "file", "produces": "text/csv"}, "headers": {"Content-Type": {"type": "string", "description": "Media type describing the attached file", "default": "text/csv"}, "Content-Disposition": {"type": "string", "description": "Indicates the response contains an 'attachment' with a human-friendly name"}}}}, "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/portfolios/{portfolio_name}/assets/import/": {"post": {"operationId": "portfolios_assets_import_create", "summary": "Import Portfolio Assets", "description": "Trigger an import operation of assets into existing portfolio. Format of the required CSV file is documented at https://developers.sustglobal.com/user-guide", "parameters": [{"name": "asset", "in": "formData", "description": "CSV file containing portfolio assets", "required": true, "type": "file"}, {"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}, {"name": "portfolio_name", "in": "path", "description": "Name for portfolio", "required": true, "type": "string"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "202": {"description": "", "schema": {"$ref": "#/definitions/MessageResponse"}}}, "consumes": ["multipart/form-data"], "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/portfolios/{portfolio_name}/datasets/physical": {"get": {"operationId": "portfolios_datasets_physical_list", "summary": "Get Physical Risk Exposure Metadata", "description": "Retrieve metadata from the physical risk exposure dataset generated for a portfolio.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}, {"name": "portfolio_name", "in": "path", "description": "Name for portfolio", "required": true, "type": "string"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"description": "", "schema": {"$ref": "#/definitions/PhysicalRiskMetadataResponse"}}}, "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/portfolios/{portfolio_name}/datasets/physical/export": {"get": {"operationId": "portfolios_datasets_physical_export_list", "summary": "Export Physical Risk Exposure Dataset", "description": "Trigger an export operation of physical risk exposure data.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}, {"name": "portfolio_name", "in": "path", "description": "Name for portfolio", "required": true, "type": "string"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"schema": {"type": "file"}, "headers": {"Content-Type": {"type": "string", "description": "Media type describing the attached file", "default": "application/x-zip-compressed"}, "Content-Disposition": {"type": "string", "description": "Indicates the response contains an 'attachment' with a human-friendly name"}}}}, "consumes": ["multipart/form-data"], "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/portfolios/{portfolio_name}/datasets/physical/export/json": {"get": {"operationId": "portfolios_datasets_physical_export_json_list", "summary": "Export Physical Risk Exposure JSON", "description": "Trigger an export operation of physical risk exposure data in JSON format.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}, {"name": "portfolio_name", "in": "path", "description": "Name for portfolio", "required": true, "type": "string"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"schema": {"type": "file"}, "headers": {"Content-Type": {"type": "string", "description": "Media type describing the attached file", "default": "application/x-zip-compressed"}, "Content-Disposition": {"type": "string", "description": "Indicates the response contains an 'attachment' with a human-friendly name"}}}}, "consumes": ["multipart/form-data"], "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/portfolios/{portfolio_name}/datasets/physical/items": {"get": {"operationId": "portfolios_datasets_physical_items_list", "summary": "Get Physical Risk Exposure Data", "description": "Retrieve items from the physical risk exposure dataset generated for a portfolio.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}, {"name": "hazard", "in": "query", "description": "Climate hazard filter", "required": false, "type": "string", "example": "wildfire"}, {"name": "indicator", "in": "query", "description": "Risk indicator filter", "required": false, "type": "string", "example": "unfied_prob"}, {"name": "measure", "in": "query", "description": "Indicator measure filter", "required": false, "type": "string", "enum": ["mid", "lb", "ub"], "example": "mid"}, {"name": "start_date", "in": "query", "description": "Left boundary of time range filter in format YYYY-MM-DD", "required": false, "type": "string", "example": "2005-06-01"}, {"name": "end_date", "in": "query", "description": "Right boundary of time range filter in format YYYY-MM-DD", "required": false, "type": "string", "example": "2025-12-31"}, {"name": "rows", "in": "query", "description": "Maximum number of items to return per page (min=1, max=250)", "required": false, "type": "integer", "example": 250}, {"name": "page", "in": "query", "description": "Numerical index of current page, beginning at 1", "required": false, "type": "integer", "example": 1}, {"name": "scenario", "in": "query", "description": "Shared socioeconomic pathway filter", "required": false, "type": "string", "enum": ["ssp126", "ssp245", "ssp585"], "example": "ssp585"}, {"name": "portfolio_name", "in": "path", "description": "Name for portfolio", "required": true, "type": "string"}, {"name": "entity_id", "in": "query", "description": "Limit results to those pertaining to assets with the provided entity_id.", "required": false, "type": "string", "example": "XYZ"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"description": "", "schema": {"type": "array", "items": {"$ref": "#/definitions/PhysicalRiskDatasetItemResponse"}}}}, "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/portfolios/{portfolio_name}/datasets/physical/items/export": {"get": {"operationId": "portfolios_datasets_physical_items_export_list", "summary": "Get Physical Risk Exposure Data as a file", "description": "Retrieve items from the physical risk exposure dataset generated for a portfolio, as a file", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}, {"name": "hazard", "in": "query", "description": "Climate hazard filter", "required": false, "type": "string", "example": "wildfire"}, {"name": "indicator", "in": "query", "description": "Risk indicator filter", "required": false, "type": "string", "example": "unfied_prob"}, {"name": "measure", "in": "query", "description": "Indicator measure filter", "required": false, "type": "string", "enum": ["mid", "lb", "ub"], "example": "mid"}, {"name": "start_date", "in": "query", "description": "Left boundary of time range filter in format YYYY-MM-DD", "required": false, "type": "string", "example": "2005-06-01"}, {"name": "end_date", "in": "query", "description": "Right boundary of time range filter in format YYYY-MM-DD", "required": false, "type": "string", "example": "2025-12-31"}, {"name": "rows", "in": "query", "description": "Maximum number of items to return per page (min=1, max=250)", "required": false, "type": "integer", "example": 250}, {"name": "page", "in": "query", "description": "Numerical index of current page, beginning at 1", "required": false, "type": "integer", "example": 1}, {"name": "scenario", "in": "query", "description": "Shared socioeconomic pathway filter", "required": false, "type": "string", "enum": ["ssp126", "ssp245", "ssp585"], "example": "ssp585"}, {"name": "portfolio_name", "in": "path", "description": "Name for portfolio", "required": true, "type": "string"}, {"name": "entity_id", "in": "query", "description": "Limit results to those pertaining to assets with the provided entity_id.", "required": false, "type": "string", "example": "XYZ"}, {"name": "file_format", "in": "query", "description": "Format of the file to download", "required": false, "type": "string", "example": "json or csv"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"schema": {"type": "file"}, "headers": {"Content-Type": {"type": "string", "description": "Media type describing the attached file", "default": "application/x-zip-compressed"}, "Content-Disposition": {"type": "string", "description": "Indicates the response contains an 'attachment' with a human-friendly name"}}}}, "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/portfolios/{portfolio_name}/datasets/physical/summary": {"get": {"operationId": "portfolios_datasets_physical_summary_list", "summary": "Get Physical Risk Exposure Summary", "description": "Retrieve a summary of the physical risk exposure dataset generated for a portfolio.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}, {"name": "rows", "in": "query", "description": "Maximum number of items to return per page (min=1, max=250)", "required": false, "type": "integer", "example": 250}, {"name": "page", "in": "query", "description": "Numerical index of current page, beginning at 1", "required": false, "type": "integer", "example": 1}, {"name": "scenario", "in": "query", "description": "Shared socioeconomic pathway filter", "required": false, "type": "string", "enum": ["ssp126", "ssp245", "ssp585"], "example": "ssp585"}, {"name": "portfolio_name", "in": "path", "description": "Name for portfolio", "required": true, "type": "string"}, {"name": "window", "in": "query", "description": "Number of years forward used to determine the Physical Risk Summary. Valid windows are currently 5, 15, and 30", "required": false, "type": "integer", "example": 30}, {"name": "hazard", "in": "query", "description": "Climate hazard filter", "required": false, "type": "string", "example": "wildfire"}, {"name": "entity_id", "in": "query", "description": "Limit results to those pertaining to assets with the provided entity_id.", "required": false, "type": "string", "example": "XYZ"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"description": "", "schema": {"type": "array", "items": {"$ref": "#/definitions/PhysicalRiskDatasetSummaryResponse"}}}}, "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/portfolios/{portfolio_name}/datasets/physical/summary/export": {"get": {"operationId": "portfolios_datasets_physical_summary_export_list", "summary": "Get Physical Risk Exposure Summary as a file", "description": "Retrieve a summary of the physical risk exposure dataset, generated for a portfolio, as a file.", "parameters": [{"name": "project", "in": "query", "description": "Name of project. Param only required when user may access more than one.", "required": false, "type": "string"}, {"name": "rows", "in": "query", "description": "Maximum number of items to return per page (min=1, max=250)", "required": false, "type": "integer", "example": 250}, {"name": "page", "in": "query", "description": "Numerical index of current page, beginning at 1", "required": false, "type": "integer", "example": 1}, {"name": "scenario", "in": "query", "description": "Shared socioeconomic pathway filter", "required": false, "type": "string", "enum": ["ssp126", "ssp245", "ssp585"], "example": "ssp585"}, {"name": "portfolio_name", "in": "path", "description": "Name for portfolio", "required": true, "type": "string"}, {"name": "window", "in": "query", "description": "Number of years forward used to determine the Physical Risk Summary. Valid windows are currently 5, 15, and 30", "required": false, "type": "integer", "example": 30}, {"name": "hazard", "in": "query", "description": "Climate hazard filter", "required": false, "type": "string", "example": "wildfire"}, {"name": "entity_id", "in": "query", "description": "Limit results to those pertaining to assets with the provided entity_id.", "required": false, "type": "string", "example": "XYZ"}, {"name": "file_format", "in": "query", "description": "Format of the file to download", "required": false, "type": "string", "example": "json or csv"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"schema": {"type": "file"}, "headers": {"Content-Type": {"type": "string", "description": "Media type describing the attached file", "default": "application/x-zip-compressed"}, "Content-Disposition": {"type": "string", "description": "Indicates the response contains an 'attachment' with a human-friendly name"}}}}, "tags": ["Portfolios"]}, "parameters": [{"name": "portfolio_name", "in": "path", "required": true, "type": "string"}]}, "/search": {"get": {"operationId": "search_list", "summary": "Search API Physical Risk Exposure", "description": "Retrieve physical risk summary scores using the instantaneous Search API", "parameters": [{"name": "X-SustGlobal-Project", "in": "header", "description": "Name of project", "required": true, "type": "string"}, {"name": "lat", "in": "query", "description": "Latitude of the location", "required": true, "type": "number", "example": "47.09764797110564"}, {"name": "lng", "in": "query", "description": "Longitude of the location", "required": true, "type": "number", "example": "-122.8242285597761"}], "responses": {"400": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "401": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "403": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "404": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "405": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "409": {"description": "", "schema": {"$ref": "#/definitions/ErrorsResponse"}}, "200": {"description": "", "schema": {"$ref": "#/definitions/SearchResponse"}}}, "tags": ["Portfolios"]}, "parameters": []}}, "definitions": {"ErrorsResponse": {"required": ["errors"], "type": "object", "properties": {"errors": {"description": "Human readable error message(s)", "type": "array", "items": {"type": "string", "minLength": 1}}}}, "PortfolioResponse": {"required": ["portfolio_id", "portfolio_name", "created_at", "updated_at", "status"], "type": "object", "properties": {"portfolio_id": {"title": "Portfolio id", "description": "Unique ID of the portfolio", "type": "string", "minLength": 1}, "portfolio_name": {"title": "Portfolio name", "description": "Unique name of the portfolio", "type": "string", "minLength": 1}, "created_at": {"title": "Created at", "description": "Date and time of portfolio creation (UTC)", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated at", "description": "Date and time portfolio was updated (UTC)", "type": "string", "format": "date-time"}, "status": {"title": "Status", "description": "Current status of the portfolio (regarding physical risk exposure dataset generation)", "type": "string", "minLength": 1}}}, "PortfolioCreateRequest": {"required": ["portfolio_name"], "type": "object", "properties": {"portfolio_name": {"title": "Portfolio name", "description": "Unique name of the portfolio", "type": "string", "format": "slug", "pattern": "^[-a-zA-Z0-9_]+$", "maxLength": 30, "minLength": 3}}}, "MessageResponse": {"required": ["message"], "type": "object", "properties": {"message": {"title": "Message", "description": "Human readable message", "type": "string", "minLength": 1}}}, "AssetResponse": {"required": ["portfolio_name", "portfolio_index", "entity_id", "entity_name", "labels"], "type": "object", "properties": {"portfolio_name": {"title": "Portfolio name", "description": "Name of the corresponding portfolio", "type": "string", "minLength": 1}, "portfolio_index": {"title": "Portfolio index", "description": "Portfolio-scoped index of the asset", "type": "integer"}, "entity_id": {"title": "Entity id", "description": "ID of the asset", "type": "string"}, "entity_name": {"title": "Entity name", "description": "Name of the asset", "type": "string"}, "lat": {"title": "Lat", "description": "Latitude of the asset", "type": "number"}, "lng": {"title": "Lng", "description": "Longitude of the asset", "type": "number"}, "geometry": {"title": "Geometry", "description": "Geometry of a Polygon", "type": "object"}, "labels": {"title": "Labels", "description": "Metadata describing the asset", "type": "object", "additionalProperties": {"type": "string", "x-nullable": true}}}}, "PhysicalRiskMetadataIndicatorResponse": {"required": ["hazard", "indicator", "unit", "value_min", "value_max", "spatial_resolution"], "type": "object", "properties": {"hazard": {"title": "Hazard", "description": "Climate hazard", "type": "string", "minLength": 1}, "indicator": {"title": "Indicator", "description": "Risk indicator", "type": "string", "minLength": 1}, "unit": {"title": "Unit", "description": "Value unit (e.g. millimeter, day, degree_celsius, etc)", "type": "string", "minLength": 1}, "value_min": {"title": "Value min", "description": "Minimum possible value", "type": "number"}, "value_max": {"title": "Value max", "description": "Maximum possible value", "type": "number"}, "value_norm": {"title": "Value norm", "description": "Maximum value expected when value is normalized", "type": "number"}, "spatial_resolution": {"title": "Spatial resolution", "description": "Spatial resolution of datapoint in meters", "type": "number"}}}, "PhysicalRiskMetadataResponse": {"required": ["portfolio_name", "created_at", "updated_at", "version", "indicators"], "type": "object", "properties": {"portfolio_name": {"title": "Portfolio name", "description": "Name of the corresponding portfolio", "type": "string", "format": "slug", "pattern": "^[-a-zA-Z0-9_]+$", "minLength": 1}, "created_at": {"title": "Created at", "description": "Date and Time when Risk Dataset was created and validated", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated at", "description": "Date and time portfolio was updated (UTC)", "type": "string", "format": "date-time"}, "version": {"title": "Version", "description": "Version of the Risk Dataset", "type": "string", "minLength": 1}, "indicators": {"description": "Metadata describing indicators available within the dataset", "type": "array", "items": {"$ref": "#/definitions/PhysicalRiskMetadataIndicatorResponse"}}}}, "PhysicalRiskDatasetItemResponse": {"required": ["portfolio_name", "portfolio_index", "entity_id", "entity_name", "hazard", "indicator", "risk_exposure"], "type": "object", "properties": {"portfolio_name": {"title": "Portfolio name", "description": "Name of the corresponding portfolio", "type": "string", "minLength": 1}, "portfolio_index": {"title": "Portfolio index", "description": "Portfolio-scoped index of the asset", "type": "integer"}, "entity_id": {"title": "Entity id", "description": "ID of the asset", "type": "string"}, "entity_name": {"title": "Entity name", "description": "Name of the asset", "type": "string"}, "hazard": {"title": "Hazard", "description": "Climate hazard", "type": "string", "minLength": 1}, "indicator": {"title": "Indicator", "description": "Risk indicator", "type": "string", "minLength": 1}, "measure": {"title": "Measure", "description": "Indicator measure (e.g. upper bound (ub), lower bound (lb), or mean/median (mid)", "type": "string", "enum": ["mid", "lb", "ub"]}, "scenario": {"title": "Scenario", "description": "Climate scenario", "type": "string", "minLength": 1}, "risk_exposure": {"title": "Risk exposure", "description": "Timeseries risk exposure data. Projected exposure data is bucketed by year (keys formatted YYYY). Observational data is bucketed by month (keys formatted YYYY-MM).", "type": "object", "additionalProperties": {"type": "number"}}}}, "PhysicalRiskSummaryItem": {"required": ["risk_class", "risk_score", "hazard"], "type": "object", "properties": {"risk_class": {"title": "Risk class", "description": "Risk summary class/label", "type": "string", "minLength": 1}, "risk_score": {"title": "Risk score", "description": "Risk summary score", "type": "number"}, "hazard": {"title": "Hazard", "description": "Climate hazard (risk type)", "type": "string", "minLength": 1}}}, "PhysicalRiskDatasetSummaryResponse": {"required": ["portfolio_name", "portfolio_index", "entity_id", "entity_name", "window", "window_start_year", "scenario", "risk_summaries"], "type": "object", "properties": {"portfolio_name": {"title": "Portfolio name", "description": "Name of the corresponding portfolio", "type": "string", "minLength": 1}, "portfolio_index": {"title": "Portfolio index", "description": "Portfolio-scoped index of the asset", "type": "integer"}, "entity_id": {"title": "Entity id", "description": "ID of the asset", "type": "string"}, "entity_name": {"title": "Entity name", "description": "Name of the asset", "type": "string"}, "window": {"title": "Window", "description": "Size of annual summary window", "type": "integer"}, "window_start_year": {"title": "Window start year", "description": "Left boundary of window", "type": "integer"}, "scenario": {"title": "Scenario", "description": "Climate scenario", "type": "string", "minLength": 1}, "risk_summaries": {"type": "array", "items": {"$ref": "#/definitions/PhysicalRiskSummaryItem"}}}}, "PhysicalRiskExposureItem": {"required": ["hazard", "score", "label"], "type": "object", "properties": {"hazard": {"title": "Hazard", "description": "Climate hazard (risk type)", "type": "string", "minLength": 1}, "score": {"title": "Score", "description": "Risk summary score", "type": "number"}, "label": {"title": "Label", "description": "Risk summary class/label", "type": "string", "minLength": 1}}}, "PhysicalRiskExposureExtent": {"description": "Background physical risk exposure information", "required": ["_15yr", "_30yr"], "type": "object", "properties": {"_15yr": {"description": "Physical risk exposure information in the 15-year window", "type": "array", "items": {"$ref": "#/definitions/PhysicalRiskExposureItem"}}, "_30yr": {"description": "Physical risk exposure information in the 30-year window", "type": "array", "items": {"$ref": "#/definitions/PhysicalRiskExposureItem"}}}}, "SearchResponsePhysicalRiskExposureProperty": {"description": "Physical Risk Exposure information associated with the feature", "required": ["background", "local"], "type": "object", "properties": {"background": {"$ref": "#/definitions/PhysicalRiskExposureExtent"}, "local": {"$ref": "#/definitions/PhysicalRiskExposureExtent"}}}, "SearchResponseProperties": {"description": "List of the feature properties", "required": ["physical_risk_exposure"], "type": "object", "properties": {"physical_risk_exposure": {"$ref": "#/definitions/SearchResponsePhysicalRiskExposureProperty"}}}, "SearchResponseFeature": {"required": ["type", "properties", "geometry"], "type": "object", "properties": {"type": {"title": "Type", "description": "Type of the feature generated by the search API", "type": "string", "minLength": 1}, "properties": {"$ref": "#/definitions/SearchResponseProperties"}, "geometry": {"title": "Geometry", "description": "Geometry of the features", "type": "object"}}}, "SearchResponse": {"required": ["type", "features"], "type": "object", "properties": {"type": {"title": "Type", "description": "Type of the response generated by the search API", "type": "string", "minLength": 1}, "features": {"description": "List of features returned by the search API", "type": "array", "items": {"$ref": "#/definitions/SearchResponseFeature"}}}}}}