{"openapi":"3.1.0","info":{"title":"Lime Connect (BYOK) API","version":"0.1.0","description":"Lime Connect (BYOK) lets an AI assistant read your own Lime Connect data through the Lime Connect API with a key you supply (Lime Connect API token (Dashboard > API; JSON API is an Enterprise feature)). Read-only: 8 tools (list_conversations, list_all_conversations, get_conversation, list_conversation_messages, list_contacts, get_contact, list_operators, get_operator_slots). 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-userlike.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-userlike/docs"},"termsOfService":"https://connectorbay.com/byok-userlike/terms"},"servers":[{"url":"https://byok-userlike.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-userlike/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 recent conversations (up to 10,000 reachable) with status, topics, rating, contact, widget and last message. Newest","description":"List recent conversations (up to 10,000 reachable) with status, topics, rating, contact, widget and last message. Newest first unless ordering is set. Use for \"Which Lime Connect conversations ended this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations with this status, for example new, pending or ended.","title":"Status"},"operator_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only conversations of this operator id.","title":"Operator Id"},"contact_identity_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only conversations of this contact id.","title":"Contact Identity Id"},"um_widget_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only conversations held via this chat widget id.","title":"Um Widget Id"},"updated_at_from_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations updated after this ISO 8601 time, for example 2026-01-01T00:00:00.","title":"Updated At From Date"},"updated_at_to_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations updated before this ISO 8601 time.","title":"Updated At To Date"},"search_query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Keywords searched in contact name, email, street, city and message text (prefix matching, any keyword matches).","title":"Search Query"},"ordering":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: id, -id, last_message_sent_at, -last_message_sent_at, contact_first_message_sent_at, -contact_first_message_sent_at, contact_last_message_sent_at or -contact_last_message_sent_at.","title":"Ordering"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records to return (1 to 100, default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging (the list holds at most 10,000 records).","title":"Offset"}},"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/list_all_conversations":{"post":{"operationId":"list_all_conversations","summary":"List all conversations with no 10,000 limit, oldest first by id, using a cursor. Same filters as list_conversations. Use","description":"List all conversations with no 10,000 limit, oldest first by id, using a cursor. Same filters as list_conversations. Use for \"Walk through every Lime Connect conversation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations with this status, for example new, pending or ended.","title":"Status"},"operator_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only conversations of this operator id.","title":"Operator Id"},"contact_identity_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only conversations of this contact id.","title":"Contact Identity Id"},"um_widget_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only conversations held via this chat widget id.","title":"Um Widget Id"},"updated_at_from_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations updated after this ISO 8601 time, for example 2026-01-01T00:00:00.","title":"Updated At From Date"},"updated_at_to_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations updated before this ISO 8601 time.","title":"Updated At To Date"},"search_query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Keywords searched in contact name, email, street, city and message text (prefix matching, any keyword matches).","title":"Search Query"},"ordering":{"anyOf":[{"enum":["id","-id"],"type":"string"},{"type":"null"}],"default":null,"description":"Only id (ascending) or -id (descending) is allowed.","title":"Ordering"},"cursor":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Id cursor taken from the next link of the previous answer (the number after cursor=).","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records to return (1 to 100, default 10).","title":"Limit"}},"title":"list_all_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 conversation with full details: contact, channel, topics, rating, feedback, conversation parts and last message.","description":"Get one conversation with full details: contact, channel, topics, rating, feedback, conversation parts and last message. Use for \"Show Lime Connect conversation 199\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"conversation_id":{"description":"Conversation id.","maximum":999999999999,"minimum":1,"title":"Conversation Id","type":"integer"}},"required":["conversation_id"],"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 conversation (default 100) with sender, text, send time and delivery state. Use for \"What was s","description":"List the messages of one conversation (default 100) with sender, text, send time and delivery state. Use for \"What was said in Lime Connect conversation 2017\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"conversation_id":{"description":"Conversation id.","maximum":999999999999,"minimum":1,"title":"Conversation Id","type":"integer"},"cursor":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Id cursor taken from the next link of the previous answer (the number after cursor=).","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many messages to return (default 100).","title":"Limit"}},"required":["conversation_id"],"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_contacts":{"post":{"operationId":"list_contacts","summary":"List contacts with name, email, company, country, verification, block flag and conversation count. Use for \"Find the Lim","description":"List contacts with name, email, company, country, verification, block flag and conversation count. Use for \"Find the Lime Connect contact with email test@example.com\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the contact with this email address.","title":"Email"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only contacts matching this name.","title":"Name"},"verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for contacts with a verified email or mobile number.","title":"Verified"},"locale":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only contacts with this locale, for example en_US.","title":"Locale"},"search_query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Keywords searched in name, email, street, city, country and notes.","title":"Search Query"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records to return (1 to 100, default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging (the list holds at most 10,000 records).","title":"Offset"}},"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/get_contact":{"post":{"operationId":"get_contact","summary":"Get one contact by id. Use for \"Show Lime Connect contact 53\".","description":"Get one contact by id. Use for \"Show Lime Connect contact 53\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"contact_id":{"description":"Contact id.","maximum":999999999999,"minimum":1,"title":"Contact Id","type":"integer"}},"required":["contact_id"],"title":"get_contactArguments","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_operators":{"post":{"operationId":"list_operators","summary":"List operators (agents) with name, email, role, enabled flag, group and organization. Use for \"Who are the operators in ","description":"List operators (agents) with name, email, role, enabled flag, group and organization. Use for \"Who are the operators in Lime Connect\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records to return (1 to 100, default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging (the list holds at most 10,000 records).","title":"Offset"}},"title":"list_operatorsArguments","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_operator_slots":{"post":{"operationId":"get_operator_slots","summary":"Get the chat slot utilization of one operator. Use for \"How busy is Lime Connect operator 21\".","description":"Get the chat slot utilization of one operator. Use for \"How busy is Lime Connect operator 21\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"operator_id":{"description":"Operator id.","maximum":999999999999,"minimum":1,"title":"Operator Id","type":"integer"}},"required":["operator_id"],"title":"get_operator_slotsArguments","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}}}}