{"openapi":"3.1.0","info":{"title":"Everflow (BYOK) API","version":"0.1.0","description":"Everflow (BYOK) lets an AI assistant read your own Everflow data through the Everflow API with a key you supply (Everflow network API key). Read-only: 12 tools (get_performance_report, get_performance_summary, list_conversions, find_offers, find_affiliates, find_advertisers, get_offer, get_affiliate, get_advertiser, list_offer_categories, list_timezones, search_everything). The BYOK key travels...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-everflow.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-everflow/docs"},"termsOfService":"https://connectorbay.com/byok-everflow/terms"},"servers":[{"url":"https://byok-everflow.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-everflow/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_performance_report":{"post":{"operationId":"get_performance_report","summary":"Report clicks, conversions, payout, revenue and profit for a date range, grouped by one column such as offer, partner (a","description":"Report clicks, conversions, payout, revenue and profit for a date range, grouped by one column such as offer, partner (affiliate), advertiser, country or date. Use for \"How did my Everflow offers perform last week, by offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"description":"First day of the range, YYYY-MM-DD, read as midnight in the chosen time zone.","maxLength":10,"title":"From Date","type":"string"},"to_date":{"description":"Last day of the range, YYYY-MM-DD (at most one year after from_date).","maxLength":10,"title":"To Date","type":"string"},"timezone_id":{"description":"Everflow time zone id that decides where days start (67 is UTC; list_timezones shows all ids).","maximum":1000,"minimum":1,"title":"Timezone Id","type":"integer"},"group_by":{"description":"What to group the rows by.","enum":["offer","offer_group","affiliate","advertiser","creative","category","country","platform","device_type","browser","campaign","source_id","date","week","month","hour","event_name","language","region","city"],"title":"Group By","type":"string"},"currency_id":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":"USD","description":"Three-letter currency code for money columns, for example USD.","title":"Currency Id"}},"required":["from_date","to_date","timezone_id","group_by"],"title":"get_performance_reportArguments","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_performance_summary":{"post":{"operationId":"get_performance_summary","summary":"Get the totals of impressions, clicks, conversions, payout, revenue, profit and margin for a date range. Use for \"What w","description":"Get the totals of impressions, clicks, conversions, payout, revenue, profit and margin for a date range. Use for \"What were my total Everflow revenue and profit this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"description":"First day of the range, YYYY-MM-DD, read as midnight in the chosen time zone.","maxLength":10,"title":"From Date","type":"string"},"to_date":{"description":"Last day of the range, YYYY-MM-DD (at most one year after from_date).","maxLength":10,"title":"To Date","type":"string"},"timezone_id":{"description":"Everflow time zone id that decides where days start (67 is UTC; list_timezones shows all ids).","maximum":1000,"minimum":1,"title":"Timezone Id","type":"integer"},"currency_id":{"description":"Three-letter currency code for money columns, for example USD.","maxLength":3,"title":"Currency Id","type":"string"}},"required":["from_date","to_date","timezone_id","currency_id"],"title":"get_performance_summaryArguments","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 conversions in a date range with status, payout, revenue, sale amount, country and order id; customer email, IP and","description":"List conversions in a date range with status, payout, revenue, sale amount, country and order id; customer email, IP and device ids are left out. Use for \"Which Everflow conversions came in yesterday and what did they pay\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"description":"Start of the range, 'YYYY-MM-DD HH:MM:SS' in the chosen time zone.","maxLength":19,"title":"From Date","type":"string"},"to_date":{"description":"End of the range, 'YYYY-MM-DD HH:MM:SS' in the chosen time zone.","maxLength":19,"title":"To Date","type":"string"},"timezone_id":{"description":"Everflow time zone id that decides where days start (67 is UTC; list_timezones shows all ids).","maximum":1000,"minimum":1,"title":"Timezone Id","type":"integer"},"currency_id":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":"USD","description":"Three-letter currency code for money columns, for example USD.","title":"Currency Id"},"show_conversions":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to include base conversions.","title":"Show Conversions"},"show_events":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include post-conversion events as well.","title":"Show Events"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Results per page (1 to 50).","title":"Page Size"}},"required":["from_date","to_date","timezone_id"],"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/find_offers":{"post":{"operationId":"find_offers","summary":"Search offers by name, filtered by status, with advertiser, payout, revenue and today's clicks, paged. Use for \"Which of","description":"Search offers by name, filtered by status, with advertiser, payout, revenue and today's clicks, paged. Use for \"Which of my Everflow offers are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"","description":"Text to search in the name; leave empty to list everything.","title":"Search"},"offer_status":{"anyOf":[{"enum":["active","paused","pending","deleted"],"type":"string"},{"type":"null"}],"default":"active","description":"Only offers with this status.","title":"Offer Status"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Results per page (1 to 50).","title":"Page Size"}},"title":"find_offersArguments","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/find_affiliates":{"post":{"operationId":"find_affiliates","summary":"Search partners (affiliates) by name and account status, with managers, balance and today's revenue, paged. Use for \"Whi","description":"Search partners (affiliates) by name and account status, with managers, balance and today's revenue, paged. Use for \"Which Everflow partners are pending approval\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"","description":"Text to search in the name; leave empty to list everything.","title":"Search"},"account_status":{"anyOf":[{"enum":["active","inactive","pending","suspended"],"type":"string"},{"type":"null"}],"default":null,"description":"Only partners with this status.","title":"Account Status"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Results per page (1 to 50).","title":"Page Size"}},"title":"find_affiliatesArguments","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/find_advertisers":{"post":{"operationId":"find_advertisers","summary":"Search advertisers by name and account status, with managers and today's revenue, paged. Use for \"Which advertisers do I","description":"Search advertisers by name and account status, with managers and today's revenue, paged. Use for \"Which advertisers do I have in Everflow\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"","description":"Text to search in the name; leave empty to list everything.","title":"Search"},"account_status":{"anyOf":[{"enum":["active","inactive","suspended"],"type":"string"},{"type":"null"}],"default":null,"description":"Only advertisers with this status.","title":"Account Status"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Results per page (1 to 50).","title":"Page Size"}},"title":"find_advertisersArguments","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_offer":{"post":{"operationId":"get_offer","summary":"Get one offer by id: status, visibility, advertiser, category, destination and preview URLs, tracking and attribution me","description":"Get one offer by id: status, visibility, advertiser, category, destination and preview URLs, tracking and attribution method, caps and scrub rate. Use for \"Show the settings of Everflow offer 25\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"offer_id":{"description":"Everflow offer id, from find_offers.","title":"Offer Id","type":"integer"}},"required":["offer_id"],"title":"get_offerArguments","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_affiliate":{"post":{"operationId":"get_affiliate","summary":"Get one partner (affiliate) by id: status, default currency, traffic source and creation time. Use for \"Show Everflow pa","description":"Get one partner (affiliate) by id: status, default currency, traffic source and creation time. Use for \"Show Everflow partner 12\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"affiliate_id":{"description":"Everflow partner (affiliate) id, from find_affiliates.","title":"Affiliate Id","type":"integer"}},"required":["affiliate_id"],"title":"get_affiliateArguments","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_advertiser":{"post":{"operationId":"get_advertiser","summary":"Get one advertiser by id. Use for \"Show Everflow advertiser 7\".","description":"Get one advertiser by id. Use for \"Show Everflow advertiser 7\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"advertiser_id":{"description":"Everflow advertiser id, from find_advertisers.","title":"Advertiser Id","type":"integer"}},"required":["advertiser_id"],"title":"get_advertiserArguments","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_offer_categories":{"post":{"operationId":"list_offer_categories","summary":"List the offer categories defined in the network. Use for \"What offer categories exist in my Everflow network\".","description":"List the offer categories defined in the network. Use for \"What offer categories exist in my Everflow network\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_offer_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_timezones":{"post":{"operationId":"list_timezones","summary":"List Everflow time zones with their ids, to use as timezone_id in reports. Use for \"What is the Everflow timezone id for","description":"List Everflow time zones with their ids, to use as timezone_id in reports. Use for \"What is the Everflow timezone id for America/New_York\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_timezonesArguments","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/search_everything":{"post":{"operationId":"search_everything","summary":"Search across offers, partners and advertisers at once by a text query. Use for \"Find anything in Everflow called 'insur","description":"Search across offers, partners and advertisers at once by a text query. Use for \"Find anything in Everflow called 'insurance'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Text to search for.","maxLength":100,"title":"Q","type":"string"}},"required":["q"],"title":"search_everythingArguments","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}}}}