No logo available for Auronis to DuckDB connector icon

Load Auronis data to DuckDB

Build a Auronis to DuckDB pipeline with your coding agent. One prompt scaffolds it with the dltHub AI harness, plus the Auronis API base URL, auth, endpoints, and incremental loading.

SourceAuronisAuronis API DocumentationDestinationDuckDBIn-process analytical database. The default local destination for dlt pipelines.

Auronis provides a REST API for accessing AI strategy, development, and performance analytics data platforms. Everything needed to build a working Auronis → DuckDB pipeline is on this page: the API's base URL, authentication, endpoints, pagination and incremental field — plus a prompt that hands the whole job to your coding agent.


Build your Auronis to DuckDB pipeline

Paste this prompt into Claude, Codex, or Cursor. The agent does the rest.

Prompt
Run uvx dlthub-init@latest to build a pipeline from Auronis to DuckDB and run it on dltHub

That scaffolds a dltHub workspace and installs the dltHub AI harness — the project rules, the secrets-management skill, and the dlt MCP server your agent needs to work safely. From there it reads the Auronis API, proposes the endpoints to load, then writes, runs and validates the pipeline while you review rather than type. Credentials are inspected through MCP tools, so your agent never reads secrets.toml itself. How the LLM-native workflow works →

Prefer to write it yourself? Every fact the agent uses is below.


Auronis API at a glance

Base URLhttps://api.auronis.se/v1/
Example endpointGET api/v1/tickets
Records found attickets
Authenticationall requests require a Bearer token — sent in the Authorization header, prefixed Bearer
PaginationOffset-based via none, page size via limit (default 20, max 100). Uses offset-based pagination with query parameters limit (results per page) and offset (number of results to skip). For fetching subsequent pages, increment offset by limit. Some endpoints may differ or omit total/limit/offset; webhooks returns the full list without pagination parameters.
Incremental fieldoffset
Record idid
API referencehttps://dlthub.com/workspace/source/auronis

These values come from the Auronis API reference — the authoritative source if anything here looks out of date.


How do I authenticate with the Auronis API?

Authentication is handled via OAuth 2.0. The API requires a Bearer token, which must be passed in the authorization header.

1. Get your credentials

To obtain API credentials for Auronis, navigate to the official Auronis website (https://www.auronis.se/) and log in to your account. Authentication for the REST API is handled via OAuth 2.0 using the client credentials flow. Once authenticated in the platform's developer dashboard, generate your client credentials to obtain the necessary access token for your requests.

2. Add them to .dlt/secrets.toml

[sources.auronis_source] access_token = "your_bearer_token_here"

dlt reads this file automatically at runtime. With the harness, the setup-secrets skill prompts you for the values and never handles the raw credential in chat. For production, see setting up credentials with dlt.


What Auronis data can I load into DuckDB?

These are the Auronis endpoints dlt can load into DuckDB:

ResourceEndpointMethodData selectorDescription
tickets/api/v1/ticketsGETticketsList all tickets
calls/api/v1/callsGETcallsList all call recordings and logs
usage_details/api/v1/usage/detailsGETeventsList usage and billing events
webhooks/api/v1/webhooksGETwebhooksList all webhook subscriptions
webhook_deliveries/api/v1/webhooks/{webhook_id}/deliveriesGETdeliveriesList deliveries for a specific webhook

How do I load only new Auronis records?

Auronis exposes offset on api/v1/tickets, so dlt can request only the records that changed since the last run. Set it as the cursor_path and dlt tracks the high-water mark for you between runs.

{"name": "tickets", "endpoint": { "path": "api/v1/tickets", "data_selector": "tickets", "incremental": {"cursor_path": "offset", "initial_value": "2024-01-01T00:00:00Z"}, }}

On the first run dlt loads everything from initial_value; on every run after that it requests only what changed and appends with write_disposition="merge" if you set a primary key. See incremental loading.


What does the generated Auronis pipeline look like?

A standard dlt REST API pipeline — the same code you would write by hand, loading strategy/assessment and development/solution from the Auronis API into DuckDB:

import dlt from dlt.sources.rest_api import RESTAPIConfig, rest_api_resources @dlt.source def auronis_source(access_token=dlt.secrets.value): config: RESTAPIConfig = { "client": { "base_url": "https://api.auronis.se/v1/", "auth": {"type": "bearer", "token": access_token}, }, "resources": [ {"name": "tickets", "endpoint": {"path": "api/v1/tickets", "data_selector": "tickets"}}, {"name": "calls", "endpoint": {"path": "api/v1/calls", "data_selector": "calls"}} ], } yield from rest_api_resources(config) def load_auronis_to_duckdb() -> None: pipeline = dlt.pipeline( pipeline_name="auronis_pipeline", destination="duckdb", dataset_name="auronis_data", ) load_info = pipeline.run(auronis_source()) print(load_info) if __name__ == "__main__": load_auronis_to_duckdb()

Run it with python auronis_pipeline.py. The agent iterates on this until it loads cleanly — you review and approve, rather than write it from scratch.


How do I query Auronis data in DuckDB?

dlt creates one table per resource. Query the loaded data with Python or SQL — or ask your agent to, through the MCP server's execute_sql_query tool.

Python (pandas DataFrame):

import dlt data = dlt.pipeline("auronis_pipeline").dataset() df = data.tickets.df() print(df.head())

SQL:

SELECT * FROM auronis_data.tickets LIMIT 10;

See querying your data with dataset and exploring it in marimo notebooks.


How do I deploy the Auronis to DuckDB pipeline in production?

The pipeline runs locally, which is ideal for prototyping and one-off analysis. When you need it on a schedule, monitored on every load, and shared with your team, deploy the same dlt code on the dltHub platform — no infrastructure to maintain. The prompt above already ends with "run it on dltHub", so your agent can take it there directly.

  • Deploy & schedule — run the pipeline as a managed job with automatic retries.
  • Monitor — observable job queues, alerting, and load metrics for every run.
  • Transform — promote raw Auronis loads into governed, documented models.
  • Visualize & share — explore data in notebooks and publish live dashboards instead of static screenshots.

Book a demo →


What other destinations can I load Auronis data to?

dlt loads into any of these — only the destination argument changes:

DestinationExample value
PostgreSQL"postgres"
BigQuery"bigquery"
Snowflake"snowflake"
Redshift"redshift"
Databricks"databricks"
Filesystem (S3, GCS, Azure)"filesystem"

Set dlt.pipeline(destination="snowflake") and add credentials in .dlt/secrets.toml. On the dltHub platform the same pipeline runs against a managed Iceberg lakehouse. See the full destinations list.


Next steps

Was this page helpful?

Community Hub

Need more dlt context for Auronis to DuckDB?

Request dlt skills, commands, AGENT.md files, and AI-native context.