Skip to main content

Event payloads

Notifications deliver context data in a consistent JSON format, mirroring the structure of our API responses. Use this data to:

  • Apply filters using MongoDB-style queries.
  • Enrich third-party systems with entity metadata.

Below are some examples of typical JSON event payloads.

Approvals

The context data you receive follows the same structure as responses from our public API’s read endpoints. That also means you can expect each entity to include any associated metadata, if available.

The details object in the payload contains entities relevant to the specific approval request.

For more information about entity schemas, refer to our API reference.

Deployment

In a deployment approval, details.deployment matches the structure of a GET request to our deployments endpoint.

Payload example - Deployment
{
"approval_id": 1,
"approve_url": "https://api.nullplatform.com/approval/1/approve?token=xxx",
"deny_url": "https://api.nullplatform.com/approval/1/deny?token=yyy",
"requested_by": {
"user_id": 1,
"email": "alex.doe.developer@domain.com",
"first_name": "alex",
"last_name": "doe",
"avatar": null
},
"action": "deployment:create",
"details": {
"deployment": {
"id": 6,
"scope_id": 6,
"release_id": 7,
"status": "creating_approval",
"status_in_scope": "candidate",
"messages": [],
"parameters": [],
"strategy": "initial",
"strategy_data": {},
"created_at": "2025-03-18T14:09:33.412Z",
"updated_at": "2025-05-10T08:47:19.983Z",
"expires_at": "2025-05-18T08:47:19.984Z",
"created_by": 444,
"updated_by": null,
"deployment_token": "abc-3f9cb741-77ea-4c62-bd1a-58d9c2a1ef34",
"deployment_group_id": null,
"status_started_at": {
"creating_approval": "2025-03-24T19:15:38.298Z"
},
"nrn": "organization=1:account=2:namespace=3:application=4:scope=5:deployment=6",
"metadata": {}
},
"scope": {
"id": 6,
"name": "Production Argentina",
"metadata": {},
"type": "web_pool",
"asset_name": "main",
"application_id": 4,
"status": "active",
"slug": "production-argentina",
"domain": "kong-namespace-acme-test-app-production-argentina-ghebf.acme-corp-main.apps.io",
"requested_spec": {
"cpu_profile": "standard",
"memory_in_gb": 0.125,
"local_storage_in_gb": 8
},
"tier": "important",
"external_created": false,
"provider": "AWS:WEB_POOL:EC2INSTANCES",
"instance_id": null,
"updated_at": "2025-03-24T19:15:38.293Z",
"messages": [],
"profiles": [],
"capabilities": {
"continuous_delivery": {
"enabled": false
},
"logs": {
"throttling": {
"unit": "line_seconds",
"value": 1000,
"enabled": false
},
"provider": "cloudwatch_logs"
},
"metrics": {
"custom_metrics_provider": "cloudwatch_metrics",
"performance_metrics_provider": "cloudwatch_metrics"
},
"spot_instances": {
"target_percentage": 80,
"enabled": false
},
"auto_scaling": {
"cpu": {
"max_percentage": 40,
"min_percentage": 40
},
"instances": {
"max_amount": 10,
"min_amount": 2,
"amount": 1
},
"enabled": false
},
"memory": {
"memory_in_gb": 0.125
},
"storage": {
"storage_in_gb": 8
},
"processor": {
"instance": "",
"type": "cpu"
},
"visibility": {
"reachability": "account"
},
"health_check": {
"type": "http",
"path": "/health",
"configuration": {
"timeout": 2,
"interval": 5
}
},
"scheduled_stop": {
"timer": "3600",
"enabled": true
}
},
"tags": ["test", "stopped", "parameters_changes"],
"dimensions": {
"environment": "production",
"country": "argentina"
},
"runtime_configurations": [11, 22],
"domains": [],
"nrn": "organization=1:account=2:namespace=3:application=4:scope=5"
},
"release": {
"id": 7,
"semver": "0.0.1",
"build_id": 8,
"status": "active",
"application_id": 4,
"created_at": "2025-03-18T14:09:33.412Z",
"updated_at": "2025-05-10T08:47:19.983Z",
"nrn": "organization=1:account=2:namespace=3:application=4:scope=5:release=8",
"metadata": {}
},
"build": {
"id": 8,
"application_id": 4,
"commit": {
"id": "a93f1e6bd4c8fa705b2dcb197a3e4d8615c9ab32",
"permalink": "https://github.com/acme-corp/kong-namespace-acme-test-app/commit/a93f1e6bd4c8fa705b2dcb197a3e4d8615c9ab32"
},
"status": "successful",
"description": "wip",
"branch": "main",
"created_at": "2025-03-18T14:09:33.412Z",
"updated_at": "2025-05-10T08:47:19.983Z",
"nrn": "organization=1:account=2:namespace=3:application=4:build=8",
"metadata": {}
},
"application": {
"id": 4,
"name": "Acme Test App",
"status": "active",
"namespace_id": 3,
"repository_url": "https://github.com/acme-corp/kong-namespace-acme-test-app",
"slug": "acme-test-app",
"template_id": 9,
"auto_deploy_on_creation": false,
"repository_app_path": null,
"is_mono_repo": false,
"tags": {},
"nrn": "organization=1:account=2:namespace=3:application=4",
"metadata": {}
},
"namespace": {
"id": 3,
"name": "Kong namespace",
"account_id": 2,
"slug": "kong-namespace",
"status": "active",
"nrn": "organization=1:account=2:namespace=3",
"metadata": {}
},
"account": {
"id": 2,
"name": "main",
"organization_id": 1,
"repository_prefix": "acme-corp",
"repository_provider": "github",
"status": "active",
"slug": "acme-corp-main",
"nrn": "organization=1:account=2",
"metadata": {}
},
"organization": {
"id": 1,
"name": "acme corp",
"slug": "acme-corp",
"logo": null,
"short_logo": null,
"logo_dark": null,
"short_logo_dark": null,
"nrn": "organization=1",
"metadata": {}
}
},
"policy_details": null
}

