{"openapi":"3.1.0","info":{"title":"vivenu (BYOK) API","version":"0.1.0","description":"vivenu (BYOK) lets an AI assistant read your own vivenu data through the vivenu API with a key you supply (vivenu seller API key (Dashboard, Settings, Developers, API Keys)). Read-only: 9 tools (list_events, get_event, list_tickets, list_transactions, list_products, list_sales_channels, list_price_tables, list_coupon_series, list_subscription_plans). The BYOK key travels with each request, is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-vivenu.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-vivenu/docs"},"termsOfService":"https://connectorbay.com/byok-vivenu/terms"},"servers":[{"url":"https://byok-vivenu.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-vivenu/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_events":{"post":{"operationId":"list_events","summary":"List the events of the seller with name, start, end, venue and ticket capacity, plus the total count. Page with top and ","description":"List the events of the seller with name, start, end, venue and ticket capacity, plus the total count. Page with top and skip. Use for \"Which events do I have in vivenu\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 1000).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Skip"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only events with this name.","title":"Name"},"sort_dir":{"anyOf":[{"enum":["1","-1"],"type":"string"},{"type":"null"}],"default":null,"description":"1 for oldest first, -1 for newest first.","title":"Sort Dir"}},"title":"list_eventsArguments","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_event":{"post":{"operationId":"get_event","summary":"Get one event with venue, capacity, ticket groups, ticket types with prices and categories. Use for \"Show vivenu event 5","description":"Get one event with venue, capacity, ticket groups, ticket types with prices and categories. Use for \"Show vivenu event 507f191e810c19729de860ea\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"event_id":{"description":"Id of the event (the _id field from list_events).","maxLength":40,"title":"Event Id","type":"string"}},"required":["event_id"],"title":"get_eventArguments","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_tickets":{"post":{"operationId":"list_tickets","summary":"List sold tickets with event, ticket type, category, status, price and seat, without holder names, emails or barcodes. F","description":"List sold tickets with event, ticket type, category, status, price and seat, without holder names, emails or barcodes. Filter by event and status. Use for \"Which tickets were sold for vivenu event 507f191e810c19729de860ea\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 1000).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Skip"},"event":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only tickets of this event id.","title":"Event"},"status":{"anyOf":[{"enum":["VALID","INVALID","RESERVED","DETAILSREQUIRED","BLANK"],"type":"string"},{"type":"null"}],"default":null,"description":"Only tickets with this status.","title":"Status"},"start":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only tickets created from this ISO date-time.","title":"Start"},"end":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only tickets created up to this ISO date-time.","title":"End"}},"title":"list_ticketsArguments","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_transactions":{"post":{"operationId":"list_transactions","summary":"List orders with event, status, payment status, payment method, currency and amount, without buyer names, emails or addr","description":"List orders with event, status, payment status, payment method, currency and amount, without buyer names, emails or addresses. Filter by status, payment status and event. Use for \"What orders came in for vivenu event 507f191e810c19729de860eb\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 1000).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Skip"},"event":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders for this event id.","title":"Event"},"status":{"anyOf":[{"enum":["NEW","RESERVED-BY-SYSTEM","ABORTED","COMPLETE","CANCELED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only orders with this status.","title":"Status"},"payment_status":{"anyOf":[{"enum":["AWAITING","PENDING","RECEIVED","REFUND","CANCELED","FAILED","DISPUTE","CHARGEBACK","POS-RECEIVED","POS-CANCELED","LOCAL-PENDING","LOCAL-AWAITING","LOCAL-RECEIVED","EXTERNAL"],"type":"string"},{"type":"null"}],"default":null,"description":"Only orders with this payment status.","title":"Payment Status"},"start":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders created from this ISO date-time.","title":"Start"},"end":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders created up to this ISO date-time.","title":"End"}},"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/list_products":{"post":{"operationId":"list_products","summary":"List products such as vouchers, add-ons, donations and memberships with name, type and active flag. Page with top and sk","description":"List products such as vouchers, add-ons, donations and memberships with name, type and active flag. Page with top and skip. Use for \"What products and vouchers do I sell in vivenu\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 1000).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Skip"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only products with this name.","title":"Name"},"type":{"anyOf":[{"enum":["voucher","product","donation","membership","addOn"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this product type.","title":"Type"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for active products only, false for inactive only.","title":"Active"}},"title":"list_productsArguments","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_sales_channels":{"post":{"operationId":"list_sales_channels","summary":"List the sales channels (point of sale, distributors, internal back office) with name, type and status. Use for \"Which s","description":"List the sales channels (point of sale, distributors, internal back office) with name, type and status. Use for \"Which sales channels do I have in vivenu\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 1000).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Skip"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only channels with this name.","title":"Name"}},"title":"list_sales_channelsArguments","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_price_tables":{"post":{"operationId":"list_price_tables","summary":"List price tables (price tiers per ticket type and category) with their names. Use for \"Which price tables do I have in ","description":"List price tables (price tiers per ticket type and category) with their names. Use for \"Which price tables do I have in vivenu\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 1000).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Skip"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only price tables with this name.","title":"Name"}},"title":"list_price_tablesArguments","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_coupon_series":{"post":{"operationId":"list_coupon_series","summary":"List coupon series with name, discount type and value, usage limits and validity dates. Coupon codes are not returned. U","description":"List coupon series with name, discount type and value, usage limits and validity dates. Coupon codes are not returned. Use for \"Which coupon series exist in vivenu\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 1000).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Skip"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only coupon series with this name.","title":"Name"}},"title":"list_coupon_seriesArguments","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_subscription_plans":{"post":{"operationId":"list_subscription_plans","summary":"List subscription plans with name, pricing policy and variants. Page with top and skip. Use for \"Which subscription plan","description":"List subscription plans with name, pricing policy and variants. Page with top and skip. Use for \"Which subscription plans do I have in vivenu\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many records to return (1 to 1000).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging.","title":"Skip"}},"title":"list_subscription_plansArguments","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}}}}