{"openapi":"3.1.0","info":{"title":"TagoIO (BYOK) API","version":"0.1.0","description":"TagoIO (BYOK) lets an AI assistant read your own TagoIO data through the TagoIO API with a key you supply (TagoIO profile token (Account Token; create one in Profile settings under Tokens, give it read-only access)). Read-only: 11 tools (get_account, get_account_plan, list_devices, get_device, get_device_data, get_device_statistics, get_device_data_amount, list_dashboards, get_dashboard,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-tagoio.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-tagoio/docs"},"termsOfService":"https://connectorbay.com/byok-tagoio/terms"},"servers":[{"url":"https://byok-tagoio.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-tagoio/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_account":{"post":{"operationId":"get_account","summary":"Show the account tied to the token: name, company, plan, type, time zone, status and last login. Contact details and bil","description":"Show the account tied to the token: name, company, plan, type, time zone, status and last login. Contact details and billing ids are not returned. Use for \"Which TagoIO account and plan am I on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"}},"required":["region"],"title":"get_accountArguments","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_account_plan":{"post":{"operationId":"get_account_plan","summary":"Show the name of the account's plan. Use for \"What TagoIO plan do I have\".","description":"Show the name of the account's plan. Use for \"What TagoIO plan do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"}},"required":["region"],"title":"get_account_planArguments","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_devices":{"post":{"operationId":"list_devices","summary":"List devices with name, connector, network and tags. Filter by name, active or visible state, connector, network, tag, o","description":"List devices with name, connector, network and tags. Filter by name, active or visible state, connector, network, tag, or by recent data or creation time. Use for \"Which devices do I have in TagoIO\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"amount":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page.","title":"Amount"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices whose name matches this text.","title":"Name"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only active (true) or inactive (false) devices.","title":"Active"},"visible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only visible (true) or hidden (false) devices.","title":"Visible"},"connector":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices of this connector id.","title":"Connector"},"network":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices on this network id.","title":"Network"},"updated_at":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices that received data in this time, ISO 8601 or relative such as '1 day'.","title":"Updated At"},"created_at":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices created in this time, ISO 8601 or relative such as '1 day'.","title":"Created At"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by, for example created_at.","title":"Order By"}},"required":["region"],"title":"list_devicesArguments","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_device":{"post":{"operationId":"get_device","summary":"Get one device: name, type, active and visible flags, connector, network, tags, data retention and last input time. Devi","description":"Get one device: name, type, active and visible flags, connector, network, tags, data retention and last input time. Device tokens are not returned. Use for \"Show TagoIO device 5e12345a\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"},"device_id":{"description":"TagoIO device id (a 24-character id) from list_devices.","maxLength":40,"title":"Device Id","type":"string"}},"required":["region","device_id"],"title":"get_deviceArguments","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_device_data":{"post":{"operationId":"get_device_data","summary":"Get the latest data points of a device: variable, value, unit, time and location. Use for \"What did TagoIO device 5e1234","description":"Get the latest data points of a device: variable, value, unit, time and location. Use for \"What did TagoIO device 5e12345a last report\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"},"device_id":{"description":"TagoIO device id (a 24-character id) from list_devices.","maxLength":40,"title":"Device Id","type":"string"},"qty":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":15,"description":"How many data points to return.","title":"Qty"},"end_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data before this ISO 8601 time.","title":"End Date"}},"required":["region","device_id"],"title":"get_device_dataArguments","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_device_statistics":{"post":{"operationId":"get_device_statistics","summary":"Get the data input and output counts of a device per hour, day or month. Needs the Control Tower add-on. Use for \"How mu","description":"Get the data input and output counts of a device per hour, day or month. Needs the Control Tower add-on. Use for \"How much data did TagoIO device 5e12345a send this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"},"device_id":{"description":"TagoIO device id (a 24-character id) from list_devices.","maxLength":40,"title":"Device Id","type":"string"},"periodicity":{"anyOf":[{"enum":["hour","day","month"],"type":"string"},{"type":"null"}],"default":null,"description":"Bucket size: hour, day or month.","title":"Periodicity"},"start_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, ISO 8601.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, ISO 8601.","title":"End Date"},"timezone":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Time zone applied to the dates, for example America/Sao_Paulo (default UTC).","title":"Timezone"}},"required":["region","device_id"],"title":"get_device_statisticsArguments","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_device_data_amount":{"post":{"operationId":"get_device_data_amount","summary":"Count the data records stored for a device. Use for \"How many records does TagoIO device 5e12345a hold\".","description":"Count the data records stored for a device. Use for \"How many records does TagoIO device 5e12345a hold\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"},"device_id":{"description":"TagoIO device id (a 24-character id) from list_devices.","maxLength":40,"title":"Device Id","type":"string"}},"required":["region","device_id"],"title":"get_device_data_amountArguments","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_dashboards":{"post":{"operationId":"list_dashboards","summary":"List dashboards with label, type (dashboard or blueprint), tags, visibility, creation and last access time. Use for \"Whi","description":"List dashboards with label, type (dashboard or blueprint), tags, visibility, creation and last access time. Use for \"Which dashboards do I have in TagoIO\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"amount":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page.","title":"Amount"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort by this field, for example name.","title":"Order By"}},"required":["region"],"title":"list_dashboardsArguments","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_dashboard":{"post":{"operationId":"get_dashboard","summary":"Get one dashboard: label, type, visibility, tags, group-by fields, widget layout and update time. Use for \"Show TagoIO d","description":"Get one dashboard: label, type, visibility, tags, group-by fields, widget layout and update time. Use for \"Show TagoIO dashboard 5e12345a\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"},"dashboard_id":{"description":"Dashboard id from list_dashboards.","maxLength":40,"title":"Dashboard Id","type":"string"}},"required":["region","dashboard_id"],"title":"get_dashboardArguments","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_entities":{"post":{"operationId":"list_entities","summary":"List entities (structured data tables) with name, tags and creation and update time. Use for \"Which entities exist in my","description":"List entities (structured data tables) with name, tags and creation and update time. Use for \"Which entities exist in my TagoIO account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"amount":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (max 100).","title":"Amount"},"order_by":{"anyOf":[{"enum":["created_at","updated_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by created_at or updated_at.","title":"Order By"}},"required":["region"],"title":"list_entitiesArguments","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_access_policies":{"post":{"operationId":"list_access_policies","summary":"List access management policies with name, active flag, tags and creation time. Use for \"Which access policies exist in ","description":"List access management policies with name, active flag, tags and creation time. Use for \"Which access policies exist in my TagoIO account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The TagoIO region your account lives in: us-e1 (US East) or eu-w1 (Europe West).","enum":["us-e1","eu-w1"],"title":"Region","type":"string"},"order_by":{"description":"Field to sort by, for example created_at.","maxLength":40,"title":"Order By","type":"string"}},"required":["region","order_by"],"title":"list_access_policiesArguments","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}}}}