Your Periskope API token, sent as Authorization: Bearer <token>. Generate one from the Periskope dashboard under Settings → API & Webhooks. API access requires an active Pro or Enterprise plan.
Move this subscription row to a different event type. Only this row is changed — other rows created in the same create call keep their event types. Deliverable event types: chat.created, chat.notification.created, message.created, message.updated, message.deleted, message.ack.updated, message.flagged, message.unflagged, reaction.created, ticket.created, ticket.updated, ticket.deleted, org.phone.connected, org.phone.disconnected, org.phone.updated, org.phone.qr, note.created, chat.custom_properties.updated. The legacy names org.created, org.updated, org.member.created, org.member.updated, org.subscription.trial_will_end, org.integrations.updated, org.phone.created, chat.updated, chat.label.updated, reaction.updated, reaction.added, message.ticket.attached are also accepted for compatibility, but events are never delivered for them.
New display name of the webhook, stored as integration_metadata.name
Example:
"Ticket webhook"
Response
The updated webhook subscription
A webhook subscription — delivers one event type to one endpoint URL. Subscribing an endpoint to several event types creates one row per event type; the rows share an integration_id and can be paused (is_subscribed: false) or deleted individually. Only records of type 'webhook' are managed by this API.
HTTP(S) endpoint that receives the subscribed events as JSON POST requests, signed with an HMAC-SHA256 signature of the body computed with the workspace signing key
The event type this subscription row delivers. One row exists per subscribed event type. Deliverable event types: chat.created, chat.notification.created, message.created, message.updated, message.deleted, message.ack.updated, message.flagged, message.unflagged, reaction.created, ticket.created, ticket.updated, ticket.deleted, org.phone.connected, org.phone.disconnected, org.phone.updated, org.phone.qr, note.created, chat.custom_properties.updated. The legacy names org.created, org.updated, org.member.created, org.member.updated, org.subscription.trial_will_end, org.integrations.updated, org.phone.created, chat.updated, chat.label.updated, reaction.updated, reaction.added, message.ticket.attached are also accepted for compatibility, but events are never delivered for them.
Kind of integration record. This API only lists, fetches, updates and deletes records of type 'webhook' — other values belong to built-in integrations (Zapier, Slack, ...) managed from the dashboard.
Whether event delivery is active. false pauses delivery without deleting the subscription — set it via PATCH isSubscribed, or automatically by Periskope when the endpoint keeps failing (workspace admins are emailed when that happens).
Groups the subscription rows created together: every row created by the same POST /webhooks call shares this id (taken from integrationMetadata.id when provided, otherwise generated). null on some legacy rows.
Metadata stored with the subscription. Webhooks created via this API always carry id (mirrors integration_id) and name (display name); any other keys sent in integrationMetadata are stored as-is.
Phone numbers whose events this webhook receives. Webhooks created via this API are unscoped (they receive events from every phone in the workspace); for unscoped rows this field is materialized in responses as the workspace's current full list of phone numbers.
When the subscription was created, as an ISO 8601 timestamp. Re-creating the same event type + hookUrl pair refreshes it.
Example:
"2026-01-15T09:30:00.000Z"
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Periskope Docs","colors":{"primary":"#15803D","light":"#15803D"},"logo":{"light":"https://mintcdn.com/bharatkumarramesh/Sq5VlnE2OgDOCH8s/logo/periskope-logo-full.svg?fit=max\u0026auto=format\u0026n=Sq5VlnE2OgDOCH8s\u0026q=85\u0026s=cace2e822ea7c0cd2a98b9d946baa593","dark":"https://mintcdn.com/bharatkumarramesh/Sq5VlnE2OgDOCH8s/logo/periskope-logo-full.svg?fit=max\u0026auto=format\u0026n=Sq5VlnE2OgDOCH8s\u0026q=85\u0026s=cace2e822ea7c0cd2a98b9d946baa593"},"favicon":"https://mintcdn.com/bharatkumarramesh/4Au0rGi6EzWXLRIt/logo/periskope-logo.svg?fit=max\u0026auto=format\u0026n=4Au0rGi6EzWXLRIt\u0026q=85\u0026s=275c52e578008a630d9a4c6e150100a0","api":{"playground":{"display":"none"}},"appearance":{"strict":true},"navbar":{"links":[{"href":"https://www.postman.com/periskope/workspace/periskope-platform-api","label":"Postman API collection"},{"href":"https://what.sapp.link/periskope","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://console.periskope.app"}},"footer":{"socials":{"twitter":"https://twitter.com/periskope_app","linkedin":"https://www.linkedin.com/company/periskope-app","youtube":"https://www.youtube.com/@PeriskopeApp"}},"integrations":{"gtm":{"tagId":"GTM-N9SPZLGR"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"bharatkumarramesh","hasAudioNarration":false,"actualSubdomain":"bharatkumarramesh","customDomains":["docs.periskope.app"],"gitSource":{"type":"github","owner":"periskope-org","repo":"docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae453c63ba31227325d7ed4","collectionId":"be170988-7fa0-4ea3-b624-add5b3ee55b6","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae453c63ba31227325d7ed4"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ae453c63ba31227325d7ed4","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"APIs \u0026 Webhooks","count":136},{"language":"default","tag":"Documentation","count":68},{"language":"default","tag":"Webhooks","count":21},{"language":"default","tag":"API","count":14},{"language":"default","tag":"Message APIs","count":14},{"language":"default","tag":"Chat APIs","count":13},{"language":"default","tag":"AI Agent","count":11},{"language":"default","tag":"Manage WhatsApp Groups, 1:1 Chats \u0026 Communities","count":11},{"language":"default","tag":"Objects","count":10},{"language":"default","tag":"Group Settings APIs","count":9}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".image-container{max-width:50%;margin:0 auto}"}],"page":{"pagePath":"api-reference/webhooks/update-webhook","slug":"/api-reference/webhooks/update-webhook","pageMetadata":{"title":"Update Webhook","openapi":"api-reference/openapi-generated.json PATCH /v1/webhooks/{id}","description":"Updates a webhook subscription row — at least one of hookUrl, integrationName, integrationMetadata, integrationType, isSubscribed or name.","href":"/api-reference/webhooks/update-webhook"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Updates a webhook subscription row — at least one of hookUrl, integrationName, integrationMetadata, integrationType, isSubscribed or name.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update Webhook","openapi":"api-reference/openapi-generated.json PATCH /v1/webhooks/{id}","description":"Updates a webhook subscription row — at least one of hookUrl, integrationName, integrationMetadata, integrationType, isSubscribed or name.","href":"/api-reference/webhooks/update-webhook"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"updateWebhook","summary":"Update a webhook","description":"Updates a webhook subscription row — at least one of hookUrl, integrationName, integrationMetadata, integrationType, isSubscribed or name.","tags":["Webhooks"],"security":["ce29caff-5fd6-4690-adcc-77d9490ea315"],"parameters":["1b5f1aa7-393e-428f-9a93-38439489254d"],"requestBody":"94a9361d-05c6-4440-92f1-67bdbef3a7b2","responses":{"200":"88588975-f231-49fd-ac3e-919b916416ec","401":"23e5ddfe-f025-4215-9699-6ebae65f9706","404":"9a619e7d-fc79-43c3-a371-543ac09f5f26","422":"0e192f3c-fe15-4309-b53a-9f536a166d3e","429":"6e9fc9cd-01bb-48f3-a1b3-c0d94e87a6c6","500":"6772492f-064b-4c22-a98c-86c72ae13425"},"x-codeSamples":[{"lang":"typescript","label":"TypeScript","source":"import { PeriskopeApi } from '@periskope/periskope-client';\n\nconst client = new PeriskopeApi({\n authToken: 'YOUR_API_KEY',\n});\n\nasync function main() {\n const response = await client.webhooks.updateWebhook({\n id: '00000000-0000-0000-0000-000000000000',\n hookUrl: 'https://example.com/webhooks/periskope',\n });\n console.log(response);\n}\n\nmain();"},{"lang":"bash","label":"cURL","source":"curl -X PATCH 'https://api.periskope.app/v1/webhooks/00000000-0000-0000-0000-000000000000' \\\n -H 'Authorization: Bearer YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"hookUrl\": \"https://example.com/webhooks/periskope\"\n }'"}],"method":"patch","type":"path","servers":["09897b52-aa53-4c89-80d0-59fbc0f457de"],"path":"/v1/webhooks/{id}","baseUrlOptions":["https://api.periskope.app"],"title":"Update a webhook","codeSamples":[{"label":"TypeScript","lang":"typescript","source":"import { PeriskopeApi } from '@periskope/periskope-client';\n\nconst client = new PeriskopeApi({\n authToken: 'YOUR_API_KEY',\n});\n\nasync function main() {\n const response = await client.webhooks.updateWebhook({\n id: '00000000-0000-0000-0000-000000000000',\n hookUrl: 'https://example.com/webhooks/periskope',\n });\n console.log(response);\n}\n\nmain();"},{"label":"cURL","lang":"bash","source":"curl -X PATCH 'https://api.periskope.app/v1/webhooks/00000000-0000-0000-0000-000000000000' \\\n -H 'Authorization: Bearer YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"hookUrl\": \"https://example.com/webhooks/periskope\"\n }'"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"1b5f1aa7-393e-428f-9a93-38439489254d":{"schema":{"type":"string","minLength":1,"description":"Id of the webhook subscription (UUID) — the id field of the rows returned when the webhook was created","example":"00000000-0000-0000-0000-000000000000","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"Id of the webhook subscription (UUID) — the id field of the rows returned when the webhook was created","name":"id","in":"path"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"hookUrl":{"type":"string","description":"New endpoint URL for this subscription. Must be a valid HTTP or HTTPS URL. Passing the current URL unchanged is a no-op.","example":"https://example.com/webhooks/periskope","uniqueKey":"hookUrl","typeLabel":"string"},"integrationName":{"type":"string","enum":["chat.created","chat.notification.created","message.created","message.updated","message.deleted","message.ack.updated","message.flagged","message.unflagged","reaction.created","ticket.created","ticket.updated","ticket.deleted","org.phone.connected","org.phone.disconnected","org.phone.updated","org.phone.qr","note.created","chat.custom_properties.updated","org.created","org.updated","org.member.created","org.member.updated","org.subscription.trial_will_end","org.integrations.updated","org.phone.created","chat.updated","chat.label.updated","reaction.updated","reaction.added","message.ticket.attached"],"description":"Move this subscription row to a different event type. Only this row is changed — other rows created in the same create call keep their event types. Deliverable event types: chat.created, chat.notification.created, message.created, message.updated, message.deleted, message.ack.updated, message.flagged, message.unflagged, reaction.created, ticket.created, ticket.updated, ticket.deleted, org.phone.connected, org.phone.disconnected, org.phone.updated, org.phone.qr, note.created, chat.custom_properties.updated. The legacy names org.created, org.updated, org.member.created, org.member.updated, org.subscription.trial_will_end, org.integrations.updated, org.phone.created, chat.updated, chat.label.updated, reaction.updated, reaction.added, message.ticket.attached are also accepted for compatibility, but events are never delivered for them.","example":"ticket.updated","uniqueKey":"integrationName","typeLabel":"enum\u003cstring>"},"integrationMetadata":{"type":"object","properties":{},"description":"Keys merged into the existing integration_metadata (shallow merge — existing keys are kept unless overwritten here)","example":{"description":"Webhook for ticket creation events"},"uniqueKey":"integrationMetadata","typeLabel":"object"},"integrationType":{"type":"string","description":"New integration_type label for the subscription. An empty string is ignored.","example":"webhook","uniqueKey":"integrationType","typeLabel":"string"},"isSubscribed":{"type":"boolean","description":"Set false to pause event delivery without deleting the subscription, true to resume it","example":true,"uniqueKey":"isSubscribed","typeLabel":"boolean"},"name":{"type":"string","description":"New display name of the webhook, stored as integration_metadata.name","example":"Ticket webhook","uniqueKey":"name","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"hookUrl":"https://example.com/webhooks/periskope","integrationName":"ticket.updated","integrationMetadata":{"description":"Webhook for ticket creation events"},"integrationType":"webhook","isSubscribed":true,"name":"Ticket webhook"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"88588975-f231-49fd-ac3e-919b916416ec":{"description":"The updated webhook subscription","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique id of the webhook subscription (UUID). Use it as the id path parameter when fetching, updating or deleting the subscription.","example":"00000000-0000-0000-0000-000000000000","uniqueKey":"id","typeLabel":"string"},"org_id":{"type":"string","description":"Id of the workspace (org) the webhook belongs to","example":"00000000-0000-0000-0000-000000000000","uniqueKey":"org_id","typeLabel":"string"},"hook_url":{"type":"string","description":"HTTP(S) endpoint that receives the subscribed events as JSON POST requests, signed with an HMAC-SHA256 signature of the body computed with the workspace signing key","example":"https://example.com/webhooks/periskope","uniqueKey":"hook_url","typeLabel":"string"},"integration_name":{"type":"string","enum":["chat.created","chat.notification.created","message.created","message.updated","message.deleted","message.ack.updated","message.flagged","message.unflagged","reaction.created","ticket.created","ticket.updated","ticket.deleted","org.phone.connected","org.phone.disconnected","org.phone.updated","org.phone.qr","note.created","chat.custom_properties.updated","org.created","org.updated","org.member.created","org.member.updated","org.subscription.trial_will_end","org.integrations.updated","org.phone.created","chat.updated","chat.label.updated","reaction.updated","reaction.added","message.ticket.attached"],"description":"The event type this subscription row delivers. One row exists per subscribed event type. Deliverable event types: chat.created, chat.notification.created, message.created, message.updated, message.deleted, message.ack.updated, message.flagged, message.unflagged, reaction.created, ticket.created, ticket.updated, ticket.deleted, org.phone.connected, org.phone.disconnected, org.phone.updated, org.phone.qr, note.created, chat.custom_properties.updated. The legacy names org.created, org.updated, org.member.created, org.member.updated, org.subscription.trial_will_end, org.integrations.updated, org.phone.created, chat.updated, chat.label.updated, reaction.updated, reaction.added, message.ticket.attached are also accepted for compatibility, but events are never delivered for them.","example":"ticket.created","uniqueKey":"integration_name","typeLabel":"enum\u003cstring>"},"integration_type":{"type":"string","description":"Label of the integration that created the subscription. Webhooks created via this API default to 'webhook'.","example":"webhook","uniqueKey":"integration_type","typeLabel":"string"},"type":{"type":"string","enum":["zapier","pabbly","api","webhook","hubspot","freshdesk","slack","jira","salesforce","zohodesk","gsheets","zohocrm"],"description":"Kind of integration record. This API only lists, fetches, updates and deletes records of type 'webhook' — other values belong to built-in integrations (Zapier, Slack, ...) managed from the dashboard.","example":"webhook","uniqueKey":"type","typeLabel":"enum\u003cstring>"},"is_subscribed":{"type":"boolean","description":"Whether event delivery is active. false pauses delivery without deleting the subscription — set it via PATCH isSubscribed, or automatically by Periskope when the endpoint keeps failing (workspace admins are emailed when that happens).","example":true,"uniqueKey":"is_subscribed","typeLabel":"boolean"},"integration_id":{"type":"string","description":"Groups the subscription rows created together: every row created by the same POST /webhooks call shares this id (taken from integrationMetadata.id when provided, otherwise generated). null on some legacy rows.","example":"00000000-0000-0000-0000-000000000000","uniqueKey":"integration_id","typeLabel":"string"},"integration_metadata":{"type":"object","properties":{"id":{"type":"string","description":"Mirrors integration_id","example":"00000000-0000-0000-0000-000000000000","uniqueKey":"integration_metadata.id","typeLabel":"string"},"name":{"type":"string","description":"Display name of the webhook","example":"Ticket webhook","uniqueKey":"integration_metadata.name","typeLabel":"string"}},"description":"Metadata stored with the subscription. Webhooks created via this API always carry id (mirrors integration_id) and name (display name); any other keys sent in integrationMetadata are stored as-is.","example":{"id":"00000000-0000-0000-0000-000000000000","name":"Ticket webhook"},"uniqueKey":"integration_metadata","typeLabel":"object"},"phone_scopes":{"type":"array","items":{"type":"string","uniqueKey":"phone_scopes.items.[INDEX]","typeLabel":"string"},"description":"Phone numbers whose events this webhook receives. Webhooks created via this API are unscoped (they receive events from every phone in the workspace); for unscoped rows this field is materialized in responses as the workspace's current full list of phone numbers.","example":["911111111111"],"uniqueKey":"phone_scopes","typeLabel":"string[]"},"subscribed_at":{"type":"string","description":"When the subscription was created, as an ISO 8601 timestamp. Re-creating the same event type + hookUrl pair refreshes it.","example":"2026-01-15T09:30:00.000Z","uniqueKey":"subscribed_at","typeLabel":"string"}},"description":"A webhook subscription — delivers one event type to one endpoint URL. Subscribing an endpoint to several event types creates one row per event type; the rows share an integration_id and can be paused (is_subscribed: false) or deleted individually. Only records of type 'webhook' are managed by this API.","uniqueKey":"","typeLabel":"object"},"examples":{"default":{"title":"default","value":{"id":"00000000-0000-0000-0000-000000000000","org_id":"00000000-0000-0000-0000-000000000000","hook_url":"https://example.com/webhooks/periskope","integration_name":"ticket.created","integration_type":"webhook","type":"webhook","is_subscribed":true,"integration_id":"00000000-0000-0000-0000-000000000000","integration_metadata":{"id":"00000000-0000-0000-0000-000000000000","name":"Ticket webhook"},"phone_scopes":["911111111111"],"subscribed_at":"2026-01-15T09:30:00.000Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"23e5ddfe-f025-4215-9699-6ebae65f9706":{"description":"Invalid, expired or missing API token","content":{"application/json":{"examples":{"error":{"title":"error","value":{"code":"UNAUTHORIZED_ERROR","message":"Invalid bearer auth token","status":401}}},"schema":{"type":"object","properties":{"code":{"type":"string","example":"UNAUTHORIZED_ERROR","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Invalid bearer auth token","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","example":401,"uniqueKey":"status","typeLabel":"integer"}},"example":{"code":"UNAUTHORIZED_ERROR","message":"Invalid bearer auth token","status":401},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"9a619e7d-fc79-43c3-a371-543ac09f5f26":{"description":"No webhook subscription matches id","content":{"application/json":{"examples":{"error":{"title":"error","value":{"code":"NOT_FOUND_ERROR","message":"No webhook subscription matches id","status":404}}},"schema":{"type":"object","properties":{"code":{"type":"string","example":"NOT_FOUND_ERROR","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"No webhook subscription matches id","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","example":404,"uniqueKey":"status","typeLabel":"integer"}},"example":{"code":"NOT_FOUND_ERROR","message":"No webhook subscription matches id","status":404},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"0e192f3c-fe15-4309-b53a-9f536a166d3e":{"description":"Request validation failed","content":{"application/json":{"examples":{"error":{"title":"error","value":{"code":"VALIDATION_ERROR","message":"Request validation failed","status":422,"fields":{"body.chat_id":{"message":"chat_id is required"}}}}},"schema":{"type":"object","properties":{"code":{"type":"string","example":"VALIDATION_ERROR","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Request validation failed","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","example":422,"uniqueKey":"status","typeLabel":"integer"},"fields":{"type":"object","additionalProperties":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"fields.additionalProperties.message","typeLabel":"string"},"value":{"oneOf":[{}],"uniqueKey":"fields.additionalProperties.value","typeLabel":"any"}},"uniqueKey":"fields.additionalProperties","typeLabel":"object"},"example":{"body.chat_id":{"message":"chat_id is required"}},"uniqueKey":"fields","typeLabel":"object"}},"example":{"code":"VALIDATION_ERROR","message":"Request validation failed","status":422,"fields":{"body.chat_id":{"message":"chat_id is required"}}},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"6e9fc9cd-01bb-48f3-a1b3-c0d94e87a6c6":{"description":"Rate limit exceeded","content":{"application/json":{"examples":{"error":{"title":"error","value":{"code":"RATE_LIMIT_ERROR","message":"You can only make 100 requests per second","status":429}}},"schema":{"type":"object","properties":{"code":{"type":"string","example":"RATE_LIMIT_ERROR","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"You can only make 100 requests per second","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","example":429,"uniqueKey":"status","typeLabel":"integer"}},"example":{"code":"RATE_LIMIT_ERROR","message":"You can only make 100 requests per second","status":429},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"6772492f-064b-4c22-a98c-86c72ae13425":{"description":"Internal server error","content":{"application/json":{"examples":{"error":{"title":"error","value":{"code":"UNKNOWN_ERROR","message":"Internal server error","status":500}}},"schema":{"type":"object","properties":{"code":{"type":"string","example":"UNKNOWN_ERROR","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Internal server error","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","example":500,"uniqueKey":"status","typeLabel":"integer"}},"example":{"code":"UNKNOWN_ERROR","message":"Internal server error","status":500},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"ce29caff-5fd6-4690-adcc-77d9490ea315":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Your Periskope API token, sent as `Authorization: Bearer \u003ctoken>`. Generate one from the Periskope dashboard under **Settings → API \u0026 Webhooks**. API access requires an active Pro or Enterprise plan.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"09897b52-aa53-4c89-80d0-59fbc0f457de":{"url":"https://api.periskope.app"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Your Periskope API token, sent as `Authorization: Bearer \u003ctoken>`. Generate one from the Periskope dashboard under **Settings → API \u0026 Webhooks**. API access requires an active Pro or Enterprise plan.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your Periskope API token, sent as `Authorization: Bearer \u003ctoken>`. Generate one from the Periskope dashboard under **Settings → API \u0026 Webhooks**. API access requires an active Pro or Enterprise plan.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi-generated.json"},"subdomain":"bharatkumarramesh","siteName":"Periskope Docs","title":"Update Webhook - Periskope Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-25T16:09:26.276Z","originalFileLocation":"api-reference/webhooks/update-webhook.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Updates a webhook subscription row — at least one of hookUrl, integrationName, integrationMetadata, integrationType, isSubscribed or name.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Periskope Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update Webhook - Periskope Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Updates a webhook subscription row — at least one of hookUrl, integrationName, integrationMetadata, integrationType, isSubscribed or name.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Periskope Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.periskope.app/api-reference/webhooks/update-webhook\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://bharatkumarramesh.mintlify.app/_mintlify/api/og/v2?division=Webhook+APIs\u0026amp;title=Update+Webhook\u0026amp;description=Updates+a+webhook+subscription+row+%E2%80%94+at+least+one+of+hookUrl%2C+integrationName%2C+integrationMetadata%2C+integrationType%2C+isSubscribed+or+name.\u0026amp;theme=42ac27e6aa5a1e2c22bc4538\u0026amp;signature=27a4d9b6fa86fd71d389855537d0ce61ccab77c42072862b98138698429fd40a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update Webhook - Periskope Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Updates a webhook subscription row — at least one of hookUrl, integrationName, integrationMetadata, integrationType, isSubscribed or name.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bharatkumarramesh.mintlify.app/_mintlify/api/og/v2?division=Webhook+APIs\u0026amp;title=Update+Webhook\u0026amp;description=Updates+a+webhook+subscription+row+%E2%80%94+at+least+one+of+hookUrl%2C+integrationName%2C+integrationMetadata%2C+integrationType%2C+isSubscribed+or+name.\u0026amp;theme=42ac27e6aa5a1e2c22bc4538\u0026amp;signature=27a4d9b6fa86fd71d389855537d0ce61ccab77c42072862b98138698429fd40a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Periskope Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#15803D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.periskope.app/api-reference/webhooks/update-webhook\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/webhooks/update-webhook.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.periskope.app/#organization\",\"name\":\"Periskope Docs\",\"url\":\"https://docs.periskope.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/bharatkumarramesh/Sq5VlnE2OgDOCH8s/logo/periskope-logo-full.svg?fit=max\u0026auto=format\u0026n=Sq5VlnE2OgDOCH8s\u0026q=85\u0026s=cace2e822ea7c0cd2a98b9d946baa593\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.periskope.app#website\",\"name\":\"Periskope Docs\",\"url\":\"https://docs.periskope.app\",\"publisher\":{\"@id\":\"https://docs.periskope.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.periskope.app/api-reference/webhooks/update-webhook#webpage\",\"url\":\"https://docs.periskope.app/api-reference/webhooks/update-webhook\",\"name\":\"Update Webhook\",\"description\":\"Updates a webhook subscription row — at least one of hookUrl, integrationName, integrationMetadata, integrationType, isSubscribed or name.\",\"dateModified\":\"2026-09-25T16:09:26.276Z\",\"isPartOf\":{\"@id\":\"https://docs.periskope.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.periskope.app/api-reference/webhooks/update-webhook#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.periskope.app/api-reference/webhooks/update-webhook#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Webhook APIs\",\"item\":\"https://docs.periskope.app/api-reference/webhooks/list-webhooks\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update Webhook\",\"item\":\"https://docs.periskope.app/api-reference/webhooks/update-webhook\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.periskope.app/api-reference/webhooks/update-webhook#apireference\",\"headline\":\"Update Webhook\",\"name\":\"Update Webhook\",\"description\":\"Updates a webhook subscription row — at least one of hookUrl, integrationName, integrationMetadata, integrationType, isSubscribed or name.\",\"url\":\"https://docs.periskope.app/api-reference/webhooks/update-webhook\",\"mainEntityOfPage\":{\"@id\":\"https://docs.periskope.app/api-reference/webhooks/update-webhook#webpage\"},\"dateModified\":\"2026-09-25T16:09:26.276Z\",\"publisher\":{\"@id\":\"https://docs.periskope.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.periskope.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Periskope Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Periskope Docs","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/get-started/introduction"}]},{"anchor":"APIs \u0026 Webhooks","icon":"webhook","groups":[{"group":"API","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Authorization","href":"/api-reference/authorization"},{"title":"SDK","href":"/api-reference/sdk"},{"group":"Objects","pages":[{"title":"The Chat Object","href":"/api-reference/objects/the-chat-object"},{"title":"The Chat Notification Object","href":"/api-reference/objects/the-chat-notification-object"},{"title":"The Call Object","href":"/api-reference/objects/the-call-object"},{"title":"The Reaction Object","href":"/api-reference/objects/the-reaction-object"},{"title":"The Message Object","href":"/api-reference/objects/the-message-object"},{"title":"The Contact Object","href":"/api-reference/objects/the-contact-object"},{"title":"The Ticket Info Object","href":"/api-reference/objects/the-ticket-info-object"},{"title":"The Task Object","href":"/api-reference/objects/the-task-object"},{"title":"The Phone Object","href":"/api-reference/objects/the-phone-object"},{"title":"The Note Object","href":"/api-reference/objects/the-note-object"}]},{"title":"WhatsApp Message Ack Status","href":"/api-reference/delivery-status"}]},{"group":"Chat APIs","icon":"comments","pages":[{"title":"Get Chat By ID","openapi":"api-reference/openapi-generated.json GET /v1/chats/{chat_id}","href":"/api-reference/chat/get-chat-by-id"},{"title":"Get Messages in a Chat","openapi":"api-reference/openapi-generated.json GET /v1/chats/{chat_id}/messages","href":"/api-reference/chat/get-messages-in-chat"},{"title":"Get Private Notes in a Chat","openapi":"api-reference/openapi-generated.json GET /v1/chats/{chat_id}/notes","href":"/api-reference/chat/get-private-notes-in-chat"},{"title":"Get Notifications in a Chat","openapi":"api-reference/openapi-generated.json GET /v1/chats/{chat_id}/notifications","href":"/api-reference/chat/get-notifications-in-chat"},{"title":"List All Chats","openapi":"api-reference/openapi-generated.json GET /v1/chats","href":"/api-reference/chat/list-all-chats"},{"title":"List All Messages","openapi":"api-reference/openapi-generated.json GET /v1/chats/messages","href":"/api-reference/chat/list-all-messages"},{"title":"List All Notifications","openapi":"api-reference/openapi-generated.json GET /v1/chats/notifications","href":"/api-reference/chat/list-all-notifications"},{"title":"Update Chat Labels","openapi":"api-reference/openapi-generated.json PATCH /v1/chats/labels","href":"/api-reference/chat/update-chat-labels"},{"title":"Update Chat","openapi":"api-reference/openapi-generated.json PATCH /v1/chats/{chat_id}","href":"/api-reference/chat/update-chat"},{"title":"Mark chat as read","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/read","href":"/api-reference/chat/mark-read"},{"title":"Update Chat Access","openapi":"api-reference/openapi-generated.json PATCH /v1/chats/access","href":"/api-reference/chat/override-chat-access"},{"title":"Get Chat Audit Logs","openapi":"api-reference/openapi-generated.json GET /v1/chats/{chat_id}/audit-logs","href":"/api-reference/chat/get-chat-audit-logs"},{"title":"Update Chat AI Settings","openapi":"api-reference/openapi-generated.json PATCH /v1/chats/{chat_id}/ai","href":"/api-reference/chat/update-chat-ai-settings"}]},{"group":"Group Settings APIs","pages":[{"title":"Create Group","openapi":"api-reference/openapi-generated.json POST /v1/chats/create","href":"/api-reference/chat/create-group"},{"title":"Generate a new invite link for a chat","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/invite","href":"/api-reference/chat/refresh-invite"},{"title":"Add Participant to Group","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/add","href":"/api-reference/chat/add-participant"},{"title":"Remove Participant from Group","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/remove","href":"/api-reference/chat/remove-participant"},{"title":"Promote Participant to Admin","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/promote","href":"/api-reference/chat/promote-participant-to-admin"},{"title":"Demote Participant to Member","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/demote","href":"/api-reference/chat/demote-participant-to-member"},{"title":"Update Group Settings","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/settings","href":"/api-reference/chat/update-group-settings"},{"title":"Accept Group Invite","openapi":"api-reference/openapi-generated.json POST /v1/chats/accept-invite","href":"/api-reference/chat/accept-group-invite"},{"title":"Leave Group","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/leave","href":"/api-reference/chat/leave-group"}]},{"group":"Message APIs","icon":"comment","pages":[{"title":"Send Message","openapi":"api-reference/openapi-generated.json POST /v1/message/send","href":"/api-reference/message/send-message"},{"title":"Send Sync Message","openapi":"api-reference/openapi-generated.json POST /v1/message/send-sync","href":"/api-reference/message/send-message-sync"},{"title":"Broadcast Message","openapi":"api-reference/openapi-generated.json POST /v1/message/broadcast","href":"/api-reference/message/broadcast-message"},{"title":"Delete a Broadcast","openapi":"api-reference/openapi-generated.json DELETE /v1/message/broadcast/{broadcast_id}","href":"/api-reference/message/delete-broadcast"},{"title":"Delete Message","openapi":"api-reference/openapi-generated.json POST /v1/message/{message_id}/delete","href":"/api-reference/message/delete-message"},{"title":"Edit Message","openapi":"api-reference/openapi-generated.json POST /v1/message/{message_id}/edit","href":"/api-reference/message/edit-message"},{"title":"Forward Message","openapi":"api-reference/openapi-generated.json POST /v1/message/{message_id}/forward","href":"/api-reference/message/forward-message"},{"title":"Get Message","openapi":"api-reference/openapi-generated.json GET /v1/message/{message_id}","href":"/api-reference/message/get-message"},{"title":"React to Message","openapi":"api-reference/openapi-generated.json POST /v1/message/{message_id}/react","href":"/api-reference/message/react-to-message"},{"title":"Pin Message","openapi":"api-reference/openapi-generated.json POST /v1/message/{message_id}/pin","href":"/api-reference/message/pin-message"},{"title":"Get Message Status","openapi":"api-reference/openapi-generated.json GET /v1/message/{unique_id}/status","href":"/api-reference/message/message-status"},{"title":"List All Message Queues","openapi":"api-reference/openapi-generated.json POST /v1/message/queues","href":"/api-reference/message/list-queue-jobs"},{"title":"Get Status of Message Queues","openapi":"api-reference/openapi-generated.json GET /v1/message/queues/health","href":"/api-reference/message/queue-health"},{"title":"Purge Message Queues","openapi":"api-reference/openapi-generated.json POST /v1/message/queues/purge","href":"/api-reference/message/purge-queue-jobs"}]},{"group":"Scheduled Message APIs","pages":[{"title":"List Scheduled Messages","openapi":"api-reference/openapi-generated.json GET /v1/message/scheduled","href":"/api-reference/scheduled-messages/list-scheduled-messages"},{"title":"Schedule a Message","openapi":"api-reference/openapi-generated.json POST /v1/message/scheduled","href":"/api-reference/scheduled-messages/schedule-message"},{"title":"Get Scheduled Message","openapi":"api-reference/openapi-generated.json GET /v1/message/scheduled/{scheduled_id}","href":"/api-reference/scheduled-messages/get-scheduled-message"},{"title":"Update Scheduled Message","openapi":"api-reference/openapi-generated.json PATCH /v1/message/scheduled/{scheduled_id}","href":"/api-reference/scheduled-messages/update-scheduled-message"},{"title":"Delete Scheduled Message","openapi":"api-reference/openapi-generated.json DELETE /v1/message/scheduled/{scheduled_id}","href":"/api-reference/scheduled-messages/delete-scheduled-message"},{"title":"List Scheduled Message Runs","openapi":"api-reference/openapi-generated.json GET /v1/message/scheduled/{scheduled_id}/occurrences","href":"/api-reference/scheduled-messages/list-scheduled-message-occurrences"}]},{"group":"Call APIs","icon":"phone-volume","pages":[{"title":"List Calls","openapi":"api-reference/openapi-generated.json GET /v1/calls","href":"/api-reference/calls/list-calls"},{"title":"Get Call","openapi":"api-reference/openapi-generated.json GET /v1/calls/{call_id}","href":"/api-reference/calls/get-call"}]},{"group":"Media APIs","icon":"photo-film","pages":[{"title":"Migrate Media URL","api":"POST https://api.periskope.app/v1/media/migrate-url","href":"/api-reference/media/migrate-url"},{"title":"Migrate Media URLs (Batch)","api":"POST https://api.periskope.app/v1/media/migrate-url/batch","href":"/api-reference/media/migrate-url-batch"}]},{"group":"Contact APIs","icon":"phone","pages":[{"title":"Get Contact By ID","openapi":"api-reference/openapi-generated.json GET /v1/contacts/{contact_id}","href":"/api-reference/contacts/get-contact-by-id"},{"title":"Get Contacts","openapi":"api-reference/openapi-generated.json GET /v1/contacts","href":"/api-reference/contacts/get-contacts"},{"title":"Update Contact Labels","openapi":"api-reference/openapi-generated.json PATCH /v1/contacts/labels","href":"/api-reference/contacts/update-contact-labels"},{"title":"Update Contact","openapi":"api-reference/openapi-generated.json PATCH /v1/contacts/{contact_id}","href":"/api-reference/contacts/update-contact"},{"title":"Create Contact","openapi":"api-reference/openapi-generated.json POST /v1/contacts/create","href":"/api-reference/contacts/create-contact"},{"title":"Check Contact Exists","openapi":"api-reference/openapi-generated.json POST /v1/contacts/check","href":"/api-reference/contacts/check-contact"}]},{"group":"Ticket APIs","icon":"ticket","pages":[{"title":"Get Ticket By ID","openapi":"api-reference/openapi-generated.json GET /v1/tickets/{ticket_id}","href":"/api-reference/tickets/get-ticket-by-id"},{"title":"Get Tickets","openapi":"api-reference/openapi-generated.json GET /v1/tickets","href":"/api-reference/tickets/get-tickets"},{"title":"Update Ticket","openapi":"api-reference/openapi-generated.json PATCH /v1/tickets/{ticket_id}","href":"/api-reference/tickets/update-ticket"},{"title":"Create Ticket","openapi":"api-reference/openapi-generated.json POST /v1/tickets/create","href":"/api-reference/tickets/create-ticket"},{"title":"Get Ticket Audit Logs","openapi":"api-reference/openapi-generated.json GET /v1/tickets/{ticket_id}/audit-logs","href":"/api-reference/tickets/get-ticket-audit-logs"}]},{"group":"Custom Property APIs","icon":"list-dropdown","pages":[{"title":"Get All Custom Properties","openapi":"api-reference/openapi-generated.json GET /v1/properties","href":"/api-reference/properties/get-all-custom-properties"},{"title":"Get Custom Property","openapi":"api-reference/openapi-generated.json GET /v1/properties/{property_id}","href":"/api-reference/properties/get-custom-property"},{"title":"Create Custom Property","openapi":"api-reference/openapi-generated.json POST /v1/properties/create","href":"/api-reference/properties/create-custom-property"},{"title":"Update Custom Property","openapi":"api-reference/openapi-generated.json POST /v1/properties/{property_id}","href":"/api-reference/properties/update-custom-property"},{"title":"Update Property Options","openapi":"api-reference/openapi-generated.json POST /v1/properties/{property_id}/options","href":"/api-reference/properties/update-property-options"},{"title":"Delete Custom Properties","openapi":"api-reference/openapi-generated.json DELETE /v1/properties","href":"/api-reference/properties/delete-custom-property"}]},{"group":"Task APIs","icon":"list-check","pages":[{"title":"Get Task By ID","openapi":"api-reference/openapi-generated.json GET /v1/tasks/{task_id}","href":"/api-reference/tasks/get-task-by-id"},{"title":"Get All Tasks","openapi":"api-reference/openapi-generated.json GET /v1/tasks","href":"/api-reference/tasks/get-tasks"},{"title":"Create Task","openapi":"api-reference/openapi-generated.json POST /v1/tasks/create","href":"/api-reference/tasks/create-task"},{"title":"Update Task","openapi":"api-reference/openapi-generated.json PATCH /v1/tasks/{task_id}","href":"/api-reference/tasks/update-task"}]},{"group":"Queue APIs","icon":"list","pages":[{"title":"Fetch Queue Jobs","openapi":"api-reference/openapi-generated.json GET /v1/queue/jobs","href":"/api-reference/queues/fetch-queue-jobs"},{"title":"Get Broadcast Status","openapi":"api-reference/openapi-generated.json GET /v1/queue/broadcast","href":"/api-reference/queues/get-broadcast-status"},{"title":"Get Queue Status","openapi":"api-reference/openapi-generated.json GET /v1/queue","href":"/api-reference/queues/get-queue-status"},{"title":"Purge Queue","openapi":"api-reference/openapi-generated.json DELETE /v1/queue/purge","href":"/api-reference/queues/purge-queue"}]},{"group":"Phone APIs","icon":"phone","pages":[{"title":"Get phone","openapi":"api-reference/openapi-generated.json GET /v1/phones","href":"/api-reference/phones/get-phone"},{"title":"Get All Phones","openapi":"api-reference/openapi-generated.json GET /v1/phones/all","href":"/api-reference/phones/get-all-phones"},{"title":"Get QR","openapi":"api-reference/openapi-generated.json GET /v1/phones/qr","href":"/api-reference/phones/get-qr"},{"title":"Reset Phone","openapi":"api-reference/openapi-generated.json POST /v1/phones/reset","href":"/api-reference/phones/reset-phone"},{"title":"Restart Phone","openapi":"api-reference/openapi-generated.json POST /v1/phones/restart","href":"/api-reference/phones/restart-phone"},{"title":"Resync Phone","openapi":"api-reference/openapi-generated.json POST /v1/phones/resync","href":"/api-reference/phones/resync-phone"},{"title":"Update phone","openapi":"api-reference/openapi-generated.json PATCH /v1/phones/update","href":"/api-reference/phones/update-phone"},{"title":"Create Phone","openapi":"api-reference/openapi-generated.json POST /v1/phones/create","href":"/api-reference/phones/create-phone"},{"title":"Delete Phone","openapi":"api-reference/openapi-generated.json DELETE /v1/phones/delete","href":"/api-reference/phones/delete-phone"}]},{"group":"Notes APIs","icon":"comment","pages":[{"title":"Send Private Notes","openapi":"api-reference/openapi-generated.json POST /v1/notes/create","href":"/api-reference/notes/create-private-notes"},{"title":"Get Private Note","openapi":"api-reference/openapi-generated.json GET /v1/notes/{note_id}","href":"/api-reference/notes/get-private-note"},{"title":"List All Private Notes","openapi":"api-reference/openapi-generated.json GET /v1/notes","href":"/api-reference/notes/list-all-private-notes"}]},{"group":"Reaction APIs","icon":"comment","pages":[{"title":"Get Reactions","openapi":"api-reference/openapi-generated.json GET /v1/reactions","href":"/api-reference/reactions/get-reactions"}]},{"group":"Knowledge Base APIs","icon":"brain","pages":[{"title":"Get All Knowledge Base Items","openapi":"api-reference/openapi-generated.json GET /v1/knowledge-base","href":"/api-reference/knowledge-base/get-all-knowledge-base"},{"title":"Get FAQ by ID","openapi":"api-reference/openapi-generated.json GET /v1/knowledge-base/faq/{context_id}","href":"/api-reference/knowledge-base/get-faq-by-id"},{"title":"Create FAQ","openapi":"api-reference/openapi-generated.json POST /v1/knowledge-base/faq/create","href":"/api-reference/knowledge-base/create-faq"},{"title":"Update FAQ","openapi":"api-reference/openapi-generated.json PATCH /v1/knowledge-base/faq/{context_id}","href":"/api-reference/knowledge-base/update-faq"},{"title":"Delete FAQ","openapi":"api-reference/openapi-generated.json DELETE /v1/knowledge-base/faq/{context_id}","href":"/api-reference/knowledge-base/delete-faq"},{"title":"Get Document by ID","openapi":"api-reference/openapi-generated.json GET /v1/knowledge-base/document/{document_id}","href":"/api-reference/knowledge-base/get-document-by-id"},{"title":"Create Document","openapi":"api-reference/openapi-generated.json POST /v1/knowledge-base/document/create","href":"/api-reference/knowledge-base/create-document"},{"title":"Delete Document","openapi":"api-reference/openapi-generated.json DELETE /v1/knowledge-base/document/{document_id}","href":"/api-reference/knowledge-base/delete-document"}]},{"group":"Member APIs","icon":"user-group","pages":[{"title":"Invite Members","openapi":"api-reference/openapi-generated.json POST /v1/members/invite","href":"/api-reference/members/invite-members"},{"title":"Update Member Access","openapi":"api-reference/openapi-generated.json PATCH /v1/members/access","href":"/api-reference/members/update-member-access"},{"title":"Delete Member","openapi":"api-reference/openapi-generated.json DELETE /v1/members/{email_id}","href":"/api-reference/members/delete-member"}]},{"group":"AI APIs","icon":"robot","pages":[{"title":"Trigger AI Reply","openapi":"api-reference/openapi-generated.json POST /v1/ai/reply","href":"/api-reference/ai/trigger-ai-reply"}]},{"group":"Webhook APIs","icon":"webhook","pages":[{"title":"List Webhooks","openapi":"api-reference/openapi-generated.json GET /v1/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create Webhook","openapi":"api-reference/openapi-generated.json POST /v1/webhooks","href":"/api-reference/webhooks/create-webhook"},{"title":"Get Webhook by ID","openapi":"api-reference/openapi-generated.json GET /v1/webhooks/{id}","description":"Looks up a webhook subscription row by its id.","href":"/api-reference/webhooks/get-webhook-by-id"},{"title":"Update Webhook","openapi":"api-reference/openapi-generated.json PATCH /v1/webhooks/{id}","href":"/api-reference/webhooks/update-webhook"},{"title":"Delete Webhook","openapi":"api-reference/openapi-generated.json DELETE /v1/webhooks/{id}","description":"Permanently deletes a webhook subscription row by id. Its sibling rows (same create call) are marked unsubscribed — to pause without deleting, use PATCH with isSubscribed: false.","href":"/api-reference/webhooks/delete-webhook"}]},{"group":"Webhooks","pages":[{"title":"Introduction","href":"/api-reference/webhooks/introduction"},{"title":"chat.created","icon":"comments","href":"/api-reference/webhooks/chat.created"},{"title":"chat.notification.created","icon":"comments","href":"/api-reference/webhooks/chat.notification.created"},{"title":"chat.custom-properties.updated","icon":"comments","href":"/api-reference/webhooks/chat.custom-properties.updated"},{"title":"message.created","icon":"comment","href":"/api-reference/webhooks/message.created"},{"title":"message.updated","icon":"comment","href":"/api-reference/webhooks/message.updated"},{"title":"message.deleted","icon":"comment","href":"/api-reference/webhooks/message.deleted"},{"title":"message.ack.updated","icon":"comment","href":"/api-reference/webhooks/message.ack.updated"},{"title":"message.ticket.attached","icon":"comment","href":"/api-reference/webhooks/message.ticket.attached"},{"title":"message.flagged","icon":"comment","href":"/api-reference/webhooks/message.flagged"},{"title":"message.unflagged","icon":"comment","href":"/api-reference/webhooks/message.unflagged"},{"title":"note.created","icon":"comment","href":"/api-reference/webhooks/note.created"},{"title":"reaction.created","icon":"face-smile","href":"/api-reference/webhooks/reaction.created"},{"title":"reaction.updated","icon":"face-smile","href":"/api-reference/webhooks/reaction.updated"},{"title":"ticket.created","icon":"tag","href":"/api-reference/webhooks/ticket.created"},{"title":"ticket.updated","icon":"tag","href":"/api-reference/webhooks/ticket.updated"},{"title":"ticket.deleted","icon":"tag","href":"/api-reference/webhooks/ticket.deleted"},{"title":"org.phone.updated","icon":"phone","href":"/api-reference/webhooks/org.phone.updated"},{"title":"org.phone.connected","icon":"phone","href":"/api-reference/webhooks/org.phone.connected"},{"title":"org.phone.disconnected","icon":"phone","href":"/api-reference/webhooks/org.phone.disconnected"},{"title":"org.phone.qr","icon":"phone","href":"/api-reference/webhooks/org.phone.qr"}]}]},{"anchor":"Free Tools","icon":"toolbox","href":"https://tools.periskope.app"}]},"basePath":"","title":"Update Webhook - Periskope Docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}