01. Via Kondado

The Via Kondado destination allows access via Link to data replicated and modeled by Kondado

Accessing your data

The minimum and maximum years for fields of types date and timestamp are, respectively, 1677 and 2262. If a date is not within this range, it will be returned as null.


Copy-paste link


The connection to Via Kondado is made via API. You can easily obtain the API access link for any table, similar to the modal below. You can change the decimal separator between comma and dot, then click the copy icon to get the link

Copy-paste link for pipelines


To get all the links of your pipeline tables, simply access your pipeline and click the share icon

 

The link for each table will also be available by clicking DETAILS

Copy-paste link for models

Manually constructing the link


Our reading API must be accessed with a GET request to the host https://hub.kondado.io and authenticated with the token parameter (query string)

Access token


To get the access token for your destination, just access it, click the 3 horizontal bars, and then "View token"

This token allows access to your data. Keep it in a safe place

Reading data


To get the data from a table table_x, just access the path data/table_x.

If the decimal_sep parameter is not provided, the decimal separator will be the dot; use decimal_sep=comma to get your data separated by a comma, for example:

https://hub.kondado.io/data/table_x?token=your_token&decimal_sep=comma

Reading metadata


The /metadata path returns metadata of your tables in JSON format

  • /metadata/show_tables returns an ARRAY of JSONs with the list of tables in your destination in the key tbl_name
  • /metadata/kdd_show_tables returns an ARRAY of JSONs with the list of tables in your destination, including information on the location of each table within Kondado:
    • tbl_name provides the table name
    • tbl_id provides the table ID
    • origin_object_type indicates the type of object the table references, where "pipeline" means pipeline and "kubo" means model
    • origin_object_id provides the ID of this object
    • origin_object_sub_location provides the location of the table within the object for pipelines that contain more than one table; it is empty if it is the main pipeline table or a table of a model
    • origin_object_created_rev is an internal code indicating the version of the object referencing the table
    • createdAt is the table creation date
    • updatedAt is the last update date of the table
  • /metadata/kdd_show_table_sizes returns an ARRAY of JSONs with the list of tables in your destination and information about the sizes of these tables:
    • tbl_name provides the table name
    • tbl_id provides the table ID
    • num_rows indicates the number of rows in the table
    • num_cols indicates the number of columns in the table
    • num_cells indicates the number of cells in the table
    • size_bytes is the table size in bytes
    • billable_mb_size is the table size in megabytes for access counting
    • billable_requests shows how many accesses the table will consume when read
  • /metadata/schemas/table_x returns the schema of the table table_x
    • col_type informs the field name (key/header)
    • col_type represents the field type: text, float, int, timestamp, date, or boolean
       

Format of returned data

Whenever the data link (/data) is accessed, the latest version of your table in Via Kondado will be returned in CSV format, which allows compatibility with various visualization and analysis tools.

The column separator of this file will be the comma, and you can switch between comma or dot as the decimal separator with the decimal_sep parameter if you create the link manually or directly in the link acquisition modal on our platform.

To increase the compatibility and formatting of the CSV, line breaks (/n, /r, and /r/n) in text type fields will be removed in replicated tables. In model tables, this removal will only occur due to changes made by the model's SQL.

Additionally, most accents and special characters will be replaced.

How to use

Units

Each Via Kondado destination can be configured to have a certain capacity, according to the number of allocated units. A unit has 3 components:

  • Accesses
    • Each unit grants 2000 accesses/month
    • It is a measure of data access and indicates how many reads per 10mb (megabytes) per month can be performed via data and metadata links of the destination.
    • Example: A 2mb table costs 1 access to be read. A 18mb table costs 2 access when read
  • Cells:
    • Each unit grants 10 million cells stored per month
    • It is a measure of data storage. It indicates how many cells per month can be stored in the destination. Similar to a spreadsheet, a cell is the smallest unit of a table and represents the intersection of a row and a column. Within a given month, the number of stored cells vary, as a table can grow/shrink in size, as well as be removed or created at any time, and the monthly cell storage measure reflects this variation
  • Active models
    • Each unit grants 2 active models

Changing units


You can change the number of units directly on the destination page

 

The modal that will open will indicate the total monthly pricing. Free units may be granted at our discretion. Just click SAVE to apply the new configuration

Free unit


The free unit included in the plan is applied upon destination creation or when units are changed

Change access token

To change the access token of your destination, just access it, click the 3 horizontal bars, and then "Change token"

