{"openapi":"3.1.0","info":{"title":"Re:amaze (BYOK) API","version":"0.1.0","description":"Re:amaze (BYOK) lets an AI assistant read your own Re:amaze data through the Re:amaze API with a key you supply (Re:amaze login email). Read-only: 9 tools (list_conversations, get_conversation, list_conversation_messages, list_messages, list_contacts, list_channels, list_staff, list_articles, list_satisfaction_ratings). 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-reamaze.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-reamaze/docs"},"termsOfService":"https://connectorbay.com/byok-reamaze/terms"},"servers":[{"url":"https://byok-reamaze.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-reamaze/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_conversations":{"post":{"operationId":"list_conversations","summary":"List Re:amaze conversations of the brand with subject, status (0 open, 1 responded, 2 done, 3 spam, 4 archived, 5 on hol","description":"List Re:amaze conversations of the brand with subject, status (0 open, 1 responded, 2 done, 3 spam, 4 archived, 5 on hold), author, assignee, channel and tags. Only unarchived conversations are returned unless filter is set. Use for \"Which Re:amaze conversations are open and unassigned\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand":{"description":"Your Re:amaze brand, the part before .reamaze.io (for example 'acme' for acme.reamaze.io). The brand host is shown in Brand Settings.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Brand","type":"string"},"filter":{"anyOf":[{"enum":["archived","open","unassigned","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Which conversations to show.","title":"Filter"},"tag":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma separated tags; only conversations with these tags.","title":"Tag"},"category":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations of the channel with this slug.","title":"Category"},"for_email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations relevant to the user with this email.","title":"For Email"},"sort":{"anyOf":[{"enum":["updated","changed"],"type":"string"},{"type":"null"}],"default":null,"description":"updated sorts by last customer update, changed by any update; the default is creation time.","title":"Sort"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations whose latest customer message is at or after this ISO 8601 date-time.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations whose latest customer message is at or before this ISO 8601 date-time.","title":"End Date"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer reports page_size, page_count and total_count.","title":"Page"}},"required":["brand"],"title":"list_conversationsArguments","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_conversation":{"post":{"operationId":"get_conversation","summary":"Get one Re:amaze conversation by slug with status, tags, author, assignee, channel and the latest customer and staff mes","description":"Get one Re:amaze conversation by slug with status, tags, author, assignee, channel and the latest customer and staff messages. Use for \"Show Re:amaze conversation do-you-read-me\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand":{"description":"Your Re:amaze brand, the part before .reamaze.io (for example 'acme' for acme.reamaze.io). The brand host is shown in Brand Settings.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Brand","type":"string"},"slug":{"description":"Conversation slug (from list_conversations).","maxLength":200,"title":"Slug","type":"string"}},"required":["brand","slug"],"title":"get_conversationArguments","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_conversation_messages":{"post":{"operationId":"list_conversation_messages","summary":"List the messages of one Re:amaze conversation with body, sender, visibility (0 regular, 1 internal note) and time. Use ","description":"List the messages of one Re:amaze conversation with body, sender, visibility (0 regular, 1 internal note) and time. Use for \"What was said in Re:amaze conversation knock-knock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand":{"description":"Your Re:amaze brand, the part before .reamaze.io (for example 'acme' for acme.reamaze.io). The brand host is shown in Brand Settings.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Brand","type":"string"},"slug":{"description":"Conversation slug (from list_conversations).","maxLength":200,"title":"Slug","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer reports page_size, page_count and total_count.","title":"Page"}},"required":["brand","slug"],"title":"list_conversation_messagesArguments","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_messages":{"post":{"operationId":"list_messages","summary":"List recent Re:amaze messages across all conversations of the brand, filterable by sender, staff or customer, channel an","description":"List recent Re:amaze messages across all conversations of the brand, filterable by sender, staff or customer, channel and dates. Use for \"What did customers write to Re:amaze today\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand":{"description":"Your Re:amaze brand, the part before .reamaze.io (for example 'acme' for acme.reamaze.io). The brand host is shown in Brand Settings.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Brand","type":"string"},"filter":{"anyOf":[{"enum":["staff","customer"],"type":"string"},{"type":"null"}],"default":null,"description":"Only staff messages or only customer messages.","title":"Filter"},"sent_by":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages sent by the user with this email.","title":"Sent By"},"tag":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma separated tags of the conversation.","title":"Tag"},"category":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages of the channel with this slug.","title":"Category"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages created at or after this ISO 8601 date-time.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages created at or before this ISO 8601 date-time.","title":"End Date"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer reports page_size, page_count and total_count.","title":"Page"}},"required":["brand"],"title":"list_messagesArguments","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_contacts":{"post":{"operationId":"list_contacts","summary":"List Re:amaze contacts (account wide) with name, email and notes; search by name or email. Use for \"Find the Re:amaze co","description":"List Re:amaze contacts (account wide) with name, email and notes; search by name or email. Use for \"Find the Re:amaze contact jane@example.com\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand":{"description":"Your Re:amaze brand, the part before .reamaze.io (for example 'acme' for acme.reamaze.io). The brand host is shown in Brand Settings.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Brand","type":"string"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text matched against name and email.","title":"Q"},"type":{"anyOf":[{"enum":["email","mobile"],"type":"string"},{"type":"null"}],"default":null,"description":"Only contacts that have an email address or a mobile number.","title":"Type"},"sort":{"anyOf":[{"const":"date","type":"string"},{"type":"null"}],"default":null,"description":"date sorts by newest first; the default is by name.","title":"Sort"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer reports page_size, page_count and total_count.","title":"Page"}},"required":["brand"],"title":"list_contactsArguments","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_channels":{"post":{"operationId":"list_channels","summary":"List the Re:amaze channels of the brand with slug, channel type number (1 email, 6 chat, 9 SMS, 15 WhatsApp), email addr","description":"List the Re:amaze channels of the brand with slug, channel type number (1 email, 6 chat, 9 SMS, 15 WhatsApp), email address and visibility. Use for \"Which channels does my Re:amaze brand have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand":{"description":"Your Re:amaze brand, the part before .reamaze.io (for example 'acme' for acme.reamaze.io). The brand host is shown in Brand Settings.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Brand","type":"string"},"channel":{"anyOf":[{"enum":["email","facebook","twitter","chat"],"type":"string"},{"type":"null"}],"default":null,"description":"Only channels of this type.","title":"Channel"}},"required":["brand"],"title":"list_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_staff":{"post":{"operationId":"list_staff","summary":"List the Re:amaze staff users of the account with name, email and creation date. Use for \"Who is on my Re:amaze staff\".","description":"List the Re:amaze staff users of the account with name, email and creation date. Use for \"Who is on my Re:amaze staff\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand":{"description":"Your Re:amaze brand, the part before .reamaze.io (for example 'acme' for acme.reamaze.io). The brand host is shown in Brand Settings.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Brand","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer reports page_size, page_count and total_count.","title":"Page"}},"required":["brand"],"title":"list_staffArguments","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_articles":{"post":{"operationId":"list_articles","summary":"List help articles of the Re:amaze brand (published by default) with title, slug, status, topic and author; search by ke","description":"List help articles of the Re:amaze brand (published by default) with title, slug, status, topic and author; search by keyword. Use for \"Which Re:amaze help articles mention refunds\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand":{"description":"Your Re:amaze brand, the part before .reamaze.io (for example 'acme' for acme.reamaze.io). The brand host is shown in Brand Settings.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Brand","type":"string"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword search over articles.","title":"Q"},"status":{"anyOf":[{"enum":["published","draft","internal"],"type":"string"},{"type":"null"}],"default":null,"description":"Which articles to show (published by default).","title":"Status"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer reports page_size, page_count and total_count.","title":"Page"}},"required":["brand"],"title":"list_articlesArguments","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_satisfaction_ratings":{"post":{"operationId":"list_satisfaction_ratings","summary":"List customer satisfaction ratings (1 to 5) with comment, conversation id and assignee id, newest first. Needs the acces","description":"List customer satisfaction ratings (1 to 5) with comment, conversation id and assignee id, newest first. Needs the access_reports permission. Use for \"What satisfaction ratings did Re:amaze customers give recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"brand":{"description":"Your Re:amaze brand, the part before .reamaze.io (for example 'acme' for acme.reamaze.io). The brand host is shown in Brand Settings.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Brand","type":"string"},"rating":{"anyOf":[{"maximum":5,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only ratings with this value.","title":"Rating"},"assignee_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only ratings of conversations assigned to this staff id.","title":"Assignee Id"},"created_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only ratings created after this ISO 8601 date-time.","title":"Created After"},"created_before":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only ratings created before this ISO 8601 date-time.","title":"Created Before"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer reports page_size, page_count and total_count.","title":"Page"}},"required":["brand"],"title":"list_satisfaction_ratingsArguments","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}}}}