Parameter

In a parameter approval, details.parameter matches the structure of a GET request to our parameter endpoint.

Payload example - Parameter
{
"approval_id": 1,
"approve_url": "https://api.nullplatform.com/approval/1/approve?token=xxx",
"deny_url": "https://api.nullplatform.com/approval/1/deny?token=yyy",
"requested_by": {
"user_id": 1,
"email": "alex.doe.developer@domain.com",
"first_name": "alex",
"last_name": "doe",
"avatar": null
},
"action": "parameter:read-secrets",
"details": {
"user": {
"id": 123,
"email": "alex.doe.developer@domain.com",
"status": "active",
"firstName": "alex",
"lastName": "doe",
"organizationId": 1,
"avatar": null,
"type": "person",
"provider": "cognito",
"nrn": "organization=1",
"metadata": {}
},
"parameter": {
"id": 11,
"name": "my secret",
"nrn": "organization=1:account=2:namespace=3:application=4",
"type": "environment",
"encoding": "plaintext",
"variable": "MY_SECRET",
"secret": true,
"values": [],
"version_id": 11,
"read_only": false
},
"application": {
"id": 4,
"name": "Acme parameters app",
"status": "active",
"namespace_id": 3,
"repository_url": "https://github.com/acme-corp/kong-namespace-acme-parameters-app",
"slug": "acme-parameters-app",
"template_id": 9,
"auto_deploy_on_creation": false,
"repository_app_path": null,
"is_mono_repo": false,
"tags": {},
"nrn": "organization=1:account=2:namespace=3:application=4",
"metadata": {}
},
"namespace": {
"id": 3,
"name": "Kong namespace",
"account_id": 2,
"slug": "kong-namespace",
"status": "active",
"nrn": "organization=1:account=2:namespace=3",
"metadata": {}
},
"account": {
"id": 2,
"name": "main",
"organization_id": 1,
"repository_prefix": "acme-corp",
"repository_provider": "github",
"status": "active",
"slug": "acme-corp-main",
"nrn": "organization=1:account=2",
"metadata": {}
},
"organization": {
"id": 1,
"name": "acme corp",
"slug": "acme-corp",
"logo": null,
"short_logo": null,
"logo_dark": null,
"short_logo_dark": null,
"nrn": "organization=1",
"metadata": {}
}
},
"policy_details": null,
"expires_at": "2025-02-17T20:30:35.563Z",
"time_to_reply": "259200000",
"allowed_time_to_execute": "86400000"
}

