KINETIC
KINETIC APIProtocol · API reference
MD-Version 2026-06-11 Request access

Control plane

Webhook Endpoints

Register HTTPS endpoints to receive signed event deliveries. Each endpoint has its own signing secret and event filter. See Webhooks for the event catalog and signature verification.

POST/v1/webhook_endpointsCreate a webhook endpoint
GET/v1/webhook_endpointsList webhook endpoints
GET/v1/webhook_endpoints/{webhook_endpoint_id}Retrieve a webhook endpoint
PATCH/v1/webhook_endpoints/{webhook_endpoint_id}Update a webhook endpoint
DELETE/v1/webhook_endpoints/{webhook_endpoint_id}Delete a webhook endpoint
POST/v1/webhook_endpoints

Create a webhook endpoint

Registers an HTTPS endpoint for signed event deliveries. The signing_secret is returned once, on this response only — store it; you need it to verify MD-Signature headers. Sandbox also accepts http URLs for local development.

scope · webhook_endpoints:writeidempotent · Idempotency-Key
§ Body parameters
FieldType
url
required
string
enabled_eventsarray · omit or ["*"] for all events
# sandbox — full surface, no production data
curl -X POST https://sandbox.api.microndelta.com/v1/webhook_endpoints \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 7c2e-a914" \
  -d '{
    "url": "https://example.com/md/webhooks",
    "enabled_events": ["judgment.created", "packet.created"]
  }'
import requests

resp = requests.post(
    "https://sandbox.api.microndelta.com/v1/webhook_endpoints",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
        "Idempotency-Key": "7c2e-a914",
    },
    json={
        "url": "https://example.com/md/webhooks",
        "enabled_events": [
            "judgment.created",
            "packet.created"
        ]
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/webhook_endpoints", {
  method: "POST",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
    "Content-Type": "application/json",
    "Idempotency-Key": "7c2e-a914",
  },
  body: JSON.stringify({
    "url": "https://example.com/md/webhooks",
    "enabled_events": [
      "judgment.created",
      "packet.created"
    ]
  }),
});
console.log(await resp.json());
● 201MD-Request-Id: req_01J…
200 Response
{
  "webhook_endpoint_id": "we_8KdQ2n4Vb1Xc7M",
  "url": "https://example.com/md/webhooks",
  "enabled_events": ["judgment.created", "packet.created"],
  "status": "enabled",
  "signing_secret": "whsec_kkVbNz31qPe8RmT4cYxAhD2w",
  "created_at": "2026-06-12T18:40:00Z"
}
GET/v1/webhook_endpoints

List webhook endpoints

Lists registered endpoints for the current environment. Signing secrets are never returned after creation.

scope · webhook_endpoints:read
§ Query parameters
ParameterType
limitinteger · 1–100, default 20
starting_afterstring · cursor
ending_beforestring · cursor
# sandbox — full surface, no production data
curl "https://sandbox.api.microndelta.com/v1/webhook_endpoints?limit=20" \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11"
import requests

resp = requests.get(
    ""https://sandbox.api.microndelta.com/v1/webhook_endpoints?limit=20"",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
    },
)
print(resp.json())
const resp = await fetch(""https://sandbox.api.microndelta.com/v1/webhook_endpoints?limit=20"", {
  method: "GET",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
  },
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "object": "list",
  "data": [
    {
      "webhook_endpoint_id": "we_8KdQ2n4Vb1Xc7M",
      "url": "https://example.com/md/webhooks",
      "enabled_events": ["judgment.created", "packet.created"],
      "status": "enabled",
      "created_at": "2026-06-12T18:40:00Z"
    }
  ],
  "has_more": false
}
GET/v1/webhook_endpoints/{webhook_endpoint_id}

Retrieve a webhook endpoint

Gets one endpoint by id. Returns not_found (404) if no endpoint with this id exists in your organization and environment.

scope · webhook_endpoints:read
§ Path parameters
ParameterType
webhook_endpoint_id
required · path
string
# sandbox — full surface, no production data
curl https://sandbox.api.microndelta.com/v1/webhook_endpoints/we_8KdQ \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11"
import requests

resp = requests.get(
    "https://sandbox.api.microndelta.com/v1/webhook_endpoints/we_8KdQ",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/webhook_endpoints/we_8KdQ", {
  method: "GET",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
  },
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "webhook_endpoint_id": "we_8KdQ2n4Vb1Xc7M",
  "url": "https://example.com/md/webhooks",
  "enabled_events": ["judgment.created", "packet.created"],
  "status": "enabled",
  "created_at": "2026-06-12T18:40:00Z"
}
PATCH/v1/webhook_endpoints/{webhook_endpoint_id}

Update a webhook endpoint

Updates the URL, event filter, or status. Disabled endpoints stop receiving deliveries immediately.

scope · webhook_endpoints:write
§ Body parameters
FieldType
urlstring
enabled_eventsarray
statusenabled | disabled
# sandbox — full surface, no production data
curl -X PATCH https://sandbox.api.microndelta.com/v1/webhook_endpoints/we_8KdQ \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11" \
  -H "Content-Type: application/json" \
  -d '{ "status": "disabled" }'
import requests

resp = requests.patch(
    "https://sandbox.api.microndelta.com/v1/webhook_endpoints/we_8KdQ",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
    },
    json={
        "status": "disabled"
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/webhook_endpoints/we_8KdQ", {
  method: "PATCH",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "status": "disabled"
  }),
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "webhook_endpoint_id": "we_8KdQ2n4Vb1Xc7M",
  "url": "https://example.com/md/webhooks",
  "enabled_events": ["judgment.created", "packet.created"],
  "status": "disabled",
  "created_at": "2026-06-12T18:40:00Z"
}
DELETE/v1/webhook_endpoints/{webhook_endpoint_id}

Delete a webhook endpoint

Removes the endpoint. Deliveries stop immediately; the signing secret is invalidated.

scope · webhook_endpoints:write
§ Path parameters
ParameterType
webhook_endpoint_id
required · path
string
# sandbox — full surface, no production data
curl -X DELETE https://sandbox.api.microndelta.com/v1/webhook_endpoints/we_8KdQ \
  -H "Authorization: Bearer md_test_xxxxxxxxxxxxxxxx" \
  -H "MD-Version: 2026-06-11"
import requests

resp = requests.delete(
    "https://sandbox.api.microndelta.com/v1/webhook_endpoints/we_8KdQ",
    headers={
        "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
        "MD-Version": "2026-06-11",
    },
)
print(resp.json())
const resp = await fetch("https://sandbox.api.microndelta.com/v1/webhook_endpoints/we_8KdQ", {
  method: "DELETE",
  headers: {
    "Authorization": "Bearer md_test_xxxxxxxxxxxxxxxx",
    "MD-Version": "2026-06-11",
  },
});
console.log(await resp.json());
● 200MD-Request-Id: req_01J…
200 Response
{
  "webhook_endpoint_id": "we_8KdQ2n4Vb1Xc7M",
  "deleted": true
}