{"openapi":"3.1.0","info":{"title":"NocoDB Cloud (BYOK) API","version":"0.1.0","description":"NocoDB Cloud (BYOK) lets an AI assistant read your own NocoDB Cloud data through the NocoDB Cloud API with a key you supply (API token). Read-only: 9 tools (get_current_user, list_workspaces, list_bases, list_tables, get_table, list_views, list_records, count_records, get_record). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-nocodb.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-nocodb/docs"},"termsOfService":"https://connectorbay.com/byok-nocodb/terms"},"servers":[{"url":"https://byok-nocodb.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-nocodb/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/get_current_user":{"post":{"operationId":"get_current_user","summary":"Show the NocoDB user the token belongs to: id, name and email. Use for \"Which NocoDB user is my token for\".","description":"Show the NocoDB user the token belongs to: id, name and email. Use for \"Which NocoDB user is my token for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_current_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/list_workspaces":{"post":{"operationId":"list_workspaces","summary":"List your NocoDB Cloud workspaces with id, title and description. Use for \"What NocoDB workspaces do I have\".","description":"List your NocoDB Cloud workspaces with id, title and description. Use for \"What NocoDB workspaces do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_workspacesArguments","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_bases":{"post":{"operationId":"list_bases","summary":"List the bases (databases) in a workspace with id, title, type and status. Use for \"What bases are in my NocoDB workspac","description":"List the bases (databases) in a workspace with id, title, type and status. Use for \"What bases are in my NocoDB workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_id":{"description":"Workspace id (from list_workspaces), for example 'w1a2b3c4'.","maxLength":200,"title":"Workspace Id","type":"string"}},"required":["workspace_id"],"title":"list_basesArguments","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_tables":{"post":{"operationId":"list_tables","summary":"List the tables of a base with id, title and table name. Use for \"What tables are in my NocoDB base\".","description":"List the tables of a base with id, title and table name. Use for \"What tables are in my NocoDB base\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"base_id":{"description":"Base id (from list_bases), for example 'p1a2b3c4d5e6f7'.","maxLength":200,"title":"Base Id","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many tables per page.","title":"Page Size"}},"required":["base_id"],"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/get_table":{"post":{"operationId":"get_table","summary":"Get a table's columns: id, title, column name, field type (uidt), data type, primary key and required flags. Use for \"Wh","description":"Get a table's columns: id, title, column name, field type (uidt), data type, primary key and required flags. Use for \"What columns does my NocoDB table have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Table id (from list_tables), for example 'm1a2b3c4d5e6f7'.","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_views":{"post":{"operationId":"list_views","summary":"List the views of a table with id, title, view type number and lock type. Use for \"What views does my NocoDB table have\"","description":"List the views of a table with id, title, view type number and lock type. Use for \"What views does my NocoDB table have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Table id (from list_tables), for example 'm1a2b3c4d5e6f7'.","maxLength":200,"title":"Table Id","type":"string"}},"required":["table_id"],"title":"list_viewsArguments","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_records":{"post":{"operationId":"list_records","summary":"List records of a table. Pick columns with fields, filter with where, order with sort; page with limit and offset. The a","description":"List records of a table. Pick columns with fields, filter with where, order with sort; page with limit and offset. The answer includes pageInfo. Use for \"Show the first 10 records of my NocoDB table where Status is Done\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Table id (from list_tables), for example 'm1a2b3c4d5e6f7'.","maxLength":200,"title":"Table Id","type":"string"},"where":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Filter such as '(Status,eq,Done)~and(Priority,gt,2)' with no spaces between parts; operators include eq, neq, gt, lt, like.","title":"Where"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated column titles to return, no spaces (default all).","title":"Fields"},"sort":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated column titles to sort by; prefix a title with '-' for descending.","title":"Sort"},"view_id":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Only records visible in this view id.","title":"View Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 100, default 25).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Offset"}},"required":["table_id"],"title":"list_recordsArguments","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_records":{"post":{"operationId":"count_records","summary":"Count the records of a table, optionally matching a where filter. Use for \"How many records in my NocoDB table have Stat","description":"Count the records of a table, optionally matching a where filter. Use for \"How many records in my NocoDB table have Status Done\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Table id (from list_tables), for example 'm1a2b3c4d5e6f7'.","maxLength":200,"title":"Table Id","type":"string"},"where":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Filter such as '(Status,eq,Done)~and(Priority,gt,2)' with no spaces between parts; operators include eq, neq, gt, lt, like.","title":"Where"},"view_id":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Only count records visible in this view id.","title":"View Id"}},"required":["table_id"],"title":"count_recordsArguments","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_record":{"post":{"operationId":"get_record","summary":"Get one record of a table by its record id. Use for \"Show NocoDB record 5 of my table\".","description":"Get one record of a table by its record id. Use for \"Show NocoDB record 5 of my table\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"table_id":{"description":"Table id (from list_tables), for example 'm1a2b3c4d5e6f7'.","maxLength":200,"title":"Table Id","type":"string"},"record_id":{"description":"Record id (the Id column value).","maxLength":200,"title":"Record Id","type":"string"},"fields":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated column titles to return, no spaces (default all).","title":"Fields"}},"required":["table_id","record_id"],"title":"get_recordArguments","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}}}}