Developer docs
Wire your workspace’s ordering, enquiry, and catalog into any site — embeddable widgets or a REST API. Create a key under Admin → Developers.
Embed (one line)
Drop the script on any landing page with your publishable key.
<script src="https://afterlaunch.app/embed.js" data-key="wpk_your_publishable_key" data-launcher="true"></script> <!-- Wire any element: --> <button data-afterlaunch="enquiry">Contact us</button> <button data-afterlaunch="order" data-service="smtp-gateway">Order</button> <div data-afterlaunch="services"></div>
Or call it programmatically:
AfterLaunch.init({ key: "wpk_..." });
AfterLaunch.openEnquiry();
AfterLaunch.openOrder({ service: "smtp-gateway" });
AfterLaunch.mountServices("#services");REST API
Base URL https://afterlaunch.app/api/v1. Authenticate with Authorization: Bearer <key>. Publishable keys (wpk_) are browser-safe; secret keys (wsk_) are server-side.
# List services + multi-currency prices
curl https://afterlaunch.app/api/v1/services -H "Authorization: Bearer wpk_..."
# Create an order (returns a checkout payload)
curl -X POST https://afterlaunch.app/api/v1/orders \
-H "Authorization: Bearer wpk_..." -H "Content-Type: application/json" \
-d '{"planId":"<plan-uuid>","email":"client@acme.com","currency":"INR"}'
# Submit an enquiry
curl -X POST https://afterlaunch.app/api/v1/enquiries \
-H "Authorization: Bearer wpk_..." -H "Content-Type: application/json" \
-d '{"email":"client@acme.com","message":"Tell me more","productSlug":"smtp-gateway"}'
# Check status
curl https://afterlaunch.app/api/v1/orders/<id> -H "Authorization: Bearer wpk_..."
curl https://afterlaunch.app/api/v1/enquiries/<id> -H "Authorization: Bearer wpk_..."Full schema: openapi.json.
Webhooks
Add endpoints under Developers and subscribe to events:order.completed,enquiry.created,payment.succeeded and more. Each delivery is signed — verify it:
import { createHmac, timingSafeEqual } from "crypto";
function verify(rawBody, signature, secret) {
const expected = createHmac("sha256", secret).update(rawBody).digest("hex");
return timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}
// header: x-afterlaunch-signatureKeys, CORS origins, and webhook endpoints are managed per workspace inAdmin → Developers.