You should change your token whenever you suspect it has been compromised. Frequent changes are also recommended. When you change your token, a new one will be generated, and the previous one will stop working, requiring you to update the new token in your links

Create

After your free trial period, you can have as many Via Kondado instances as you want, each containing its own data and having its own access token. To create a new destination, just click "Create+" on the top bar, choose Via Kondado, give a name and a number of units to the new destination

Disable and archive


To disable and archive your destination, just access it, click the 3 horizontal bars, and then "Disable and archive". This action is irreversible, it will remove the data from the tables of this destination and make it inaccessible via Link. Pipelines and models of this destination will be archived

Remove data without disabling the destination

You can archive an pipeline or model to remove this specific data from your Via Kondado destination

Security recommendations


Your token allows access to your data, use the highest degree of security in its handling

It is possible to obtain this token in various ways through the Kondado platform, so we recommend protecting access to your Kondado account by applying appropriate login settings, allowing access only with methods that have two-factor authentication enabled and restricted domains.

Table standards


Table names

  • Do not start with duckdb_, pragma_, pg_, or sqlite_
  • Do not contain special characters or spaces
  • Always use lowercase

Fields

  • The maximum number of fields per table is 1500
  • The minimum and maximum years for fields of types date and timestamp are, respectively, 1677 and 2262. If a date is not within this range, it will be returned as null.

Models


You can use our models functionality in the Via Kondado destination, which uses DuckDB syntax, with the following particularities:

  1. Your SQL should only contain one SELECT command
  2. The SHOW command is not allowed in your SQL
  3. Column aliases will be normalized in the final table, replacing non-ANSI characters and spaces with “_”
  4. The dot notation "." should not be used to refer to tables in your SQL
  5. The RANGE function is not allowed
  6. PIVOT and UNPIVOT must be wrapped within a subquery (for example: SELECT * FROM (PIVOT Cities ON YEAR USING SUM(POPULATION)) and SELECT * FROM monthly_sales UNPIVOT (sales FOR month IN (jan, feb, mar, apr, may, jun)))
  7. The total execution time of your model, including the loading of dependent tables, should not exceed 10 minutes, with a maximum of 5 minutes for the SQL execution itself. If these limits are exceeded, it may be necessary to query fewer tables, work with reduced tables (e.g., with preliminary treatment using other upstream models), or simplify your SQL
  8. Due to the architecture of the Via Kondado destination, there may be considerable variation between the execution times of the same model
     

Learn more about models

Model editor


The Via Kondado model editor allows you to test your SQL during editing.

The test uses samples of the queried tables, which will return a different result from the real SQL execution with the original data

To test your SQL, first select a Via Kondado destination, and then you will see the TEST SQL button. Just click it. You can also use the CTRL+ENTER shortcut

The test will consider all the SQL contained in the editor, regardless of what is selected or if the text has been saved (which can also be done with CTRL+S)

If an error is found during the test, it will be displayed. If there are no errors, the execution result with the sample data will be shown, and you can also immediately run your model. Clicking this button will also save the SQL currently in your editor

Queries (Beta)

In addition to downloading full tables, Via Kondado allows you to run queries directly on your data — filtering, grouping, and transforming information before download.

With queries, you can:

  • Filter records by specific conditions (e.g., only sales from the last month)
  • Select only the columns you need
  • Group data and calculate totals, averages, counts, and other metrics
  • Sort results by any column
  • Create calculated columns with custom expressions
  • Combine tables using JOINs
  • Merge data from different tables with UNION ALL

Queries use KSQL, Kondado's own JSON-based query syntax. See the complete KSQL Reference for details on syntax and available functions.

ℹ️ Beta: Queries are available in beta mode. Features and limits may be adjusted.

How it works

  1. Build your query using KSQL syntax (JSON format)
  2. Submit the query via the Via Kondado URL, just like you do for table downloads
  3. Results are delivered as a CSV file for download

Endpoints

Queries are sent to the host https://hub.kondado.io, authenticated with your Via Kondado token via the token query-string parameter:

MethodEndpointDescription
POST/query?token=YOUR_TOKENSend the query JSON in the request body
GET/query/{base64_payload}?token=YOUR_TOKENSend the base64-encoded query in the URL path
GET/query?ksql={base64_payload}&token=YOUR_TOKENSend the base64-encoded query as a query-string parameter
GET/query?query_id={id}&token=YOUR_TOKENExecute a saved query by ID

POST /query

