Moshtix Developer Documentation

Moshtix Developer Documentation

  • Docs
  • API Playground
  • Terms Of Use
  • Need Help?

›Getting Started

Getting Started

  • Our API
  • Authentication
  • Queries
  • Mutations
  • Dates
  • Currency
  • Images
  • Errors
  • Webhooks
  • Widgets

Our API

Introduction

Please review our Terms Of Service here.

Our API is an 'Open' API, meaning that not only can anyone use our API, but it is also used by all of our internally developed modern products.

This helps ensure that it is fit for purpose, and working correctly, as it's proper function is critical to our own business.

We do our best to ensure any changes to the structure of our API are backward compatible, and a suite of integration tests help ensure we know if a breaking change is introduced. In future we may implement new major versions of the API using URL versioning i.e. api.moshtix.com/v2/graphql, api.moshtix.com/v3/graphql, etc.

You can use our API Playground to interact with our production API. Take a look at the example query when you get to the playground and click the play button. Try opening dev tools and inspecting network requests if you want to get a feel for how it works.

GraphQL

Our API is a GraphQL API. GraphQL uses a single HTTP POST endpoint (api.moshtix.com/v1/graphql) to process all API requests, and uses the request body to describe which operation the server should process, along with any request variables.

There are many public libraries in almost every language that can be used to interact with GraphQL API's, but in the end a simple POST request is all that is required, so any HTTP library will get you by for simple use cases. For example the following Javascript code will return a list of events in JSON format.

import fetch from 'node-fetch';

const execute = async () => {
  const query = `
    query {
      viewer {
        getEvents {
          items {
            name
            startDate
          }
        }
      }
    }
  `;

  const response = await fetch('https://api.moshtix.com/v1/graphql', {
    method: 'POST',
    body: JSON.stringify({ query }),
    headers: { 'Content-Type': 'application/json' },
  });

  console.log(JSON.stringify(await response.json()));
};

execute();

In GraphQL there are two types of operations, queries (read) and mutations (write).

GraphQL APIs are also self documenting, so our API specification updates automatically when we make changes to the structure of our API. Check out the Docs section of the API Playground.

Test Account

Anyone can register as a Moshtix client, create events, subscribe to webhooks related to that client, buy tickets, view insights etc. Just register here and log in https://control-room.moshtix.com/register. Once you have a valid user and client account, you can use the same creditials with our API to interact with your test account.

Remember though you should never 'Approve/Publish' test events, as they will be searchable on the Moshtix website. If you need to test purchasing tickets to trigger webhooks, use the 'Preview URL' for the event. $0 ticket types can be used for testing to avoid having to use your real money, otherwise paid transactions can be refunded using the Refunds and Exchanges page of the Moshtix Control Room.

Event Driven vs Polling Integrations

Where possible, we encourage developers to implement event driven integrations using webhooks, instead of polling our API at regular intervals, as polling can have a negative impact on performance.

If your integration is impairing the performance of our API, we will have no choice but to disable your integration, to ensure the proper function of our applications and other integrations.

We always prefer if developers get in touch to discuss the best way to architect their integration before development begins, so that we can discuss and agree the most efficient approach to the problems you are solving, and also identify any gaps in functionality as early as possible in the project so that we might be able to implement any missing features required to ensure they're ready by the time you need them.

Authentication →
  • Introduction
  • GraphQL
  • Test Account
  • Event Driven vs Polling Integrations
Copyright © 2025 Moshtix Pty Ltd