Skip to main content

Extracting Data

OpenDataDSL provides multiple ways to consume data, from interactive tools for analysts to programmatic APIs for application integration.

Overview​

MethodBest for
Web PortalInteractive browsing, charting, and ad-hoc exploration
Excel Add-inPulling data directly into spreadsheets
REST API / SDKApplication integration and programmatic access
AutomationsEvent-driven delivery β€” push data downstream when it changes
ReportsStructured, formatted output for regular distribution

Web Portal​

The web portal lets you browse master data, view timeseries charts, inspect forward curves, and run reports β€” all without writing any code. It works in any browser and on mobile.

Use the portal for ad-hoc data exploration, monitoring process executions, and managing automations.

Open the Web Portal

Further reading: Web Portal guide


Excel Add-in​

The free Excel add-in connects your spreadsheets directly to the platform. You can search for objects, pull timeseries and curve data into cells, and refresh the data at any time.

The add-in supports:

  • Timeseries β€” pull historical values into a range
  • Curves β€” pull forward curve contracts for a given date
  • Objects β€” pull master data properties into cells
  • Reports β€” render a report output into a sheet

Further reading: Excel Add-in guide


REST API / SDK​

Every piece of data in the platform is accessible via the REST API. SDKs wrap the API for Python, Java, .NET, MATLAB, and JavaScript.

Example β€” reading a timeseries via ODSL​

// Read a specific timeseries property from an object
ts = ${data:"#ECB_FX.EURGBP:SPOT"}
print ts

Example β€” reading via Python SDK​

from odsl import OpenDataDSL

odsl = OpenDataDSL()
ts = odsl.get("data", "#ECB_FX.EURGBP:SPOT")
print(ts)

Example β€” reading via REST API​

GET https://api.opendatadsl.com/api/data/v1/public/%23ECB_FX.EURGBP:SPOT
Authorization: Bearer {{token}}

Filtering and projecting​

The API supports rich filtering, field projection, date-range queries, and aggregation. For example, to get only the values between two dates:

GET https://api.opendatadsl.com/api/data/v1/public/%23ECB_FX.EURGBP:SPOT
?_range=between(2024-01-01,2024-06-30)
Authorization: Bearer {{token}}

Further reading: REST API Guide Β· Python SDK Β· Java SDK


Automations​

Rather than polling for data, you can automate delivery β€” the platform pushes data to your system automatically whenever a watched item changes.

An automation has two parts: a condition that defines what to watch (which data item and which action triggers it) and a target that defines where to send the data.

Automation targets​

TargetDescription
odsl.queuePush a message to a named queue for an internal application to consume
odsl.emailSend a formatted email
odsl.email_attachmentSend data as an email attachment, optionally transformed
odsl.webhookPOST data to an external HTTP endpoint
odsl.teamsPost a notification to a Microsoft Teams channel
odsl.curveTrigger a Smart Curve build

Example β€” push to a queue when data updates​

POST https://api.opendatadsl.com/api/automation/v1
Authorization: Bearer {{token}}

{
"_type": "VarAutomation",
"target": "odsl.queue",
"enabled": true,
"properties": {
"queue": "my-downstream-queue",
"subject": "ECB_FX_UPDATE"
},
"conditions": [{
"source": "public",
"service": "data",
"id": "#ECB_FX.EURGBP:SPOT",
"action": "update"
}]
}

Example β€” send an email attachment when data updates​

POST https://api.opendatadsl.com/api/automation/v1
Authorization: Bearer {{token}}

{
"_type": "VarAutomation",
"target": "odsl.email_attachment",
"enabled": true,
"properties": {
"to": "analyst@company.com",
"subject": "ECB FX Update",
"attachmentName": "ecb_fx_${date:yyyy-MM-dd}.csv",
"attachment": true,
"@transformer": "#VarTimeSeries_CSV"
},
"conditions": [{
"source": "public",
"service": "data",
"id": "#ECB_FX.EURGBP:SPOT",
"action": "update"
}]
}
tip

To see all available automations for a specific data item, use the listAutomations special function:

GET https://api.opendatadsl.com/api/data/v1/public/%23ECB_FX.EURGBP:SPOT?_function=listAutomations

This returns all valid automation templates pre-populated with the item's condition β€” you can use them directly as the body for a POST to create an automation.

Further reading: Automation REST service Β· Automation Target service


Reports​

Reports let you define a structured, formatted data output that is generated on a schedule or on demand. A report has a configuration (script + template) and produces a stored output that can be read via the API, rendered in the portal, downloaded in Excel, or distributed by email.

Reports are well suited to:

  • Daily price summaries distributed to a team
  • End-of-day curve snapshots exported to CSV
  • KPI dashboards built from aggregated platform data

Further reading: Reporting Basics


Choosing an approach​

You want to…Use…
Browse and explore data interactivelyWeb Portal
Pull data into Excel for analysis or reportingExcel Add-in
Read data from your own applicationREST API / SDK
Push data downstream whenever it changesAutomation
Distribute a formatted data summary on a scheduleReport + automation (email target)

Next Steps​