Send the JSON in the request body. The root structure accepts either the ksql field (with the query definition) or the query_id field (ID of a previously saved query):

{
  "ksql": {
    "table_name": "sales",
    "columns": ["product", "amount", "date"],
    "where_conditions": [
      {
        "column": "date",
        "operator": "LAST_N_DAYS",
        "value": 30
      }
    ],
    "order_by": [{"column": "amount", "direction": "desc"}],
    "limit": 1000
  }
}

Executing a saved query by ID:

{"query_id": "abc123"}

GET /query/{base64_payload}

Base64-encode only the KSQL object (without the {"ksql": ...} envelope) and send it in the URL path. If the path value is not valid Base64, it will be interpreted as the query_id of a saved query.

Response formats

ParameterValueBehavior
response_formatdownload (default)Redirects to the CSV download link
response_formatlink_and_schemaReturns JSON with download link and column schema

Example response with link_and_schema:

{
  "download_link": "https://...",
  "schema": [
    {"col_name": "product", "col_type": "STRING"},
    {"col_name": "amount", "col_type": "DOUBLE"}
  ],
  "row_cap": 1000,
  "truncated": false
}

Record limit

Queries return a maximum of 1,000 records per execution, regardless of the limit value specified. The response includes row_cap: 1000 and a truncated flag indicating whether the result was truncated (true) or returned all records (false).

Reading consumption

Query reading consumption is based on the amount of data scanned, in increments of 10 MB. The minimum charge is 1 reading per query.

Data scannedReadings consumed
Up to 10 MB1
10 MB to 20 MB2
20 MB to 30 MB3
......

💡 Tip: Select only the columns you need and use filters to reduce the amount of data scanned and save readings.

Kondado app discount: Queries made directly through the Kondado application consume only 0.2 readings per increment, instead of 1.

Examples

Simple query with filter:

{
  "ksql": {
    "table_name": "customers",
    "columns": ["name", "email", "city"],
    "where_conditions": [
      {"column": "city", "operator": "=", "value": "New York"}
    ],
    "limit": 50
  }
}

Query with grouping:

{
  "ksql": {
    "table_name": "orders",
    "columns": ["category", "revenue"],
    "column_aggregations": ["none", "sum"],
    "dimensions": ["category"],
    "order_by": [{"column": "revenue", "direction": "desc"}]
  }
}

For more examples and the complete syntax documentation, see the KSQL Reference.

MCP

MCP (Model Context Protocol) lets LLMs and AI tools — like Claude and ChatGPT — access the data in your Via Kondado through KSQL queries, in an authenticated and programmatic way. It's an additional channel alongside CSV, dashboards, and BI access: while those are designed for human consumption or traditional tools, MCP is the official path to connect AI agents to your Via Kondado.

Endpoint

The MCP endpoint is unique and the same for every customer — authentication determines who each call belongs to:

https://mcp.kondado.io/mcp

Authentication

Two authentication paths are supported. Use whichever fits your MCP client:

1. OAuth (recommended for apps with OAuth 2.1 + DCR support)

Apps like Claude, ChatGPT, and similar — which support OAuth 2.1 with Dynamic Client Registration (RFC 7591) — discover everything automatically from the /mcp endpoint. You only need to configure the URL https://mcp.kondado.io/mcp in the client app; it handles the rest:

  1. The client receives a 401 Unauthorized response with a WWW-Authenticate header pointing to the resource-metadata.
  2. The client discovers the authorization server through the /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server endpoints.
  3. The client performs Dynamic Client Registration automatically.
  4. A consent screen opens at https://app.kondado.com.br/oauth/authorize — you sign in, pick the target Via Kondado, and authorize.
  5. The client receives an access token and a refresh token, and uses the Bearer token on subsequent calls.

For OAuth-capable apps, no configuration beyond the endpoint URL is required — the app discovers the auth and registration flows on its own.

2. Legacy token (clients without OAuth or manual setup)

For MCP clients that don't support OAuth/DCR (simple CLIs, your own scripts, server-to-server integrations), or when you prefer a long-lived token, the same access token from your Via Kondado also works as a Bearer token on MCP.

How to use: send the header Authorization: Bearer YOUR_TOKEN on each call to https://mcp.kondado.io/mcp. This is the same token used to access Via Kondado data via Link — see the Access token section to find it.

Supported apps

See the dedicated guides for each client app:

  • Claude
  • ChatGPT
  • Other generic MCP clients can be configured manually with the URL https://mcp.kondado.io/mcp and the legacy token.

