NodukanNodukan/ Developers
Introduction

Getting Started

Make your first Nodukan API call in 5 minutes — generate a key, call an endpoint, schedule a post, and set up a webhook.

Getting Started

This guide walks you from zero to a working integration in about 5 minutes. By the end you'll have made a real API call, scheduled a social post, and configured a webhook.

Prerequisites#

  • A Nodukan creator account (sign up here if you don't have one)
  • curl or any HTTP client (Postman, Insomnia, HTTPie)
  • Optional: Node.js 18+ for the code samples

Step 1 — Sign up for developer access#

Head to developer.nodukan.com/signup and create a developer account. If you already have a creator account, you can use the same credentials.

Once logged in, navigate to Dashboard → API Keys.


Step 2 — Generate an API key#

  1. Click Create new key
  2. Give it a descriptive name (e.g. my-crm-integration)
  3. Select the scopes your integration needs (see Authentication → Scopes for the full list)
  4. Click Generate

Your key is shown once. Copy it immediately and store it in a secrets manager or environment variable.

NDK_live_k8f3mxqt2vrz9ywn.a7d4e1b9c2f0g5h6j3k8m2p4q7r1s9t0
Warning:

Never commit your API key to version control, log it to stdout, or expose it in client-side code. Keys beginning with NDK_live_ are production keys; NDK_test_ keys are safe to use in development.


Step 3 — Make your first request#

Let's verify the key works by calling the /account endpoint:

curl https://api.nodukan.com/v1/account \
  -H "Authorization: Bearer NDK_live_YOUR_KEY_HERE"

You should receive a 200 OK with your account details:

{
  "data": {
    "id": "usr_01j9x4km2v",
    "name": "Priya Sharma",
    "email": "[email protected]",
    "username": "priyasharma",
    "plan": "pro",
    "timezone": "Asia/Kolkata",
    "createdAt": "2024-08-15T09:00:00Z"
  },
  "requestId": "req_01j9xabc123"
}

Now let's fetch your lead magnets — any content giveaways you've set up for lead capture:

curl "https://api.nodukan.com/v1/lead-magnets?limit=5" \
  -H "Authorization: Bearer NDK_live_YOUR_KEY_HERE"

In Node.js:

const res = await fetch('https://api.nodukan.com/v1/lead-magnets?limit=5', {
  headers: { Authorization: 'Bearer NDK_live_YOUR_KEY_HERE' },
});
const { data, pagination } = await res.json();
console.log(`You have ${pagination.total} lead magnets.`);

Step 4 — Schedule a social post#

Let's schedule a LinkedIn post for tomorrow morning:

curl -X POST https://api.nodukan.com/v1/social/posts \
  -H "Authorization: Bearer NDK_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "linkedin",
    "content": "Excited to share my new free Notion template for creators! Link in bio. 🚀 #creators #productivity",
    "scheduledAt": "2026-05-07T06:00:00+05:30",
    "connectionId": "conn_01j9x..."
  }'

Response:

{
  "data": {
    "id": "post_01j9xzk3m",
    "platform": "linkedin",
    "status": "scheduled",
    "scheduledAt": "2026-05-07T06:00:00+05:30",
    "content": "Excited to share my new free Notion template..."
  },
  "requestId": "req_01j9x9d2e"
}
Note:

You need the social:write scope and an active LinkedIn connection to schedule posts. Find your connectionId by calling GET /social/connections first.


Step 5 — Set up a webhook#

Register an endpoint to receive real-time events. Here we subscribe to lead.captured so we're notified the moment someone submits one of your lead magnets:

curl -X POST https://api.nodukan.com/v1/webhooks \
  -H "Authorization: Bearer NDK_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-server.example.com/webhooks/nodukan",
    "events": ["lead.captured"],
    "description": "Forward leads to CRM"
  }'

Response:

{
  "data": {
    "id": "wh_01j9xnk2p",
    "url": "https://your-server.example.com/webhooks/nodukan",
    "events": ["lead.captured"],
    "signingSecret": "whsec_01j9xm4r...",
    "isActive": true,
    "createdAt": "2026-05-06T10:00:00Z"
  },
  "requestId": "req_01j9x5e3f"
}
Warning:

Save the signingSecret — it's shown only once and is used to verify webhook payloads using HMAC-SHA256. See the Webhook Verification guide for implementation details.

Nodukan will now POST a signed payload to your URL every time a lead is captured. Use the test endpoint to confirm delivery:

curl -X POST https://api.nodukan.com/v1/webhooks/wh_01j9xnk2p/test \
  -H "Authorization: Bearer NDK_live_YOUR_KEY_HERE"

What next?#

You've made your first API call, scheduled a post, and registered a webhook. Here's where to go from here:

TopicWhere to go
All authentication options, scopes, and key rotationAuthentication
Rate limit headers and retry strategiesRate Limits
Full error code referenceErrors
Webhook payload format and HMAC verificationWebhooks
Build an Auto-DM bot end to endAuto-DM Quickstart guide
Sync leads to your CRMLead Magnet Funnel guide
Interactive API explorerAPI Reference
Was this helpful?
Edit on GitHub

Last updated