MemorySync
API Reference · Control-plane API

Create Webhook

Register an organization webhook endpoint, select supported event types, and capture the signing secret returned once.

Endpoint contract

POST/org/webhooks
201 Created

Use the exact method and path shown above. Paths are relative to the API base URL.

Authentication, permission, and scope

ControlRequired contract
AuthenticationBearer access token.
Permission or scopewebhooks.manage capability and webhooks:write scope.
Resource scopeThe endpoint is organization-scoped and optionally bound to an authorized project.

Request fields

FieldTypeContract
namestringRequired; 1–128 characters.
urlURLRequired destination; private/internal destinations are rejected.
eventsstring[]Required canonical event types.
descriptionstringOptional; up to 500 characters.
retry_configobjectOptional validated delivery retry settings.
signature_configobjectOptional HMAC header and tolerance settings.
project_idstringOptional authorized project.

Code examples

import os
from memorysync import ControlPlaneClient
client = ControlPlaneClient(
base_url="https://api.memorysync.io",
access_token=os.environ["MEMORYSYNC_ACCESS_TOKEN"],
)
webhook = client.create_webhook(
"Production events",
"https://hooks.example.com/memorysync",
["memory.created"],
project_id=os.environ["MEMORYSYNC_PROJECT_ID"],
)

Response shape

response.json
{"id":51,"name":"Production events","url":"https://hooks.example.com/memorysync","secret_prefix":"whsec_abcd","events":["memory.created"],"enabled":true,"signature_algorithm":"hmac-sha256","project_id":"project_abc123","secret":"<shown-once>"}
  • The raw secret appears only on creation or explicit rotation.
  • Fetch /org/webhooks/event-types when your UI needs the canonical event list.

Status outcomes

HTTP outcomes
2xx
Request completed

Read the operation-specific response and persist only fields needed by the task.

400 / 422
Correct the request

Fix invalid path, query, or body fields before trying again.

401 / 403
Access denied

Refresh authentication or verify the required organization permission and scope.

404
Unavailable in scope

Treat the resource as unavailable without revealing whether it exists elsewhere.

429 / 5xx
Keep the action recoverable

Use returned retry metadata when present and reconcile uncertain mutations before repeating them.

Production handling

Production request path
  1. 01

    Authorize

    APP

    Confirm the signed-in principal may perform this product action.

  2. 02

    Validate

    INPUT

    Validate identifiers and body fields before sending the request.

  3. 03

    Call

    SDK

    Use the named ControlPlaneClient method or equivalent HTTPS request from a trusted application context.

  4. 04

    Inspect

    RESULT

    Store the one-time secret immediately in an approved secret manager.

  5. 05

    Reconcile

    SAFE

    Verify the returned endpoint ID and project scope before reporting completion.

Security notes

Control-plane safety

Required

Keep organization controls inside trusted boundaries.

  • Use an HTTPS destination you control.
  • Never log or re-display the raw signing secret.
  • Verify signatures and timestamps before processing webhook payloads.

Avoid

Do not weaken the route contract in client code.

  • Do not expose bearer or refresh tokens in URLs, logs, or public clients.
  • Do not accept organization, member, project, or resource IDs without application authorization.
  • Do not treat returned data as trusted HTML, prompt instructions, or proof of application authorization.
Was this page helpful?