{"openapi":"3.1.0","info":{"title":"Mezmo (BYOK) API","version":"0.1.0","description":"Mezmo (BYOK) lets an AI assistant read your own Mezmo data through the Mezmo API with a key you supply (Mezmo access token). Read-only: 8 tools (get_usage_total, get_usage_by_app, get_usage_by_host, get_usage_by_tag, list_views, list_categories, list_preset_alerts, export_logs). 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-mezmo.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-mezmo/docs"},"termsOfService":"https://connectorbay.com/byok-mezmo/terms"},"servers":[{"url":"https://byok-mezmo.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-mezmo/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_usage_total":{"post":{"operationId":"get_usage_total","summary":"Show total Mezmo log volume in bytes for a date range: plan bytes, restored bytes and bytes per variable retention pool.","description":"Show total Mezmo log volume in bytes for a date range: plan bytes, restored bytes and bytes per variable retention pool. Use for \"How much log data did Mezmo ingest last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date_from":{"description":"Start of the range as an ISO 8601 date-time, for example 2026-10-01T00:00:00Z (only the day is used).","maxLength":30,"title":"Date From","type":"string"},"date_to":{"description":"End of the range as an ISO 8601 date-time, for example 2026-10-08T00:00:00Z (only the day is used).","maxLength":30,"title":"Date To","type":"string"}},"required":["date_from","date_to"],"title":"get_usage_totalArguments","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_usage_by_app":{"post":{"operationId":"get_usage_by_app","summary":"Show log volume in bytes per app for a date range, largest first, from Mezmo usage data. Use for \"Which apps send the mo","description":"Show log volume in bytes per app for a date range, largest first, from Mezmo usage data. Use for \"Which apps send the most logs to Mezmo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date_from":{"description":"Start of the range as an ISO 8601 date-time, for example 2026-10-01T00:00:00Z (only the day is used).","maxLength":30,"title":"Date From","type":"string"},"date_to":{"description":"End of the range as an ISO 8601 date-time, for example 2026-10-08T00:00:00Z (only the day is used).","maxLength":30,"title":"Date To","type":"string"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of apps to return (1 to 1000).","title":"Limit"},"retention":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only items in this variable retention pool, for example 7d.","title":"Retention"}},"required":["date_from","date_to"],"title":"get_usage_by_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/get_usage_by_host":{"post":{"operationId":"get_usage_by_host","summary":"Show log volume in bytes per host for a date range, largest first, from Mezmo usage data. Use for \"Which hosts send the ","description":"Show log volume in bytes per host for a date range, largest first, from Mezmo usage data. Use for \"Which hosts send the most logs to Mezmo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date_from":{"description":"Start of the range as an ISO 8601 date-time, for example 2026-10-01T00:00:00Z (only the day is used).","maxLength":30,"title":"Date From","type":"string"},"date_to":{"description":"End of the range as an ISO 8601 date-time, for example 2026-10-08T00:00:00Z (only the day is used).","maxLength":30,"title":"Date To","type":"string"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of hosts to return (1 to 1000).","title":"Limit"},"retention":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only items in this variable retention pool, for example 7d.","title":"Retention"}},"required":["date_from","date_to"],"title":"get_usage_by_hostArguments","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_usage_by_tag":{"post":{"operationId":"get_usage_by_tag","summary":"Show log volume in bytes per tag for a date range, largest first, from Mezmo usage data. Use for \"Which tags account for","description":"Show log volume in bytes per tag for a date range, largest first, from Mezmo usage data. Use for \"Which tags account for the most Mezmo log volume\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date_from":{"description":"Start of the range as an ISO 8601 date-time, for example 2026-10-01T00:00:00Z (only the day is used).","maxLength":30,"title":"Date From","type":"string"},"date_to":{"description":"End of the range as an ISO 8601 date-time, for example 2026-10-08T00:00:00Z (only the day is used).","maxLength":30,"title":"Date To","type":"string"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of tags to return (1 to 1000).","title":"Limit"},"retention":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only items in this variable retention pool, for example 7d.","title":"Retention"}},"required":["date_from","date_to"],"title":"get_usage_by_tagArguments","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 saved views of the Mezmo account (the answer shape is not documented, so it is returned as the API sends it, tr","description":"List the saved views of the Mezmo account (the answer shape is not documented, so it is returned as the API sends it, trimmed). Use for \"What saved views do I have in Mezmo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"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_categories":{"post":{"operationId":"list_categories","summary":"List Mezmo categories of one kind: views, boards or screens (the answer shape is not documented, so it is returned as th","description":"List Mezmo categories of one kind: views, boards or screens (the answer shape is not documented, so it is returned as the API sends it, trimmed). Use for \"What board categories exist in Mezmo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"description":"Kind of category: views, boards or screens.","enum":["views","boards","screens"],"title":"Type","type":"string"}},"required":["type"],"title":"list_categoriesArguments","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_preset_alerts":{"post":{"operationId":"list_preset_alerts","summary":"List the preset alerts of the Mezmo account (the answer shape is not documented, so it is returned as the API sends it, ","description":"List the preset alerts of the Mezmo account (the answer shape is not documented, so it is returned as the API sends it, trimmed). Use for \"Which preset alerts are configured in Mezmo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_preset_alertsArguments","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/export_logs":{"post":{"operationId":"export_logs","summary":"Export log lines from Mezmo for a time range, up to 10,000 per call, filtered by hosts, apps, levels or search query. Pa","description":"Export log lines from Mezmo for a time range, up to 10,000 per call, filtered by hosts, apps, levels or search query. Page with pagination_id from the previous answer, keeping all other arguments unchanged. Only the first lines are shown to the assistant. Use for \"Show recent error logs from the Mezmo app checkout\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date_from":{"description":"Start time as a UNIX timestamp in seconds or milliseconds, inclusive; 0 means the retention boundary.","maxLength":20,"title":"Date From","type":"string"},"date_to":{"description":"End time as a UNIX timestamp in seconds or milliseconds, inclusive; 0 means now.","maxLength":20,"title":"Date To","type":"string"},"size":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many log lines to return (up to 10000 per call).","title":"Size"},"hosts":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated host names to include.","title":"Hosts"},"apps":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated app names to include.","title":"Apps"},"levels":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated log levels to include, for example 'error,warn'.","title":"Levels"},"query":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Search query to match log lines.","title":"Query"},"prefer":{"anyOf":[{"enum":["head","tail"],"type":"string"},{"type":"null"}],"default":"tail","description":"Return the oldest lines (head) or the newest lines (tail) when more match than fit.","title":"Prefer"},"pagination_id":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Token from the previous answer to get the next batch; leave out for the first call.","title":"Pagination Id"}},"required":["date_from","date_to"],"title":"export_logsArguments","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}}}}