v1 limitations

  • Read-only: MCP currently allows reads only — no write, insert, update, or delete operations are exposed.
  • KSQL only: queries use exclusively the KSQL syntax (JSON format). Raw SQL is not supported yet.
  • One Via Kondado per OAuth session: each OAuth session is bound to a single Via Kondado. To access data from another Via Kondado, simply re-authenticate and pick the target destination.

– This destination is in beta mode

Frequently asked questions about MCP

What is MCP and who should use it?
MCP (Model Context Protocol) is a channel that lets LLMs and AI tools — like Claude and ChatGPT — access your Via Kondado data through authenticated KSQL queries. Use it if you want to integrate AI agents with your data; for Power BI, Looker Studio, or Excel, keep using the traditional Link.
What's the Via Kondado MCP endpoint?
It's unique and the same for every customer: https://mcp.kondado.io/mcp. Authentication determines who each call belongs to. See the MCP section for details.
Can I use it with Claude and ChatGPT? What about other clients?
Yes. See the dedicated guides: Claude and ChatGPT. Other generic MCP clients are also supported — just configure the URL https://mcp.kondado.io/mcp and the legacy token.
Do I need OAuth, or can I use the legacy token?
Apps that support OAuth 2.1 + Dynamic Client Registration (Claude, ChatGPT) discover authentication automatically — you only configure the URL https://mcp.kondado.io/mcp. For clients without OAuth (simple CLIs, custom scripts, server-to-server integrations), use the same Via Kondado access token as a Bearer token.
Is it secure? Who sees my data?
Access is authenticated through OAuth or your Via Kondado access token. Each OAuth session is bound to a single Via Kondado. MCP is currently read-only — no write, update, or delete operations are exposed. Keep your token in a secure place and follow the recommendations in the security section.

Set up and query data via Via Kondado

Connect your BI tools and spreadsheets to Via Kondado using API links, then run filtered queries to get exactly the data you need.

1
Create your Via Kondado destination

After your free trial, click "Create+" on the top bar, choose Via Kondado, and configure the name and units. The free unit is applied automatically upon creation. Learn more about pricing and units.

2
Get your access token

Open your destination, click the 3 horizontal bars, and select "View token". Keep this token secure—treat it as a password for your data. Follow security recommendations to protect your account with two-factor authentication.

3
Copy the API link for your table

For pipeline tables, access your pipeline and click the share icon, or click DETAILS to get each table's link. For models, use the same copy-paste method. You can also manually construct links to https://hub.kondado.io/data/table_x with your token.

4
Connect to your preferred tool

Use the copied link to connect Via Kondado to BI and visualization tools like Power BI, Looker Studio, or Excel via Power Query. The data returns in CSV format with configurable decimal separators.

5
Build and run KSQL queries (Beta)

Instead of downloading full tables, use KSQL to filter, group, and transform data before download. Submit queries via POST to /query with your token, or use the Kondado app for discounted reading consumption (0.2 readings per 10 MB instead of 1).

Frequently asked questions

What is MCP and who should use it?
MCP (Model Context Protocol) is a channel that lets LLMs and AI tools — like Claude and ChatGPT — access your Via Kondado data through authenticated KSQL queries. Use it if you want to integrate AI agents with your data; for Power BI, Looker Studio, or Excel, keep using the traditional Link.
What's the Via Kondado MCP endpoint?
It's unique and the same for every customer: https://mcp.kondado.io/mcp. Authentication determines who each call belongs to. See the <a href="#anchor-mcp">MCP section for details.
Can I use it with Claude and ChatGPT? What about other clients?
Yes. See the dedicated guides: Claude and ChatGPT. Other generic MCP clients are also supported — just configure the URL https://mcp.kondado.io/mcp and the legacy token.
Do I need OAuth, or can I use the legacy token?
Apps that support OAuth 2.1 + Dynamic Client Registration (Claude, ChatGPT) discover authentication automatically — you only configure the URL https://mcp.kondado.io/mcp. For clients without OAuth (simple CLIs, custom scripts, server-to-server integrations), use the same Via Kondado access token as a Bearer token.
Is it secure? Who sees my data?
Access is authenticated through OAuth or your Via Kondado access token. Each OAuth session is bound to a single Via Kondado. MCP is currently read-only — no write, update, or delete operations are exposed. Keep your token in a secure place and follow the recommendations in the security section.

Written by·Published 2024-06-11·Updated 2026-05-08