Documentation

EventPnP Public API

Integrate EventPnP ticketing into any platform. All endpoints return JSON. Authenticated endpoints require a Supabase JWT via Bearer token.

Base URL: https://eventpnp.com/api/v1
GET/api/v1/events

List all public upcoming events

Params: limit (max 100), offset, search, category

Example Request

curl "https://eventpnp.com/api/v1/events?limit=10&search=tech"

Example Response

{
  "data": [
    {
      "id": "uuid",
      "title": "DevFest Accra 2025",
      "slug": "devfest-accra-2025",
      "venue_name": "Accra Digital Centre",
      "starts_at": "2025-11-15T09:00:00Z",
      "cover_image_url": "https://..."
    }
  ],
  "meta": { "limit": 10, "offset": 0, "total": 42 }
}
GET/api/v1/events/:slug

Get event details including ticket types

Params: slug (path parameter)

Example Request

curl "https://eventpnp.com/api/v1/events/devfest-accra-2025"

Example Response

{
  "data": {
    "id": "uuid",
    "title": "DevFest Accra 2025",
    "ticket_types": [
      {
        "id": "uuid",
        "name": "General Admission",
        "price_ghs": "50.00",
        "remaining": 120,
        "status": "available",
        "checkout_url": "https://eventpnp.com/events/devfest-accra-2025"
      }
    ]
  }
}
POST/api/v1/events/:slug/tickets

Create a ticket order (requires authentication)

Params: Authorization: Bearer <supabase_jwt>, body: { items: [{ ticket_type_id, quantity }] }

Example Request

curl -X POST "https://eventpnp.com/api/v1/events/devfest-accra-2025/tickets" \
  -H "Authorization: Bearer YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{"items": [{"ticket_type_id": "uuid", "quantity": 2}]}'

Example Response

{
  "data": {
    "order_id": "uuid",
    "total_ghs": "103.50",
    "currency": "GHS",
    "checkout_url": "https://eventpnp.com/checkout/uuid",
    "status": "pending"
  }
}

Embed on Your Website

No API key needed. Add a ticket widget to any webpage in under 60 seconds.

JavaScript Widget (recommended)

Auto-resizes, supports dark mode and custom colours.

<script src="https://eventpnp.com/widget.js"></script>
<div data-eventpnp data-event="your-event-slug"></div>

<!-- Dark theme with custom colour -->
<div data-eventpnp
  data-event="your-event-slug"
  data-theme="dark"
  data-color="7C3AED">
</div>

iFrame Embed

Works in Notion, WordPress, Squarespace, and any platform that supports iFrames.

<iframe
  src="https://eventpnp.com/embed/your-event-slug"
  width="100%"
  height="520"
  frameborder="0"
  style="border-radius: 12px">
</iframe>

Questions? Contact us at hello@eventpnp.com