{"openapi":"3.1.0","info":{"title":"We Can Track (BYOK) API","version":"0.1.0","description":"We Can Track (BYOK) lets an AI assistant read your own We Can Track data through the We Can Track API with a key you supply (We Can Track API key). Read-only: 5 tools (list_transactions, get_click_aggregation, list_networks, list_network_accounts, list_websites). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-wecantrack.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-wecantrack/docs"},"termsOfService":"https://connectorbay.com/byok-wecantrack/terms"},"servers":[{"url":"https://byok-wecantrack.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-wecantrack/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_transactions":{"post":{"operationId":"list_transactions","summary":"List affiliate transactions in a date range with sale and commission amounts, status, advertiser and decline reason, fil","description":"List affiliate transactions in a date range with sale and commission amounts, status, advertiser and decline reason, filtered by status, network, network account or website. Use for \"Which approved affiliate transactions were ordered in September 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date_type":{"description":"Which date the range applies to.","enum":["order_date","modified_date","click_date","validation_date","last_wct_update"],"title":"Date Type","type":"string"},"start_date":{"description":"Range start, as YYYY-MM-DDTHH:MM:SS (UTC).","maxLength":200,"title":"Start Date","type":"string"},"end_date":{"description":"Range end, as YYYY-MM-DDTHH:MM:SS (UTC).","maxLength":200,"title":"End Date","type":"string"},"network_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this affiliate network id from list_networks, for example 'awin'.","title":"Network Id"},"network_account_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this network account id from list_network_accounts.","title":"Network Account Id"},"website_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this website id from list_websites.","title":"Website Id"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page_limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Transactions per page (1 to 1000).","title":"Per Page Limit"}},"required":["date_type","start_date","end_date"],"title":"list_transactionsArguments","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_click_aggregation":{"post":{"operationId":"get_click_aggregation","summary":"Aggregate the last N tracked clicks by network, network account or custom index, with click, sale and commission totals.","description":"Aggregate the last N tracked clicks by network, network account or custom index, with click, sale and commission totals. Use for \"Which networks earned the most commission over the last 5000 clicks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"last_clicks":{"description":"How many of the most recent clicks to aggregate (up to 75000).","maximum":75000,"minimum":1,"title":"Last Clicks","type":"integer"},"group_by":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"networks","description":"Field to group by: networks, network_accounts or custom_index_1 to custom_index_5 (comma-separate several).","title":"Group By"},"networks":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only these network ids, comma-separated (up to 5).","title":"Networks"},"network_accounts":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only these network account ids, comma-separated (up to 5).","title":"Network Accounts"},"order_by":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":"commissions","description":"Sort field: clicks, commissions, sales or custom_index_1 to 5.","title":"Order By"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort direction.","title":"Order Direction"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number.","title":"Page"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results per page (1 to 1000).","title":"Limit"}},"required":["last_clicks"],"title":"get_click_aggregationArguments","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_networks":{"post":{"operationId":"list_networks","summary":"List the affiliate networks We Can Track supports with their ids (used as network_id in other tools). Use for \"Which aff","description":"List the affiliate networks We Can Track supports with their ids (used as network_id in other tools). Use for \"Which affiliate networks does We Can Track support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_networksArguments","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_network_accounts":{"post":{"operationId":"list_network_accounts","summary":"List your connected affiliate network accounts with network, name, tags and whether each is enabled. Use for \"Which affi","description":"List your connected affiliate network accounts with network, name, tags and whether each is enabled. Use for \"Which affiliate network accounts have I connected\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_network_accountsArguments","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_websites":{"post":{"operationId":"list_websites","summary":"List the websites registered in your account with id, URL and active flag, optionally one by id or URL. Use for \"Which w","description":"List the websites registered in your account with id, URL and active flag, optionally one by id or URL. Use for \"Which websites are tracked in my We Can Track account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only the website with this id.","title":"Id"},"url":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only the website with this URL.","title":"Url"}},"title":"list_websitesArguments","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}}}}