{"openapi":"3.1.0","info":{"title":"Baserow (BYOK) API","version":"0.1.0","description":"Baserow (BYOK) lets an AI assistant read your own Baserow data through the Baserow API with a key you supply (database token (needs read permission)). Read-only: 7 tools (list_tables, list_rows, search_rows, filter_rows, list_rows_in_view, count_rows, get_row). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-baserow.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-baserow/docs"},"termsOfService":"https://connectorbay.com/byok-baserow/terms"},"servers":[{"url":"https://byok-baserow.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-baserow/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_tables":{"post":{"operationId":"list_tables","summary":"List the Baserow tables the database token can access with table name, id and database id. Needs a database token with r","description":"List the Baserow tables the database token can access with table name, id and database id. Needs a database token with read permission. Use for \"Which Baserow tables can my token read\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_tablesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_rows":{"post":{"operationId":"list_rows","summary":"List rows of a Baserow table, with every field of each row, page by page. Returns the total row count and next/previous ","description":"List rows of a Baserow table, with every field of each row, page by page. Returns the total row count and next/previous page links. Use for \"Show me the rows of my Baserow projects table\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Baserow table ID (a number), from list_tables or the table URL.","title":"Table Id","type":"integer"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many rows per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"user_field_names":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to use your field names as keys instead of field_<id> keys.","title":"User Field Names"},"order_by":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated field names to sort by (names when user_field_names is true); prefix a name with - for descending, for example '-Created,Name'.","title":"Order By"}},"required":["table_id"],"title":"list_rowsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_rows":{"post":{"operationId":"search_rows","summary":"Search the rows of a Baserow table for a text across all fields and return the matching rows. Use for \"Which rows of my ","description":"Search the rows of a Baserow table for a text across all fields and return the matching rows. Use for \"Which rows of my Baserow projects table mention the launch\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Baserow table ID (a number), from list_tables or the table URL.","title":"Table Id","type":"integer"},"search":{"description":"Text to look for in the cells of each row.","maxLength":200,"title":"Search","type":"string"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many rows per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"user_field_names":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to use your field names as keys instead of field_<id> keys.","title":"User Field Names"}},"required":["table_id","search"],"title":"search_rowsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/filter_rows":{"post":{"operationId":"filter_rows","summary":"List rows of a Baserow table that match a filter tree given as JSON, for example rows whose Status equals Done. Use for ","description":"List rows of a Baserow table that match a filter tree given as JSON, for example rows whose Status equals Done. Use for \"Which rows in my Baserow projects table have Status equal to Done\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Baserow table ID (a number), from list_tables or the table URL.","title":"Table Id","type":"integer"},"filters":{"description":"JSON text of the filter tree: {\"filter_type\":\"AND\",\"filters\":[{\"field\":\"Status\",\"type\":\"equal\",\"value\":\"Done\"}]}. Field can be a field name when user_field_names is true. Types include equal, not_equal, contains, higher_than, lower_than.","maxLength":1000,"title":"Filters","type":"string"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many rows per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"user_field_names":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to use your field names as keys instead of field_<id> keys.","title":"User Field Names"}},"required":["table_id","filters"],"title":"filter_rowsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_rows_in_view":{"post":{"operationId":"list_rows_in_view","summary":"List rows of a Baserow table as a saved view shows them, using that view's filters and sorting. Use for \"Show me the row","description":"List rows of a Baserow table as a saved view shows them, using that view's filters and sorting. Use for \"Show me the rows of the Open tasks view in my Baserow table\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Baserow table ID (a number), from list_tables or the table URL.","title":"Table Id","type":"integer"},"view_id":{"description":"ID of the view (a number from the view's URL).","title":"View Id","type":"integer"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many rows per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"user_field_names":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to use your field names as keys instead of field_<id> keys.","title":"User Field Names"}},"required":["table_id","view_id"],"title":"list_rows_in_viewArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/count_rows":{"post":{"operationId":"count_rows","summary":"Count the rows of a Baserow table, optionally only those matching a search text. Use for \"How many rows does my Baserow ","description":"Count the rows of a Baserow table, optionally only those matching a search text. Use for \"How many rows does my Baserow projects table have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Baserow table ID (a number), from list_tables or the table URL.","title":"Table Id","type":"integer"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only count rows containing this text; leave out to count all rows.","title":"Search"},"size":{"anyOf":[{"maximum":1,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Rows to fetch for the page; keep 1 because only the count is returned.","title":"Size"}},"required":["table_id"],"title":"count_rowsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_row":{"post":{"operationId":"get_row","summary":"Get one row of a Baserow table with every field. Use for \"Show me row 5 of my Baserow projects table\".","description":"Get one row of a Baserow table with every field. Use for \"Show me row 5 of my Baserow projects table\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Baserow table ID (a number), from list_tables or the table URL.","title":"Table Id","type":"integer"},"row_id":{"description":"Row ID (the 'id' of a row), from list_rows.","title":"Row Id","type":"integer"},"user_field_names":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to use your field names as keys instead of field_<id> keys.","title":"User Field Names"}},"required":["table_id","row_id"],"title":"get_rowArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}