Developers

Three ways to put booking on your website.

Every integration talks to the same public BookDinePlay API, so availability, menus and reservations stay consistent no matter how you embed them.

Plain JavaScript SDK

Drop a widget into any website.

Framework-free and dependency-free. Load the script, call renderBookingWidget, and BookDinePlay renders a self-contained, style-isolated reservation flow inside your container element.

  1. Add the script tag

    Load the BookDinePlay SDK from your own hosting or a CDN of your choice.

  2. Add a container element

    Place an empty element with an id where you want the widget to render.

  3. Call renderBookingWidget

    Pass your venue slug, API base URL and the resource types you want to expose.

<div id="bookdineplay-widget"></div>
<script src="/assets/bookdineplay.js"></script>
window.BookDinePlay.renderBookingWidget({
  container: '#bookdineplay-widget',
  venueSlug: 'demo-sportsbar',
  apiBaseUrl: 'https://localhost:5001',
  resourceTypes: ['RestaurantTable', 'BilliardTable', 'DartBoard']
});

WordPress plugin

One shortcode, anywhere on your site.

Install the BookDinePlay plugin, and it enqueues the JavaScript SDK for you. Drop the shortcode into any page, post or block, and set which venue it should render.

  1. Install the plugin

    Upload the plugin skeleton to your WordPress site and activate it from the plugins screen.

  2. Add the shortcode

    Paste the shortcode into any page, post or widget area.

  3. Set the venue attribute

    Point the shortcode at your venue slug — attributes are sanitized and output is escaped.

[bookdineplay_widget venue="demo-sportsbar"]
// bookdineplay.php (excerpt)
add_shortcode( 'bookdineplay_widget', 'bookdineplay_render_widget' );

function bookdineplay_render_widget( $atts ) {
    $atts = shortcode_atts( [ 'venue' => '' ], $atts );
    $venue = sanitize_title( $atts['venue'] );
    return sprintf(
        '<div class="bookdineplay-widget" data-venue="%s"></div>',
        esc_attr( $venue )
    );
}

.NET SDK

A typed client for custom applications.

Reach for BookDinePlay.Sdk when you're building a custom web app, an internal operations tool, or a service that needs typed access to venues, menus, availability and reservations.

  1. Register the client

    Add BookDinePlayClient to your dependency injection container with a configured HttpClient.

  2. Call typed methods

    Use resource-specific clients for venues, menus, availability, reservations and payment intents.

  3. Share contracts

    Request and response types come from BookDinePlay.Contracts, so your app and the API never drift apart.

// Program.cs
builder.Services.AddHttpClient<BookDinePlayClient>(client =>
{
    client.BaseAddress = new Uri("https://localhost:5001");
});
var venue = await client.Venues.GetAsync("demo-sportsbar", cancellationToken);

var availability = await client.Availability.GetAsync(
    venueSlug: "demo-sportsbar",
    date: DateOnly.FromDateTime(DateTime.Today),
    partySize: 4,
    resourceType: BookableResourceType.RestaurantTable,
    cancellationToken);

var reservation = await client.Reservations.CreateAsync(
    venueSlug: "demo-sportsbar",
    request: createReservationRequest,
    cancellationToken);

Need help wiring it up?

We'll help you embed BookDinePlay on your stack.