{"openapi":"3.1.0","info":{"title":"Reply.io (BYOK) API","version":"0.1.0","description":"Reply.io (BYOK) lets an AI assistant read your own Reply.io data through the Reply.io API with a key you supply (Reply API key (needs read scopes such as contacts:read and sequences:read)). Read-only: 12 tools (whoami, list_team_users, list_sequences, get_sequence, list_sequence_contacts, list_contacts, list_contact_lists, list_contact_accounts, list_tasks, list_inbox_threads,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-replyio.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-replyio/docs"},"termsOfService":"https://connectorbay.com/byok-replyio/terms"},"servers":[{"url":"https://byok-replyio.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-replyio/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/whoami":{"post":{"operationId":"whoami","summary":"Show the Reply user and team the key belongs to. Use for \"Which Reply.io user is my API key for\".","description":"Show the Reply user and team the key belongs to. Use for \"Which Reply.io user is my API key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"whoamiArguments","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_team_users":{"post":{"operationId":"list_team_users","summary":"List the users of your Reply team with name, email and role. Use for \"Who is on my Reply.io team\".","description":"List the users of your Reply team with name, email and role. Use for \"Who is on my Reply.io team\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_team_usersArguments","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_sequences":{"post":{"operationId":"list_sequences","summary":"List Reply sequences with owner, status (new, active, paused), health and creation time. Filter by status, name, owner o","description":"List Reply sequences with owner, status (new, active, paused), health and creation time. Filter by status, name, owner or folder. Use for \"Which Reply.io sequences are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["active","paused","new"],"type":"string"},{"type":"null"}],"default":null,"description":"Only sequences with this status.","title":"Status"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only sequences whose name matches this text.","title":"Name"},"owner_user_id":{"anyOf":[{"maximum":999999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only sequences owned by this numeric user id.","title":"Owner User Id"},"folder_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only sequences in this folder id (see list_sequence_folders).","title":"Folder Id"},"is_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to show archived sequences.","title":"Is Archived"},"sort_by":{"anyOf":[{"enum":["created","name","status"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by created, name or status.","title":"Sort By"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"asc or desc.","title":"Sort Direction"},"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 1000; this connector's default is 25).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; more results exist while hasMore is true.","title":"Skip"}},"title":"list_sequencesArguments","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_sequence":{"post":{"operationId":"get_sequence","summary":"Get one Reply sequence: status, health, schedule, connected email accounts and sending settings. Use for \"Show Reply.io ","description":"Get one Reply sequence: status, health, schedule, connected email accounts and sending settings. Use for \"Show Reply.io sequence 1234\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sequence_id":{"description":"Numeric Reply sequence id, from list_sequences.","maximum":999999999999,"minimum":1,"title":"Sequence Id","type":"integer"}},"required":["sequence_id"],"title":"get_sequenceArguments","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_sequence_contacts":{"post":{"operationId":"list_sequence_contacts","summary":"List the contacts enrolled in a Reply sequence with their status in the sequence, reply and bounce flags and current ste","description":"List the contacts enrolled in a Reply sequence with their status in the sequence, reply and bounce flags and current step. Use for \"Who is enrolled in Reply.io sequence 1234 and has replied\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sequence_id":{"description":"Numeric Reply sequence id, from list_sequences.","maximum":999999999999,"minimum":1,"title":"Sequence Id","type":"integer"},"sort_by":{"anyOf":[{"enum":["addingDate","email","firstName","lastName","company","statusInSequence"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by addingDate, email, firstName, lastName, company or statusInSequence.","title":"Sort By"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"asc or desc.","title":"Sort Direction"},"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 1000; this connector's default is 25).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; more results exist while hasMore is true.","title":"Skip"}},"required":["sequence_id"],"title":"list_sequence_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_contacts":{"post":{"operationId":"list_contacts","summary":"List Reply contacts, or look one up by exact email or LinkedIn URL, with company, title, location and stage. Use for \"Fi","description":"List Reply contacts, or look one up by exact email or LinkedIn URL, with company, title, location and stage. Use for \"Find the Reply.io contact jane@example.com\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact email address to look up.","title":"Email"},"linkedin":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact LinkedIn profile URL to look up.","title":"Linkedin"},"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 1000; this connector's default is 25).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; more results exist while hasMore is true.","title":"Skip"}},"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_contact_lists":{"post":{"operationId":"list_contact_lists","summary":"List Reply contact lists with name and sharing flag. Use for \"What contact lists do I have in Reply.io\".","description":"List Reply contact lists with name and sharing flag. Use for \"What contact lists do I have in Reply.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only lists whose name matches this text.","title":"Search"},"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 1000; this connector's default is 25).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; more results exist while hasMore is true.","title":"Skip"}},"title":"list_contact_listsArguments","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_contact_accounts":{"post":{"operationId":"list_contact_accounts","summary":"List Reply accounts (companies) with domain, industry, size, country, stage and activity dates. Use for \"Which company a","description":"List Reply accounts (companies) with domain, industry, size, country, stage and activity dates. Use for \"Which company accounts are in Reply.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only accounts matching this text.","title":"Search"},"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 1000; this connector's default is 25).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; more results exist while hasMore is true.","title":"Skip"}},"title":"list_contact_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_tasks":{"post":{"operationId":"list_tasks","summary":"List Reply tasks (to-dos, calls, meetings, LinkedIn and manual email steps) with type, status, assignee and due date. Us","description":"List Reply tasks (to-dos, calls, meetings, LinkedIn and manual email steps) with type, status, assignee and due date. Use for \"What Reply.io tasks are due\".","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 results to return (1 to 1000; this connector's default is 25).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; more results exist while hasMore is true.","title":"Skip"}},"title":"list_tasksArguments","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_inbox_threads":{"post":{"operationId":"list_inbox_threads","summary":"List Reply inbox threads with subject, preview, contact, sequence, category and last activity. Use for \"What is in my Re","description":"List Reply inbox threads with subject, preview, contact, sequence, category and last activity. Use for \"What is in my Reply.io inbox\".","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 results to return (1 to 1000; this connector's default is 25).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; more results exist while hasMore is true.","title":"Skip"}},"title":"list_inbox_threadsArguments","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_email_accounts":{"post":{"operationId":"list_email_accounts","summary":"List the email accounts connected to Reply with sender name, type, daily limit and connection status. No passwords are r","description":"List the email accounts connected to Reply with sender name, type, daily limit and connection status. No passwords are returned. Use for \"Which email accounts are connected to Reply.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"my":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only your own accounts.","title":"My"},"top":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 1000; this connector's default is 25).","title":"Top"},"skip":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging; more results exist while hasMore is true.","title":"Skip"}},"title":"list_email_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_sequence_folders":{"post":{"operationId":"list_sequence_folders","summary":"List Reply sequence folders (id and name). Use for \"What sequence folders exist in Reply.io\".","description":"List Reply sequence folders (id and name). Use for \"What sequence folders exist in Reply.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_sequence_foldersArguments","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}}}}