{"openapi":"3.1.0","info":{"title":"Budibase (BYOK) API","version":"0.1.0","description":"Budibase (BYOK) lets an AI assistant read your own Budibase data through the Budibase API with a key you supply (Budibase API key). Read-only: 9 tools (search_apps, get_app, search_tables, get_table, list_rows, get_row, search_users, get_user, search_queries). 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-budibase.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-budibase/docs"},"termsOfService":"https://connectorbay.com/byok-budibase/terms"},"servers":[{"url":"https://byok-budibase.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-budibase/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/search_apps":{"post":{"operationId":"search_apps","summary":"Search Budibase apps by name prefix; returns id, name, status (development or published), url and update time. Use for \"","description":"Search Budibase apps by name prefix; returns id, name, status (development or published), url and update time. Use for \"Which Budibase apps do I have that start with 'crm'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Case-insensitive 'starts with' match on the name. Use a single letter or a prefix; the API requires a value.","maxLength":100,"title":"Name","type":"string"}},"required":["name"],"title":"search_appsArguments","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_app":{"post":{"operationId":"get_app","summary":"Get one Budibase app by id: name, status, url and timestamps. Use for \"Show Budibase app app_abc\".","description":"Get one Budibase app by id: name, status, url and timestamps. Use for \"Show Budibase app app_abc\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"app_id":{"description":"Budibase app id (from search_apps).","maxLength":200,"title":"App Id","type":"string"}},"required":["app_id"],"title":"get_appArguments","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_tables":{"post":{"operationId":"search_tables","summary":"Search tables of the configured app by name prefix; returns id, name, primary display column and schema. Use for \"Which ","description":"Search tables of the configured app by name prefix; returns id, name, primary display column and schema. Use for \"Which tables in my Budibase app start with 'c'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Case-insensitive 'starts with' match on the name. Use a single letter or a prefix; the API requires a value.","maxLength":100,"title":"Name","type":"string"}},"required":["name"],"title":"search_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/get_table":{"post":{"operationId":"get_table","summary":"Get one Budibase table of the configured app, with its column schema. Use for \"What columns does Budibase table ta_123ab","description":"Get one Budibase table of the configured app, with its column schema. Use for \"What columns does Budibase table ta_123abc have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Budibase table id such as 'ta_123abc' (from search_tables).","maxLength":200,"title":"Table Id","type":"string"}},"required":["table_id"],"title":"get_tableArguments","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 Budibase table (no filter), optionally paginated with a bookmark; limit is capped at 1000 for internal ta","description":"List rows of a Budibase table (no filter), optionally paginated with a bookmark; limit is capped at 1000 for internal tables. Use for \"Show rows of Budibase table ta_123abc\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Budibase table id such as 'ta_123abc' (from search_tables).","maxLength":200,"title":"Table Id","type":"string"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Maximum rows to return (1 to 1000).","title":"Limit"},"paginate":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to enable pagination; the answer then carries a bookmark for the next page.","title":"Paginate"},"bookmark":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Bookmark from the previous page's answer.","title":"Bookmark"}},"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/get_row":{"post":{"operationId":"get_row","summary":"Get one Budibase row by id, with related rows expanded. Use for \"Show Budibase row ro_1 of table ta_123abc\".","description":"Get one Budibase row by id, with related rows expanded. Use for \"Show Budibase row ro_1 of table ta_123abc\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Budibase table id such as 'ta_123abc' (from search_tables).","maxLength":200,"title":"Table Id","type":"string"},"row_id":{"description":"Row id (the _id column from list_rows).","maxLength":200,"title":"Row Id","type":"string"}},"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}},"/v1/tools/search_users":{"post":{"operationId":"search_users","summary":"Search Budibase users by name prefix; returns email, name, roles and status. Passwords are never kept in the answer. Use","description":"Search Budibase users by name prefix; returns email, name, roles and status. Passwords are never kept in the answer. Use for \"Which Budibase users have a name starting with 'a'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Case-insensitive 'starts with' match on the name. Use a single letter or a prefix; the API requires a value.","maxLength":100,"title":"Name","type":"string"}},"required":["name"],"title":"search_usersArguments","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_user":{"post":{"operationId":"get_user","summary":"Get one Budibase user by id: email, name, roles and status. Use for \"Show Budibase user us_1\".","description":"Get one Budibase user by id: email, name, roles and status. Use for \"Show Budibase user us_1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Budibase user id (from search_users).","maxLength":200,"title":"User Id","type":"string"}},"required":["user_id"],"title":"get_userArguments","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_queries":{"post":{"operationId":"search_queries","summary":"Search saved queries of the configured app by name prefix (listing only; queries are not executed). Use for \"Which saved","description":"Search saved queries of the configured app by name prefix (listing only; queries are not executed). Use for \"Which saved queries does my Budibase app have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Case-insensitive 'starts with' match on the name. Use a single letter or a prefix; the API requires a value.","maxLength":100,"title":"Name","type":"string"}},"required":["name"],"title":"search_queriesArguments","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}}}}