Guides

Applications

Represent your end-customers with applications for webhook isolation

Applications are the core unit of customer isolation in Nahook. Each application represents one of your end-customers and provides them with their own set of webhook endpoints.

Applications require the Developer Portal feature, available on the Pro plan and above.

When to Use Applications

If you're building a B2B platform and your customers need webhooks, applications give you:

  • Customer isolation — each customer's endpoints are scoped to their application
  • Developer Portal access — create portal sessions per application so customers self-manage their endpoints
  • Filtering — view and manage endpoints per customer in the dashboard

Creating Applications

Via the Dashboard

Navigate to Developer Portal in your workspace sidebar. Click Create Application and provide:

  • Name — a human-readable name for the customer (e.g., "Acme Corp")
  • External ID (optional) — your internal identifier for this customer (e.g., cust_123, org_abc). Must be unique per workspace when provided.

Via the Management API

curl -X POST https://api.nahook.com/management/v1/workspaces/{workspaceId}/applications \
  -H "Authorization: Bearer nhm_..." \
  -H "Content-Type: application/json" \
  -d '{
    "externalId": "cust_123",
    "name": "Acme Corp",
    "metadata": {
      "plan": "enterprise"
    }
  }'
{
  "id": "app_abc123",
  "externalId": "cust_123",
  "name": "Acme Corp",
  "metadata": { "plan": "enterprise" },
  "createdAt": "2026-01-15T10:30:00.000Z",
  "updatedAt": "2026-01-15T10:30:00.000Z"
}

Via the Dashboard API

The same CRUD operations are available through the session-authenticated dashboard API:

curl -X POST https://api.nahook.com/api/workspaces/{workspaceId}/applications \
  -H "Authorization: Bearer <session-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "externalId": "cust_123",
    "name": "Acme Corp"
  }'

Creating Endpoints for an Application

Once an application exists, you can create endpoints scoped to it:

curl -X POST https://api.nahook.com/management/v1/workspaces/{workspaceId}/applications/{appId}/endpoints \
  -H "Authorization: Bearer nhm_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://acme.com/webhooks",
    "description": "Production webhook"
  }'

Alternatively, your customer can create their own endpoints through the Developer Portal.

Listing Application Endpoints

View all endpoints belonging to an application:

curl https://api.nahook.com/api/workspaces/{workspaceId}/applications/{appId}/endpoints \
  -H "Authorization: Bearer <session-token>"

Metadata

Applications support up to 5 key-value metadata pairs for your own tracking:

{
  "metadata": {
    "plan": "enterprise",
    "region": "us-east",
    "accountManager": "[email protected]"
  }
}

Application Lifecycle

When you delete an application, all endpoints belonging to that application are also deleted (cascade delete). This is useful for customer offboarding.

Integration with Developer Portal

The typical flow is:

  1. Create an application for each of your customers
  2. Create a portal session referencing the application's ID
  3. Redirect your customer to the portal URL
  4. The customer manages their own endpoints within their application's scope

See the Developer Portal overview and embedding guide for details.

Next Steps