Build on Ideadunes

120 endpoints · 12 SDKs · webhooks · marketplace economy. Production-ready in minutes.

Quickstart

Create your first booking in 30 seconds.

# 1. Get your API key from apps.ideadunes.com/settings/api
curl https://api.ideadunes.com/v1/bookings \
  -H "Authorization: Bearer sk_live_..." \
  -H "X-Tenant-Id: tnt_ideadunes" \
  -H "Idempotency-Key: bk_01HXYZ..." \
  -d '{
    "customer_id": "cust_priya_01",
    "service_id": "svc_consult_30",
    "resource_id": "res_dr_niket",
    "start_at": "2026-04-20T05:00:00Z",
    "channel": "video_zoom"
  }'

All 120 endpoints

12 official SDKs

JavaScript / TypeScript

npm i @ideadunes/sdk

v2.3

Python

pip install ideadunes

v2.1

PHP

composer require ideadunes/sdk

v1.8

Ruby

gem install ideadunes

v1.6

Go

go get github.com/ideadunes/go

v1.4

Java / Kotlin

Maven Central

v1.3

.NET / C#

NuGet

v1.2

Swift / iOS

Swift Package Manager

v1.0 beta

Kotlin / Android

Gradle

v1.0 beta

Flutter

pub.dev

preview

React Native

JSI bindings

preview

Embed widget

<script src="...idunes.js">

stable

Webhook signatures

Every webhook is signed with HMAC-SHA256. Verify before processing.

// Headers on every webhook delivery
X-Idunes-Event: booking.confirmed
X-Idunes-Id: evt_01HXYZ123
X-Idunes-Tenant: tnt_ideadunes
X-Idunes-Signature: t=1761...,v1=sha256_hex
X-Idunes-Attempt: 1
Content-Type: application/json

// Verify in Node.js
const sig = req.headers['x-idunes-signature'];
const [t, v1] = sig.split(',').map(p => p.split('=')[1]);
const expected = crypto.createHmac('sha256', secret)
  .update(t + '.' + req.rawBody).digest('hex');
if (expected !== v1) throw new Error('invalid signature');