{"openapi":"3.1.0","info":{"title":"Rebrandly Reports (BYOK) API","version":"0.1.0","description":"Rebrandly Reports (BYOK) lets an AI assistant read your own Rebrandly Reports data through the Rebrandly Reports API with a key you supply (Rebrandly API key). Read-only: 6 tools (list_report_templates, get_report_template, count_report_templates, get_template_schedule, list_template_executions, list_report_results). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-rebrandly-reports.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-rebrandly-reports/docs"},"termsOfService":"https://connectorbay.com/byok-rebrandly-reports/terms"},"servers":[{"url":"https://byok-rebrandly-reports.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-rebrandly-reports/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_report_templates":{"post":{"operationId":"list_report_templates","summary":"List the report templates of the workspace with name, description, schedule frequency, next run and last execution time.","description":"List the report templates of the workspace with name, description, schedule frequency, next run and last execution time. Pages of up to 25; pass the last template id as last. Use for \"Which scheduled reports do I have in Rebrandly\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":25,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 25, default 25).","title":"Limit"},"last":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"ID of the last item of the previous answer, to get the next page.","title":"Last"},"schedule_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only templates with an active schedule, false for the others.","title":"Schedule Active"},"schedule_elapsed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only templates whose schedule has elapsed.","title":"Schedule Elapsed"}},"title":"list_report_templatesArguments","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_report_template":{"post":{"operationId":"get_report_template","summary":"Get one report template with its name, description, query definition and schedule summary. Use for \"Show the details of ","description":"Get one report template with its name, description, query definition and schedule summary. Use for \"Show the details of this Rebrandly report template\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"template_id":{"description":"Report template ID (from list_report_templates).","maxLength":64,"title":"Template Id","type":"string"}},"required":["template_id"],"title":"get_report_templateArguments","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_report_templates":{"post":{"operationId":"count_report_templates","summary":"Count the report templates of the workspace. Use for \"How many report templates do I have in Rebrandly\".","description":"Count the report templates of the workspace. Use for \"How many report templates do I have in Rebrandly\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"count_report_templatesArguments","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_template_schedule":{"post":{"operationId":"get_template_schedule","summary":"Get when a report template runs: recurrence, time span, timezone and next execution. Use for \"When does this Rebrandly r","description":"Get when a report template runs: recurrence, time span, timezone and next execution. Use for \"When does this Rebrandly report run next\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"template_id":{"description":"Report template ID (from list_report_templates).","maxLength":64,"title":"Template Id","type":"string"}},"required":["template_id"],"title":"get_template_scheduleArguments","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_template_executions":{"post":{"operationId":"list_template_executions","summary":"List past runs of one report template with status, start and completion time and any error. Use for \"Did my last Rebrand","description":"List past runs of one report template with status, start and completion time and any error. Use for \"Did my last Rebrandly report run succeed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"template_id":{"description":"Report template ID (from list_report_templates).","maxLength":64,"title":"Template Id","type":"string"},"limit":{"anyOf":[{"maximum":25,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 25, default 25).","title":"Limit"},"last":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"ID of the last item of the previous answer, to get the next page.","title":"Last"}},"required":["template_id"],"title":"list_template_executionsArguments","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_report_results":{"post":{"operationId":"list_report_results","summary":"List recent report runs across all templates of the workspace with status, timing and any error message. Use for \"Show t","description":"List recent report runs across all templates of the workspace with status, timing and any error message. Use for \"Show the latest report runs in Rebrandly\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":25,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 25, default 25).","title":"Limit"},"last":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"ID of the last item of the previous answer, to get the next page.","title":"Last"}},"title":"list_report_resultsArguments","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}}}}