Services

This is the payload you receive when a service action is created. It matches the structure of a GET request to our service action spec endpoint.

Payload example - Service
{
"action": "service:action:create",
"id": "6f3d91ba-4e2c-41f8-9c0a-bb1e2d44a7fc",
"name": "create-testing",
"slug": "create-testing",
"status": "pending",
"created_at": "2025-03-18T14:09:33.412Z",
"updated_at": "2025-05-10T08:47:19.983Z",
"parameters": {
"fifo": false,
"dead_letter": false
},
"results": {},
"type": "create",
"specification": {
"id": "f4ce298b-9d7e-4564-8a12-7e0dcb11f5a6",
"slug": "create-sqs-queue"
},
"service": {
"id": "73bda6f0-2c91-4fa7-bf3a-dccf8c4e7e1d",
"slug": "testing",
"attributes": {
"visibility_timeout": 30
},
"specification": {
"id": "8c1a3f92-b7e0-4d13-a98f-21f56ae0c4bb",
"slug": "sqs-queue"
},
"dimensions": {}
},
"link": null,
"tags": {
"organization_id": "1",
"organization": "acme-corp",
"application_id": "4",
"application": "acme-services-action-app",
"account_id": "2",
"account": "main",
"namespace_id": "3",
"namespace": "Kong namespace"
},
"entity_nrn": "organization=1:account=2:namespace=3:application=4"
}

Audit

This is a payload example with entity context you receive when a audit is created.

Payload example - audit
{
"entity_context":
{
"organization_id": 1,
"organization_name": "acme corp",
"organization_slug": "acme-corp",
"account_id": 2,
"account_name": "main",
"account_slug": "acme-corp-main",
"namespace_id": 3,
"namespace_name": "Kong namespace",
"namespace_slug": "kong-namespace",
"application_name": "Acme Test App",
"application_slug": "acme-test-app"
},
"user_email": "alex.doe.developer@domain.com",
"user_type": "person",
"entity_data":
{
"version": "12",
"id": 4,
"name": "Acme Test App",
"status": "active",
"namespace_id": 3,
"repository_url": "https://github.com/acme-corp/kong-namespace-acme-test-app",
"slug": "acme-test-app",
"template_id": 9,
"auto_deploy_on_creation": false,
"repository_app_path": null,
"is_mono_repo": false,
"tags":
{},
"nrn": "organization=1:account=2:namespace=3:application=4",
"metadata":
{}
},
"entity": "application",
"entity_id": "4",
"method": "PATCH",
"status": 204,
"url": "/application/4",
"ips": "",
"headers":
{
"connection": "close",
"host": "api.nullplatform.io",
"x_forwarded_for": "11.2.33.444, 22.3.44.555",
"x_real_ip": "22.3.44.555",
"content_length": "12",
"x_forwarded_proto": "https",
"x_forwarded_port": "443",
"x_amzn_trace_id": "Root=1-123bbccd-456a7b8901234cde5f67f890",
"accept": "application/json, text/plain, */*",
"content_type": "application/json",
"np_user_id": "123",
"np_organization_id": "1",
"authorization": "[REDACTED]",
"user_agent": "axios/1.1.1",
"accept_encoding": "gzip, compress, deflate, br",
"x_datadog_trace_id": "99",
"x_datadog_parent_id": "88",
"x_datadog_sampling_priority": "-1",
"x_datadog_tags": "_dd.p.tid=89f7cd21a1b2c3d4",
"traceparent": "00-89f7cd21a1b24e3a9f0b7c8d6e5a4c3b2d1",
"tracestate": "dd=t.tid:89f7cd21a1b2c3d4;t.dm:-3;s:-1;p:a4c3b2d1"

},
"request_body":
{
"name": "Acme Test App"
},
"organization_id": 1,
"user_id": 123,
"application": "acme-test-app",
"scope": "production-argentina",
"organization_name": "acme corp",
"organization_slug": "acme-corp",
"name": "Acme Test App",
"slug": "acme-test-app",
"date": "2025-05-18T08:47:19.984Z",
"messageId": "abc-7d2fe831-a3b9-495c-9f17-3a8a123bfc6c"
}