{"openapi":"3.1.0","info":{"title":"ClickMeter (BYOK) API","version":"0.1.0","description":"ClickMeter (BYOK) lets an AI assistant read your own ClickMeter data through the ClickMeter API with a key you supply (ClickMeter API key). Read-only: 12 tools (get_account, get_plan, list_groups, get_group, list_datapoints, get_datapoint, list_domains, list_conversions, get_conversion, get_account_stats, get_datapoint_stats, get_group_stats). The BYOK key travels with each request, is used for...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-clickmeter.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-clickmeter/docs"},"termsOfService":"https://connectorbay.com/byok-clickmeter/terms"},"servers":[{"url":"https://byok-clickmeter.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-clickmeter/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 ClickMeter account the key belongs to: name, company, time zone, registration date and bonus clicks. Use for \"W","description":"Show the ClickMeter account the key belongs to: name, company, time zone, registration date and bonus clicks. Use for \"Which ClickMeter account is my API key connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"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_plan":{"post":{"operationId":"get_plan","summary":"Show the current ClickMeter plan: monthly event allowance, events used, datapoint limits and billing period. Use for \"Ho","description":"Show the current ClickMeter plan: monthly event allowance, events used, datapoint limits and billing period. Use for \"How many of my monthly ClickMeter events have I used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_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_groups":{"post":{"operationId":"list_groups","summary":"List campaign groups (folders of tracking links), optionally filtered by status, tag or text. Returns ids and URIs; use ","description":"List campaign groups (folders of tracking links), optionally filtered by status, tag or text. Returns ids and URIs; use get_group for details. Use for \"What campaign groups do I have in ClickMeter\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum items to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Position to start from, for paging (default 0).","title":"Offset"},"status":{"anyOf":[{"enum":["active","deleted"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by group status.","title":"Status"},"text_search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups matching this text.","title":"Text Search"},"created_after":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"Exclude groups created before this day (YYYYMMDD).","title":"Created After"}},"title":"list_groupsArguments","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_group":{"post":{"operationId":"get_group","summary":"Get one group: name, notes, tags, creation date and whether it is public. Use for \"What are the details of ClickMeter gr","description":"Get one group: name, notes, tags, creation date and whether it is public. Use for \"What are the details of ClickMeter group 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric group id, for example 12345.","title":"Id","type":"integer"}},"required":["id"],"title":"get_groupArguments","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_datapoints":{"post":{"operationId":"list_datapoints","summary":"List tracking links and pixels (datapoints), optionally filtered by type, status, tag or text. Returns ids and URIs; use","description":"List tracking links and pixels (datapoints), optionally filtered by type, status, tag or text. Returns ids and URIs; use get_datapoint for details. Use for \"Which tracking links do I have in ClickMeter\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum items to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Position to start from, for paging (default 0).","title":"Offset"},"type":{"anyOf":[{"enum":["tl","tp"],"type":"string"},{"type":"null"}],"default":null,"description":"tl for tracking links, tp for tracking pixels.","title":"Type"},"status":{"anyOf":[{"enum":["active","paused","spam","deleted"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by status.","title":"Status"},"text_search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only datapoints matching this text.","title":"Text Search"},"only_favorites":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only favourites.","title":"Only Favorites"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order.","title":"Sort Direction"}},"title":"list_datapointsArguments","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_datapoint":{"post":{"operationId":"get_datapoint","summary":"Get one tracking link or pixel: name, title, status, group, tags, tracking code and destination settings. Use for \"What ","description":"Get one tracking link or pixel: name, title, status, group, tags, tracking code and destination settings. Use for \"What is the status and group of ClickMeter datapoint 67890\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric datapoint id, for example 67890.","title":"Id","type":"integer"}},"required":["id"],"title":"get_datapointArguments","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_domains":{"post":{"operationId":"list_domains","summary":"List the domains available for your tracking links (system, go, personal or dedicated). Returns ids and URIs. Use for \"W","description":"List the domains available for your tracking links (system, go, personal or dedicated). Returns ids and URIs. Use for \"Which domains can I use for ClickMeter links\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum items to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Position to start from, for paging (default 0).","title":"Offset"},"type":{"anyOf":[{"enum":["system","go","personal","dedicated"],"type":"string"},{"type":"null"}],"default":"system","description":"Domain type: system, go, personal or dedicated.","title":"Type"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only domains with this name.","title":"Name"}},"title":"list_domainsArguments","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_conversions":{"post":{"operationId":"list_conversions","summary":"List conversion definitions used to count goals. Returns ids and URIs; use get_conversion for details. Use for \"What con","description":"List conversion definitions used to count goals. Returns ids and URIs; use get_conversion for details. Use for \"What conversions are defined in my ClickMeter account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum items to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Position to start from, for paging (default 0).","title":"Offset"},"status":{"anyOf":[{"enum":["active","deleted"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by status.","title":"Status"},"text_search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversions matching this text.","title":"Text Search"}},"title":"list_conversionsArguments","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_conversion":{"post":{"operationId":"get_conversion","summary":"Get one conversion definition: name, code, value, protocol and creation date. Use for \"What is the value of ClickMeter c","description":"Get one conversion definition: name, code, value, protocol and creation date. Use for \"What is the value of ClickMeter conversion 555\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"conversion_id":{"description":"Numeric conversion id.","title":"Conversion Id","type":"integer"}},"required":["conversion_id"],"title":"get_conversionArguments","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_stats":{"post":{"operationId":"get_account_stats","summary":"Get click, view and conversion totals for the whole account over a time frame. Use for \"How many clicks did my ClickMete","description":"Get click, view and conversion totals for the whole account over a time frame. Use for \"How many clicks did my ClickMeter account get in the last 30 days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"time_frame":{"description":"Period to report on. Use 'custom' together with from_day and to_day.","enum":["today","yesterday","last7","last30","lastmonth","currentmonth","previousmonth","last90","last120","last180","last12months","lastyear","currentyear","beginning","custom"],"title":"Time Frame","type":"string"},"from_day":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"Start day as YYYYMMDD; used only when time_frame is 'custom'.","title":"From Day"},"to_day":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"End day as YYYYMMDD; used only when time_frame is 'custom'.","title":"To Day"}},"required":["time_frame"],"title":"get_account_statsArguments","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_datapoint_stats":{"post":{"operationId":"get_datapoint_stats","summary":"Get click, view and conversion totals for one tracking link or pixel over a time frame. Use for \"How many clicks did Cli","description":"Get click, view and conversion totals for one tracking link or pixel over a time frame. Use for \"How many clicks did ClickMeter datapoint 67890 get last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric datapoint id.","title":"Id","type":"integer"},"time_frame":{"description":"Period to report on. Use 'custom' together with from_day and to_day.","enum":["today","yesterday","last7","last30","lastmonth","currentmonth","previousmonth","last90","last120","last180","last12months","lastyear","currentyear","beginning","custom"],"title":"Time Frame","type":"string"},"from_day":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"Start day as YYYYMMDD; used only when time_frame is 'custom'.","title":"From Day"},"to_day":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"End day as YYYYMMDD; used only when time_frame is 'custom'.","title":"To Day"}},"required":["id","time_frame"],"title":"get_datapoint_statsArguments","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_group_stats":{"post":{"operationId":"get_group_stats","summary":"Get click, view and conversion totals for one campaign group over a time frame. Use for \"How did ClickMeter group 12345 ","description":"Get click, view and conversion totals for one campaign group over a time frame. Use for \"How did ClickMeter group 12345 perform this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric group id.","title":"Id","type":"integer"},"time_frame":{"description":"Period to report on. Use 'custom' together with from_day and to_day.","enum":["today","yesterday","last7","last30","lastmonth","currentmonth","previousmonth","last90","last120","last180","last12months","lastyear","currentyear","beginning","custom"],"title":"Time Frame","type":"string"},"from_day":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"Start day as YYYYMMDD; used only when time_frame is 'custom'.","title":"From Day"},"to_day":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"End day as YYYYMMDD; used only when time_frame is 'custom'.","title":"To Day"}},"required":["id","time_frame"],"title":"get_group_statsArguments","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}}}}