# data.gouv.fr tabular rows query

Read rows of any CSV or Excel file hosted on data.gouv.fr without downloading it (Tabular API): one column filter. Needs resource id.

Read rows of any CSV or Excel file hosted on data.gouv.fr without downloading it (Tabular API): one column filter (exact by default, or contains, in, less, greater...), one sort column, column selection and paging. Column names are case-sensitive: fetch one row first to see them. Get resource ids from data-gouv/dataset-resources.

- Tool ID: `data-gouv/tabular-query`
- Provider: [data.gouv.fr](/providers/data-gouv.md)
- Capability: [Knowledge & research](/tools/knowledge.md)
- Price: no charge per call
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

No charge per call. A workspace is still needed so your agent can call it.


```json
{
  "model": "per_call",
  "amountUsd": 0
}
```

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "resource_id": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "description": "Resource id (UUID), e.g. '008a2dda-2c60-4b63-b910-998f6f818089' (La Poste postcode base)"
    },
    "filter_column": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "default": "__id",
      "description": "Column to filter on (exact name), e.g. 'Code_postal'; omit for no filter"
    },
    "filter_operator": {
      "type": "string",
      "enum": [
        "exact",
        "differs",
        "contains",
        "notcontains",
        "in",
        "notin",
        "less",
        "greater",
        "strictly_less",
        "strictly_greater"
      ],
      "description": "Filter operator, 'exact' when a filter_column is given; 'in'/'notin' take comma-separated values"
    },
    "filter_value": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "Filter value, e.g. '75011'"
    },
    "sort_column": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "default": "__id",
      "description": "Column to sort on (exact name), e.g. 'Nom_de_la_commune'"
    },
    "sort_direction": {
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ],
      "default": "asc",
      "description": "Sort direction, e.g. 'desc'"
    },
    "columns": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 120
      },
      "maxItems": 30,
      "description": "Columns to return (exact names), e.g. ['Code_postal', 'Nom_de_la_commune']"
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10000,
      "default": 1,
      "description": "Page number, e.g. 1"
    },
    "page_size": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Rows per page, e.g. 20"
    }
  },
  "required": [
    "resource_id"
  ],
  "additionalProperties": false,
  "allOf": [
    {
      "if": {
        "properties": {
          "filter_column": {
            "const": "__id"
          }
        }
      },
      "then": {
        "properties": {
          "filter_operator": {
            "default": "greater"
          },
          "filter_value": {
            "default": "0"
          }
        }
      },
      "else": {
        "properties": {
          "filter_operator": {
            "default": "exact"
          }
        },
        "required": [
          "filter_value"
        ]
      }
    }
  ]
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "data-gouv/tabular-query",
  "input": {
    "resource_id": "008a2dda-2c60-4b63-b910-998f6f818089",
    "filter_column": "Code_postal",
    "filter_value": "69001",
    "page_size": 3
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

Licence: Licence of the queried dataset (most are Licence Ouverte 2.0; check the dataset page).

Attribution: Data from data.gouv.fr via the Tabular API (DINUM); licence of the source dataset applies.

[Provider documentation](https://www.data.gouv.fr/dataservices/api-tabulaire-data-gouv-fr-beta/)

[REST inspection](https://api.agentik.cc/v1/tools/data-gouv/tabular-query) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/data-gouv/tabular-query) · [Agent index](/llms.txt)
