From 8023fc22c72783fa13d92fefbeb7f7e73929a4a5 Mon Sep 17 00:00:00 2001 From: Darragh Curran Date: Tue, 6 Jan 2026 13:48:51 +0000 Subject: [PATCH] Add IP Allowlist API endpoint to v2.14 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add OpenAPI documentation for the new IP Allowlist API: - GET /ip_allowlist - Retrieve current IP allowlist settings - PUT /ip_allowlist - Update IP allowlist settings Includes: - ip_allowlist schema (used for both request and response) - IP Allowlist tag with description - Examples for success and error responses - Documentation for lockout protection feature - Clear explanation of IP/CIDR format for allowlist entries Requires `manage_ip_allowlist` OAuth scope. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- descriptions/2.14/api.intercom.io.yaml | 147 +++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/descriptions/2.14/api.intercom.io.yaml b/descriptions/2.14/api.intercom.io.yaml index d34ffb7..4c9783f 100644 --- a/descriptions/2.14/api.intercom.io.yaml +++ b/descriptions/2.14/api.intercom.io.yaml @@ -2631,6 +2631,119 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" + "/ip_allowlist": + get: + summary: Get IP allowlist settings + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - IP Allowlist + operationId: getIpAllowlist + description: Retrieve the current IP allowlist configuration for the workspace. + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful: + value: + type: ip_allowlist + enabled: true + ip_allowlist: + - "192.168.1.0/24" + - "10.0.0.1" + schema: + "$ref": "#/components/schemas/ip_allowlist" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + put: + summary: Update IP allowlist settings + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - IP Allowlist + operationId: updateIpAllowlist + description: | + Update the IP allowlist configuration for the workspace. + + {% admonition type="warning" name="Lockout Protection" %} + The API will reject updates that would lock out the caller's IP address. Ensure your current IP is included in the allowlist when enabling the feature. + {% /admonition %} + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful: + value: + type: ip_allowlist + enabled: true + ip_allowlist: + - "192.168.1.0/24" + - "10.0.0.1" + schema: + "$ref": "#/components/schemas/ip_allowlist" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + '422': + description: Validation error + content: + application/json: + examples: + Lockout Protection: + value: + type: error.list + request_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + errors: + - code: parameter_invalid + message: Your IP (1.2.3.4) is not on the allowlist. Saving would lock you out of this workspace. + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/ip_allowlist" + examples: + successful: + summary: Enable IP allowlist + value: + enabled: true + ip_allowlist: + - "192.168.1.0/24" + - "10.0.0.1" "/companies": post: summary: Create or Update a company @@ -19587,6 +19700,31 @@ components: nullable: true required: - id + ip_allowlist: + title: IP Allowlist + type: object + description: IP allowlist settings for the workspace. + properties: + type: + type: string + description: String representing the object's type. Always has the value `ip_allowlist`. + example: ip_allowlist + enabled: + type: boolean + description: Whether the IP allowlist is enabled for the workspace. + example: true + ip_allowlist: + type: array + description: | + List of allowed IP addresses and/or IP ranges in CIDR notation. + Examples: + - Single IP: `192.168.0.1` + - IP range: `192.168.0.1/24` (allows 192.168.0.0 - 192.168.0.255) + items: + type: string + example: + - "192.168.1.0/24" + - "10.0.0.1" intercom_version: description: Intercom API version.
By default, it's equal to the version set in the app package. @@ -22406,6 +22544,15 @@ tags: description: Everything about your Help Center - name: Internal Articles description: Everything about your Internal Articles +- name: IP Allowlist + description: | + Manage IP allowlist settings for your workspace. + + The IP Allowlist API allows you to configure which IP addresses are allowed to access the Intercom API and web application for your workspace. This is useful for restricting access to your Intercom workspace to specific corporate networks or VPNs. + + {% admonition type="info" name="Authentication" %} + This endpoint requires the `manage_ip_allowlist` OAuth scope. + {% /admonition %} - name: Jobs description: Everything about jobs - name: Messages