openapi: 3.1.0 info: title: Datia API version: '2026-10-15' description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-15: 10 operation(s) read from 13 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Datia has published no machine-readable contract that the pipeline could find. Engine: local.' x-evidence-tiers: code-example: 12 documentation: -2 pages-with-code: 13 pages-read: 13 x-generated-from: documentation x-provenance: generated x-authored-by: API Evangelist x-generated: '2026-10-15' x-generator: generate-contract-from-docs.py x-engine: local x-sources: - https://docs.datia.app/docs/api-reference/instruments/get-esg-data - https://docs.datia.app/docs/api-reference/portfolios/list-portfolios - https://docs.datia.app/docs/api-reference/climate/get-temperature-scores - https://docs.datia.app/docs/api-reference/instruments/get-pai-indicators - https://docs.datia.app/docs/api-reference/instruments/get-sfdr-classification - https://docs.datia.app/docs/api-reference/eu-taxonomy/get-eu-taxonomy-alignment - https://docs.datia.app/docs/api-reference/instruments/get-business-involvements - https://docs.datia.app/docs/api-reference/portfolios/delete-a-portfolio-snapshot - https://docs.datia.app/docs/api-reference/reports/generate-a-sustainability-report - https://docs.datia.app/docs/api-reference/sustainable-investments/list-methodologies - https://docs.datia.app/docs/api-reference/portfolios/create-or-replace-a-portfolio-snapshot - https://docs.datia.app/docs/api-reference/portfolios/rename-a-portfolio-or-change-its-currency - https://docs.datia.app/docs/api-reference/sustainable-investments/classify-sustainable-investments servers: - url: https://eco.datia.app paths: /instruments/{instrumentid}: post: operationId: post_instruments_instrumentid tags: - Instruments summary: POST /instruments/business-involvements x-source: https://docs.datia.app/docs/api-reference/instruments/get-business-involvements parameters: - name: instrumentid in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostInstrumentsInstrumentidRequest' responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostInstrumentsInstrumentidResponse' x-evidence: kind: code-example language: curl snippet: 'curl Python JavaScript Copy Text curl -X POST "https://eco.datia.app/instruments/business-involvements" \ -H "x-api-key: $CE_API_KEY" \ -H "Content-Type: application/json" \ -d ''{ "holdings": [ { "isin": "US0378331005" }, { "isin": "IE00B4L5Y983" } ], "minimum_threshold": 0 }'' 200 400 403 500 Copy Text { "data": [ { "sustainability_data": { "total_score": 212, "environment_score": 71, "social_scor' collapsed_from: 4 example path(s) differing only at instrumentId /portfolios: get: operationId: get_portfolios tags: - Portfolios summary: GET /portfolios x-source: https://docs.datia.app/docs/api-reference/portfolios/list-portfolios responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetPortfoliosResponse' x-evidence: kind: code-example language: curl snippet: 'curl Python JavaScript Copy Text curl -X GET "https://eco.datia.app/portfolios" \ -H "x-api-key: $CE_API_KEY" 200 400 403 500 Copy Text { "data": { "members": 4, "funds": [ { "identifier": "datia-portfolio:12345_pension-fund-a", "name": "Pension fund A", "snapshots": [ "2026-03-31", "2026-06-30" ] } ] }, "metadata": { "message": "Organization metadata successfully retrieved" } } Generate a sustain' post: operationId: post_portfolios tags: - Portfolios summary: Uploads the holdings of a portfolio for one date. x-source: https://docs.datia.app/docs/api-reference/portfolios/delete-a-portfolio-snapshot requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostPortfoliosRequest' responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PostPortfoliosResponse' x-evidence: kind: documentation /portfolios/{identifier}: delete: operationId: delete_portfolios_identifier tags: - Portfolios summary: Deletes one snapshot of a portfolio. x-source: https://docs.datia.app/docs/api-reference/portfolios/delete-a-portfolio-snapshot parameters: - name: identifier in: path required: true schema: type: string responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/DeletePortfoliosIdentifierResponse' x-evidence: kind: documentation put: operationId: put_portfolios_identifier tags: - Portfolios summary: Rename a portfolio or change its currency description: Updates the name and currency of an existing portfolio. x-source: https://docs.datia.app/docs/api-reference/portfolios/list-portfolios parameters: - name: identifier in: path required: true schema: type: string - name: x-api-key in: header required: true schema: type: string description: Your Connect Earth API key. responses: '200': description: Success (status as documented) x-evidence: kind: documentation /reports: post: operationId: post_reports tags: - Reports summary: POST /reports x-source: https://docs.datia.app/docs/api-reference/reports/generate-a-sustainability-report requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostReportsRequest' responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostReportsResponse' x-evidence: kind: code-example language: curl snippet: 'curl Python JavaScript Copy Text curl -X POST "https://eco.datia.app/reports" \ -H "x-api-key: $CE_API_KEY" \ -H "Content-Type: application/json" \ -d ''{ "name": "Pension fund A", "identifier": "pension-fund-a", "type": "esg-overview", "snapshot_at": "2026-06-30", "benchmark_etf_mutual_fund": "IE00B4L5Y983", "holdings": [ { "name": "Apple Inc.", "isin": "US0378331005", "instrument_type": "stock", ' /sustainable-investments/insights: post: operationId: post_sustainable_investments_insights tags: - Sustainable Investments summary: POST /sustainable-investments/insights x-source: https://docs.datia.app/docs/api-reference/sustainable-investments/classify-sustainable-investments requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostSustainableInvestmentsInsightsRequest' responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostSustainableInvestmentsInsightsResponse' x-evidence: kind: code-example language: curl snippet: 'curl Python JavaScript Copy Text curl -X POST "https://eco.datia.app/sustainable-investments/insights" \ -H "x-api-key: $CE_API_KEY" \ -H "Content-Type: application/json" \ -d ''{ "methodology_id": 230, "holdings": [ { "name": "Apple Inc.", "isin": "US0378331005", "instrument_type": "stock", "currency": "USD", "weight": 40, "market_value": 4000000 }, { "name": "Microsoft Corp.", "isin": "US59491810' /sustainable-investments/methodologies: get: operationId: get_sustainable_investments_methodologies tags: - Sustainable Investments summary: GET /sustainable-investments/methodologies x-source: https://docs.datia.app/docs/api-reference/sustainable-investments/list-methodologies responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetSustainableInvestmentsMethodologiesResponse' x-evidence: kind: code-example language: curl snippet: 'curl Python JavaScript Copy Text curl -X GET "https://eco.datia.app/sustainable-investments/methodologies" \ -H "x-api-key: $CE_API_KEY" 200 400 403 500 Copy Text { "data": [ { "id": 1, "name": "Connect Earth''s Sample" }, { "id": 230, "name": "Custom methodology" } ] } Get ESG data POST Returns ESG scores and environmental, social and governance metrics for each ISIN, with their units. Needs acces' /taxonomy/insights: post: operationId: post_taxonomy_insights tags: - Taxonomy summary: POST /taxonomy/insights x-source: https://docs.datia.app/docs/api-reference/eu-taxonomy/get-eu-taxonomy-alignment requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostTaxonomyInsightsRequest' responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostTaxonomyInsightsResponse' x-evidence: kind: code-example language: curl snippet: 'curl Python JavaScript Copy Text curl -X POST "https://eco.datia.app/taxonomy/insights" \ -H "x-api-key: $CE_API_KEY" \ -H "Content-Type: application/json" \ -d ''{ "holdings": [ { "name": "Apple Inc.", "isin": "US0378331005", "instrument_type": "stock", "currency": "USD", "weight": 40, "market_value": 4000000 }, { "name": "Microsoft Corp.", "isin": "US5949181045", "instrument_type": "stock", "curr' /temperature-score/insights: post: operationId: post_temperature_score_insights tags: - Temperature Score summary: POST /temperature-score/insights x-source: https://docs.datia.app/docs/api-reference/climate/get-temperature-scores requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostTemperatureScoreInsightsRequest' responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostTemperatureScoreInsightsResponse' x-evidence: kind: code-example language: curl snippet: 'curl Python JavaScript Copy Text curl -X POST "https://eco.datia.app/temperature-score/insights" \ -H "x-api-key: $CE_API_KEY" \ -H "Content-Type: application/json" \ -d ''{ "holdings": [ { "name": "Apple Inc.", "isin": "US0378331005", "instrument_type": "stock", "currency": "USD", "weight": 40, "market_value": 4000000 }, { "name": "Microsoft Corp.", "isin": "US5949181045", "instrument_type": "stoc' components: schemas: PostInstrumentsInstrumentidRequest: type: object properties: holdings: type: array items: type: object properties: isin: type: string minimum_threshold: type: integer PostInstrumentsInstrumentidResponse: type: object properties: total_score: type: integer environment_score: type: integer social_score: type: integer governance_score: type: integer business_involvements: type: object properties: thermal_coal: type: object properties: weight: type: integer count: type: integer tobacco_distributor: type: object properties: weight: type: integer count: type: integer nuclear_weapons: type: object properties: weight: type: integer count: type: integer GetPortfoliosResponse: type: object properties: data: type: object properties: members: type: integer funds: type: array items: type: object properties: identifier: type: string name: type: string snapshots: type: array items: type: string format: date metadata: type: object properties: message: type: string PostPortfoliosRequest: type: object properties: snapshot_at: type: string description: Date of the snapshot (ISO 8601). name: type: string currency: type: string holdings: type: array description: Holdings data for the portfolio. required: - snapshot_at PostPortfoliosResponse: type: object properties: identifier: type: string DeletePortfoliosIdentifierResponse: type: object properties: identifier: type: string metadata.message: type: string description: One of Fund snapshot deleted successfully, Fund deleted successfully with all snapshots, Fund deleted successfully or Fund snapshot not found. PostReportsRequest: type: object properties: name: type: string identifier: type: string type: type: string snapshot_at: type: string format: date benchmark_etf_mutual_fund: type: string holdings: type: array items: type: object properties: name: type: string isin: type: string instrument_type: type: string currency: type: string weight: type: integer market_value: type: integer PostReportsResponse: type: object properties: document: type: object properties: location_url: type: string request_id: type: string metadata: type: object properties: snapshot_at: type: string format: date type: type: string default_benchmark: type: string identifier: type: string PostSustainableInvestmentsInsightsRequest: type: object properties: methodology_id: type: integer holdings: type: array items: type: object properties: name: type: string isin: type: string instrument_type: type: string currency: type: string weight: type: integer market_value: type: integer PostSustainableInvestmentsInsightsResponse: type: object properties: data: type: array items: type: object properties: name: type: string isin: type: string weight: type: integer sustainability_profile: type: object properties: classification: type: integer description: type: string metadata: type: - string - 'null' GetSustainableInvestmentsMethodologiesResponse: type: object properties: data: type: array items: type: object properties: id: type: integer name: type: string PostTaxonomyInsightsRequest: type: object properties: holdings: type: array items: type: object properties: name: type: string isin: type: string instrument_type: type: string currency: type: string weight: type: integer market_value: type: integer PostTaxonomyInsightsResponse: type: object properties: data: type: object properties: taxonomy_alignment_%: type: number taxonomy_eligible_turnover_%: type: number taxonomy_alignment_turnover_%: type: number taxonomy_alignment_enabling_turnover_%: type: number taxonomy_alignment_transitional_turnover_%: type: number taxonomy_eligible_capex_%: type: number taxonomy_alignment_capex_%: type: number taxonomy_alignment_enabling_capex_%: type: number taxonomy_alignment_transitional_capex_%: type: number taxonomy_eligible_opex_%: type: number taxonomy_alignment_opex_%: type: number taxonomy_alignment_enabling_opex_%: type: number taxonomy_alignment_transitional_opex_%: type: integer taxonomy_alignment_enabling_%: type: number taxonomy_alignment_transitional_%: type: number taxonomy_alignment_no_gas_and_nuclear_turnover_%: type: number taxonomy_alignment_no_gas_and_nuclear_capex_%: type: number taxonomy_alignment_no_gas_and_nuclear_opex_%: type: number taxonomy_alignment_fossil_gas_turnover_%: type: number taxonomy_alignment_fossil_gas_capex_%: type: number taxonomy_alignment_fossil_gas_opex_%: type: number taxonomy_alignment_nuclear_turnover_%: type: number taxonomy_alignment_nuclear_capex_%: type: number taxonomy_alignment_nuclear_opex_%: type: number taxonomy_alignment_no_gas_and_nuclear_turnover_excluding_sovereign_bonds_%: type: number taxonomy_alignment_no_gas_and_nuclear_capex_excluding_sovereign_bonds_%: type: number taxonomy_alignment_no_gas_and_nuclear_opex_excluding_sovereign_bonds_%: type: number taxonomy_alignment_fossil_gas_turnover_excluding_sovereign_bonds_%: type: number taxonomy_alignment_fossil_gas_capex_excluding_sovereign_bonds_%: type: number taxonomy_alignment_fossil_gas_opex_excluding_sovereign_bonds_%: type: number taxonomy_alignment_nuclear_turnover_excluding_sovereign_bonds_%: type: number taxonomy_alignment_nuclear_capex_excluding_sovereign_bonds_%: type: number PostTemperatureScoreInsightsRequest: type: object properties: holdings: type: array items: type: object properties: name: type: string isin: type: string instrument_type: type: string currency: type: string weight: type: integer market_value: type: integer PostTemperatureScoreInsightsResponse: type: object properties: portfolio: type: object properties: companies: type: array items: type: object properties: isin: type: string name: type: string aum: type: integer market_value: type: integer temperature_score: type: number target: type: number base_year: type: integer industry: type: string funds: type: array items: type: object properties: public_isin: type: string name: type: string aum: type: integer market_value: type: integer temperature_score: type: number target: type: number base_year: type: integer industries: type: array items: type: object properties: id: type: string name: type: string job_metadata: type: object properties: is_lock: type: boolean securitySchemes: apiKey: type: apiKey in: header name: x-api-key security: - apiKey: [] tags: - name: Instruments - name: Portfolios - name: Reports - name: Sustainable Investments - name: Taxonomy - name: Temperature Score