Extracting Data
OpenDataDSL provides multiple ways to consume data, from interactive tools for analysts to programmatic APIs for application integration.
Overviewβ
| Method | Best for |
|---|---|
| Web Portal | Interactive browsing, charting, and ad-hoc exploration |
| Excel Add-in | Pulling data directly into spreadsheets |
| REST API / SDK | Application integration and programmatic access |
| Automations | Event-driven delivery β push data downstream when it changes |
| Reports | Structured, 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 PortalFurther 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β
| Target | Description |
|---|---|
odsl.queue | Push a message to a named queue for an internal application to consume |
odsl.email | Send a formatted email |
odsl.email_attachment | Send data as an email attachment, optionally transformed |
odsl.webhook | POST data to an external HTTP endpoint |
odsl.teams | Post a notification to a Microsoft Teams channel |
odsl.curve | Trigger 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"
}]
}
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 interactively | Web Portal |
| Pull data into Excel for analysis or reporting | Excel Add-in |
| Read data from your own application | REST API / SDK |
| Push data downstream whenever it changes | Automation |
| Distribute a formatted data summary on a schedule | Report + automation (email target) |
Next Stepsβ
- Loading Data β getting data into the platform
- Data Identities β mapping data items to the IDs used by downstream systems
- Automation REST service β full automation reference
- REST API Guide β complete API reference