NAV
shell ruby

Introduction

Welcome to the Tito API!

You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

Authentication

To authorize, use this code:

require 'tito'
Tito.api_key = 'YOUR-API-KEY'
curl --request GET \
  --url 'https://api.tito.io/v2/...' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

Make sure to replace YOUR-API-KEY with your API key.

Tito uses API keys to allow access to the API. You can find your API key by signing in at https://api.tito.io.

Your API key needs to included in the Authorization header so your requests can be authenticated, see the examples to the right:

Activities

Attributes

Attribute Type Description
capacity integer
date date
description text
end-time time
name string
private boolean Is it to be hidden on the event homepage and tickets or not. Default: false
question-ids array The Questions to be asked to those who register for this activity. Format: An array of Question IDs.
release-ids array The Releases that are part of the activity. Format: An array of Release IDs.
start-time time

Get all Activities

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/activities' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1000001",
      "type": "activities",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/activities/1000001"
      },
      "relationships": {
        "questions": {
          "links": {
            "related": "http://api.tito.io/v2/an-account/awesome-conf/questions?filter[activity]=1000001"
          }
        }
      }
    },
    {
      "id": "1000002",
      "type": "activities",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/activities/1000002"
      },
      "relationships": {
        "questions": {
          "links": {
            "related": "http://api.tito.io/v2/an-account/awesome-conf/questions?filter[activity]=1000002"
          }
        }
      }
    }
  ]
}

This endpoint retrieves all Activities for the given Event.

HTTP Request

GET https://api.tito.io/v2/:account/:event/activities

Get a specific Activity

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/activities/1000001' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": {
    "id": "1000001",
    "type": "activities",
    "attributes": {
      "capacity": 100,
      "date": "2016-07-26",
      "description": null,
      "end-time": "20:00",
      "name": "Day 2 Dinner",
      "private": false,
      "question-ids": [],
      "release-ids": ["conf-ticket", "workshop-ticket"],
      "start-time": "18:00"
    },
    "links": {
      "self": "https://api.tito.io/v2/an-account/awesome-conf/activities/1000001"
    },
    "relationships": {
      "questions": {
        "links": {
          "related": "http://api.tito.io/v2/an-account/awesome-conf/questions?filter[activity]=1000001"
        }
      }
    }
  }
}

This endpoint retrieves a specific Activity.

HTTP Request

GET https://api.tito.io/v2/:account/:event/activities/:activity

Creating a new Activity

curl --request POST \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/activities' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-Type: application/json'
  --data '{"data":{"type":"activities","attributes":{"capactity":100,"name":"Day 2 Dinner","release_ids":["conf-ticket","workshop-ticket"]}}}'

This endpoint creates a Activity on the given Event.

HTTP Request

POST https://api.tito.io/v2/:account/:event/activities

Parameters

Parameter Type Description
capacity integer
date date
description text
end-time time
name string
private boolean Is it to be hidden on the event homepage and tickets or not. Default: false
question-ids array The Questions to be asked to those who register for this activity. Format: An array of Question IDs.
release-ids array The Releases that are part of the activity. Format: An array of Release IDs.
start-time time

Updating a Activity

curl --request PATCH \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/activities/1000001' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-type: application/json'
  --data '{"data":{"type":"activities","id":"1000001","attributes":{"capacity":115}}}'

This endpoint updates a Activity on the given Event.

HTTP Request

PATCH https://api.tito.io/v2/:account/:event/activities/:activity

Parameters

Parameter Type Description
capacity integer
date date
description text
end-time time
name string
private boolean Is it to be hidden on the event homepage and tickets or not. Default: false
question-ids array The Questions to be asked to those who register for this activity. Format: An array of Question IDs.
release-ids array The Releases that are part of the activity. Format: An array of Release IDs.
start-time time

Deleting a Activity

curl --request DELETE \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/activities/1000001' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

This endpoint deletes a Activity on the given Event.

HTTP Request

DELETE https://api.tito.io/v2/:account/:event/activities/:activity

Check-in Lists

Attributes

Attribute Type Description
activity-ids array The Activities the check-in list is for. Format: An array of Activity IDs.
expires-at datetime The time at which the check-in list should no longer be accessible or null for no expiry.
question-ids array The Questions to show attendees’ answers to on the check-in list. Format: An array of Question IDs.
release-ids array The Releases the check-in list is for. Format: An array of Release IDs.
show-company-name boolean Show the attendees’ company name on the check-in list.
show-email boolean Show the attendees’ email address on the check-in list.
show-phone-number boolean Show the attendees’ phone number on the check-in list.
title string

Get all Check-in Lists

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/checkin_lists' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "awesomeconf-check-in-list",
      "type": "checkin-lists",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/checkin_lists/awesomeconf-check-in-list"
      },
      "relationships": {
        "activities": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/activities?filter[checkin_list]=awesomeconf-check-in-list"
          }
        },
        "checkins": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/checkin_lists/awesomeconf-check-in-list/checkins"
          }
        },
        "questions": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/questions?filter[checkin_list]=awesomeconf-check-in-list"
          }
        },
        "releases": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/releases?filter[checkin_list]=awesomeconf-check-in-list"
          }
        },
        "tickets": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/tickets?filter[checkin_list]=awesomeconf-check-in-list"
          }
        }
      }
    },
    {
      "id": "workshop-check-in-list",
      "type": "checkin-lists",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/checkin_lists/workshop-check-in-list"
      },
      "relationships": {
        "activities": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/activities?filter[checkin_list]=workshop-check-in-list"
          }
        },
        "checkins": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/checkin_lists/workshop-check-in-list/checkins"
          }
        },
        "questions": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/questions?filter[checkin_list]=workshop-check-in-list"
          }
        },
        "releases": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/releases?filter[checkin_list]=workshop-check-in-list"
          }
        },
        "tickets": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/tickets?filter[checkin_list]=workshop-check-in-list"
          }
        }
      }
    }
  ]
}

This endpoint retrieves all Check-in Lists for the given Event.

HTTP Request

GET https://api.tito.io/v2/:account/:event/checkin_lists

Get a specific Check-in List

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/checkin_lists/awesomeconf-check-in-list' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": {
    "id": "awesomeconf-check-in-list",
    "type": "checkin-lists",
    "attributes": {
      "activity-ids": [],
      "expires-at": null,
      "question-ids": [],
      "release-ids": [],
      "show-company-name": true,
      "show-email": true,
      "show-phone-number": true,
      "title": "Awesomeconf Check-in List"
    },
    "links": {
      "self": "https://api.tito.io/v2/an-account/awesomeconf/checkin_lists/awesomeconf-check-in-list"
    },
    "relationships": {
      "activities": {
        "links": {
          "related": "https://api.tito.io/v2/an-account/awesomeconf/activities?filter[checkin_list]=awesomeconf-check-in-list"
        }
      },
      "checkins": {
        "links": {
          "related": "https://api.tito.io/v2/an-account/awesomeconf/checkin_lists/awesomeconf-check-in-list/checkins"
        }
      },
      "questions": {
        "links": {
          "related": "https://api.tito.io/v2/an-account/awesomeconf/questions?filter[checkin_list]=awesomeconf-check-in-list"
        }
      },
      "releases": {
        "links": {
          "related": "https://api.tito.io/v2/an-account/awesomeconf/releases?filter[checkin_list]=awesomeconf-check-in-list"
        }
      },
      "tickets": {
        "links": {
          "related": "https://api.tito.io/v2/an-account/awesomeconf/tickets?filter[checkin_list]=awesomeconf-check-in-list"
        }
      }
    }
  }
}

This endpoint retrieves a specific Check-in List.

HTTP Request

GET https://api.tito.io/v2/:account/:event/checkin_lists/:checkin_list

Creating a new Check-in List

curl --request POST \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/checkin_lists' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-Type: application/json'
  --data '{"data":{"type":"checkin-lists","attributes":{"title":"Day 2 Check-in List"}}}'

This endpoint creates a Check-in List on the given Event.

HTTP Request

POST https://api.tito.io/v2/:account/:event/checkin_lists

Parameters

Parameter Type Description
activity-ids array The Activities the check-in list is for. Format: An array of Activity IDs.
expires-at datetime The time at which the check-in list should no longer be accessible or null for no expiry.
question-ids array The Questions to show attendees’ answers to on the check-in list. Format: An array of Question IDs.
release-ids array The Releases the check-in list is for. Format: An array of Release IDs.
show-company-name boolean Show the attendees’ company name on the check-in list.
show-email boolean Show the attendees’ email address on the check-in list.
show-phone-number boolean Show the attendees’ phone number on the check-in list.
title string

Updating a Check-in List

curl --request PATCH \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/checkin_lists/awesomeconf-check-in-list' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-type: application/json'
  --data '{"data":{"type":"checkin-lists","id":"awesomeconf-check-in-list","attributes":{"release_ids":["day-2-workshop-ticket","day-2-after-party-ticket"]}}}'

This endpoint updates a Check-in List on the given Event.

HTTP Request

PATCH https://api.tito.io/v2/:account/:event/checkin_lists/:checkin_list

Parameters

Parameter Type Description
activity-ids array The Activities the check-in list is for. Format: An array of Activity IDs.
expires-at datetime The time at which the check-in list should no longer be accessible or null for no expiry.
question-ids array The Questions to show attendees’ answers to on the check-in list. Format: An array of Question IDs.
release-ids array The Releases the check-in list is for. Format: An array of Release IDs.
show-company-name boolean Show the attendees’ company name on the check-in list.
show-email boolean Show the attendees’ email address on the check-in list.
show-phone-number boolean Show the attendees’ phone number on the check-in list.
title string

Deleting a Check-in List

curl --request DELETE \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/checkin_lists/awesomeconf-check-in-list' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

This endpoint deletes a Check-in List on the given Event.

HTTP Request

DELETE https://api.tito.io/v2/:account/:event/checkin_lists/:checkin_list

Check-ins

Attributes

Attribute Type Description
created-at datetime

Get all Check-ins

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/checkins' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "0489139c-f279-449f-9146-8a22214d5909",
      "type": "checkins",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/checkin_lists/awesome-conf-check-in-list/checkins/0489139c-f279-449f-9146-8a22214d5909"
      },
      "relationships": {
        "checkin-list": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/checkin_lists/awesomeconf-check-in-list"
          }
        },
        "ticket": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/tickets/paul-awesomeconf-ticket"
          }
        }
      }
    },
    {
      "id": "12345678-f279-449f-9146-8a22214d5909",
      "type": "checkins",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/checkin_lists/awesome-conf-check-in-list/checkins/12345678-f279-449f-9146-8a22214d5909"
      },
      "relationships": {
        "checkin-list": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/checkin_lists/awesomeconf-check-in-list"
          }
        },
        "ticket": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesomeconf/tickets/doc-awesomeconf-ticket"
          }
        }
      }
    }
  ]
}

This endpoint retrieves all Checkins on the given Check-in List and Event.

HTTP Request

GET https://api.tito.io/v2/:account/:event/checkin_lists/:checkin_list/checkins

Creating a new Check-in

curl --request POST \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/checkin_lists/awesome-conf-check-in-lists/checkins' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-Type: application/json'
  --data '{"data":{"type":"checkins","attributes":{"created-at":"2016-12-01T08:30:00"},"relationships":{"checkin-list":{"data":{"type":"checkin-lists","id":"awesomeconf-check-in-list"}},"ticket":{"data":{"type":"tickets","id":"paul-awesomeconf-ticket"}}}}}'

This endpoint creates a Checkin on the given Check-in List and Event.

HTTP Request

POST https://api.tito.io/v2/:account/:event/checkin_lists/:checkin_list/checkins

Parameters

Parameter Type Description
created-at datetime

Synchronising Check-ins with other systems

To create a Checkin with a given ID pass it in like with a PATCH request e.g.

{
  "data": {
    "id": "12345678-f279-449f-9146-8a22214d5909",
    "type": "checkins",
    "attributes": { ... },
    "relationships": { ...}
  }
}

You can also keep Checkins synchronised with other systems by specifying the ID they should have when creating them. The ID must be a universally unique identifier (UUID) based on the RFC 4122 standard.

Deleting a Check-in

curl --request DELETE \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/checkin_lists/awesome-conf-check-in-list/checkins/0489139c-f279-449f-9146-8a22214d5909' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

This endpoint deletes a Checkin on the given Check-in List and Event.

HTTP Request

DELETE https://api.tito.io/v2/:account/:event/checkin_lists/:checkin_list/checkins/:checkin

Discount Codes

Attributes

Attribute Type Description
code string
discount-code-type string MoneyOffDiscountCode : For a flat discount
PercentOffDiscountCode : For a percentage discount.
end-at datetime The time when the discount code becomes unavailable.
max-quantity-per-release integer Discount only applies to a maxium of this number.
min-quantity-per-release integer Discount only applies if this many tickets are selected.
only-show-attached boolean Only display tickets attached to this discount code when it is displayed or not e.g. display all publicly visible tickets. Default false
quantity integer The number of tickets that can avail of this discount code.
quantity-used integer The number of tickets this discount code has been applied to. Readonly.
release-ids array An array of the IDs of Releases the discount code can be applied to.
reveal-secret boolean Should secret tickets be revealed if this discount code is applied or not. Default false
start-at datetime The time when the discount code becomes available.
value decimal The amount off per ticket. A percentage or flat amount depending on the discount code type.

Get all Discount Codes

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/discount_codes' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1000001",
      "type": "discount-codes",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/discount_codes/1000001"
      }
    },
    {
      "id": "1000002",
      "type": "discount-codes",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/discount_codes/1000002"
      }
    }
  ]
}

This endpoint retrieves all Discount Codes for the given Event.

HTTP Request

GET https://api.tito.io/v2/:account/:event/discount_codes

Get a specific Discount Code

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/discount_codes/1000001' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": {
    "id": "1000001",
    "type": "discount-codes",
    "attributes": {
      "code": "DISCOUNTDRACULA",
      "discount_code_type": "PercentOffDiscountCode",
      "end_at": null,
      "max-quantity-per-release": null,
      "min-quantity-per-release": null,
      "only-show-attached": false,
      "quantity": null,
      "quantity-used": 0,
      "release-ids": ["early-bird-ticket"],
      "reveal-secret": false,
      "start_at": null,
      "value": "25.00"
    },
    "links": {
      "self": "https://api.tito.io/v2/an-account/free-event/discount_codes/1000001"
    }
  }
}

This endpoint retrieves a specific Discount Code.

HTTP Request

GET https://api.tito.io/v2/:account/:event/discount_codes/:discount_code

Creating a new Discount Code

curl --request POST \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/discount_codes' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-Type: application/json'
  --data '{"data":{"type":"discount-codes","attributes":{"code":"DISCOUNTDRACULA","discount_code_type":"PercentOffDiscountCode","value":"25.00"}}}'

This endpoint creates a Discount Code on the given Event.

HTTP Request

POST https://api.tito.io/v2/:account/:event/discount_codes

Parameters

Parameter Type Description
code string
discount-code-type string MoneyOffDiscountCode : For a flat discount
PercentOffDiscountCode : For a percentage discount.
end-at datetime The time when the discount code becomes unavailable.
max-quantity-per-release integer Discount only applies to a maxium of this number.
min-quantity-per-release integer Discount only applies if this many tickets are selected.
only-show-attached boolean Only display tickets attached to this discount code when it is displayed or not e.g. display all publicly visible tickets. Default false
quantity integer The number of tickets that can avail of this discount code.
release-ids array An array of the IDs of Releases the discount code can be applied to.
reveal-secret boolean Should secret tickets be revealed if this discount code is applied or not. Default false
start-at datetime The time when the discount code becomes available.
value decimal The amount off per ticket. A percentage or flat amount depending on the discount code type.

Updating a Discount Code

curl --request PATCH \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/discount_codes/1000001' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-type: application/json'
  --data '{"data":{"type":"discount-codes","id":"1000001","attributes":{"quantity":25}}}'

This endpoint updates a Discount Code on the given Event.

HTTP Request

PATCH https://api.tito.io/v2/:account/:event/discount_codes/:discount_code

Parameters

Parameter Type Description
code string
discount-code-type string MoneyOffDiscountCode : For a flat discount
PercentOffDiscountCode : For a percentage discount.
end-at datetime The time when the discount code becomes unavailable.
max-quantity-per-release integer Discount only applies to a maxium of this number.
min-quantity-per-release integer Discount only applies if this many tickets are selected.
only-show-attached boolean Only display tickets attached to this discount code when it is displayed or not e.g. display all publicly visible tickets. Default false
quantity integer The number of tickets that can avail of this discount code.
release-ids array An array of the IDs of Releases the discount code can be applied to.
reveal-secret boolean Should secret tickets be revealed if this discount code is applied or not. Default false
start-at datetime The time when the discount code becomes available.
value decimal The amount off per ticket. A percentage or flat amount depending on the discount code type.

Deleting a Discount Code

curl --request DELETE \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/discount_codes/1000001' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

This endpoint deletes a Discount Code on the given Event.

HTTP Request

DELETE https://api.tito.io/v2/:account/:event/discount_codes/:discount_code

Events

Events are the primary object in Tito. An event is added to an Account, and most other resources belong to an Event object. An event URL is comprised of the combination of the Account’s slug and the ‘Event'’s slug, for example https://ti.to/ultimateconf/2017 is composed of the base ti.to URL, the Ultimateconf slug ultimateconf and the specific Event slug for the 2017 edition.

The equivalent event can be looked up using a similar URL structure with the API base URL: https://api.tito.io/v2/ultimateconf/2017

Attributes

Attribute Type Description
banner-url url A link to the event’s banner image. Readonly.
currency string 3 letter ISO currency code e.g. USD
description markdown
end-date date
live boolean Is it visible to the public or not.
location string The location of the event.
logo-url url A link to the event’s logo image. Readonly.
private boolean Is it to be listed on the event’s account page or not.
slug string
start-date date
title string

Get all Events

Tito::Event.where(account_id: 'an-account').events
curl --request GET \
  --url 'https://api.tito.io/v2/an-account/events' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": [
    {
      "id":"summer-conf",
      "type": "events",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/summer-conf"
      },
      "relationships": {
        "releases": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/summer-conf/releases"
          }
        }
      }
    },
    {
      "id":"winter-conf",
      "type": "events",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/winter-conf"
      },
      "relationships": {
        "releases": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/winter-conf/releases"
          }
        }
      }
    }
  ]
}

This endpoint retrieves all Events for the given Account.

HTTP Request

GET https://api.tito.io/v2/:account/events

Query Parameters

Parameter Default Description
include A comma separated list of related resources to include. Options: releases

Get a specific Event

Tito::Event.get('an-account/awesome-conf')
curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": {
    "id": "awesome-conf",
    "type": "events",
    "attributes": {
      "banner-url": null,
      "currency": "USD",
      "description": "",
      "end-date": null,
      "live": false,
      "location": null,
      "logo-url": null,
      "private": false,
      "slug": null,
      "start-date": null,
      "title": null
    },
    "links": {
      "self": "https://api.tito.io/v2/an-account/awesome-conf"
    },
    "relationships": {
      "releases": {
        "links": {
          "related": "https://api.tito.io/v2/an-account/awesome-conf/releases"
        }
      }
    }
  }
}

This endpoint retrieves a specific Event from the given Account.

HTTP Request

GET https://api.tito.io/v2/:account/:event

Creating a new Event

Tito::Event.create(account_id: 'an-account', title: 'My New Event')
curl --request POST \
  --url 'https://api.tito.io/v2/an-account/events' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-Type: application/json'
  --data '{"data":{"type":"events","attributes":{"slug":"Awesome-conf","title":"Awesome Conf"}}}'

This endpoint creates an Event on the given Account.

HTTP Request

POST https://api.tito.io/v2/:account/events

Parameters

Parameter Type Description
currency string 3 letter ISO currency code e.g. USD
description markdown
end-date date
live boolean Is it visible to the public or not.
location string The location of the event.
private boolean Is it to be listed on the event’s account page or not.
slug string
start-date date
title string

Updating an Event

event = Tito::Event.get('an-account/awesome-conf')
event.start_date = 'tomorrow'
event.end_date = 'today'
event.save
curl --request PATCH \
  --url 'https://api.tito.io/v2/an-account/awesome-conf' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-type: application/json'
  --data '{"data":{"type":"events","id":"awesome-conf","attributes":{"location":"Dublin, Ireland"}}}'

This endpoint updates an Event on the given Account.

HTTP Request

PATCH https://api.tito.io/v2/:account/:event

Parameters

Parameter Type Description
currency string 3 letter ISO currency code e.g. USD
description markdown
end-date date
live boolean Is it visible to the public or not.
location string The location of the event.
private boolean Is it to be listed on the event’s account page or not.
slug string
start-date date
title string

Deleting an Event

event = Tito::Event.get('an-account/awesome-conf')
event.destroy
curl --request DELETE \
  --url 'https://api.tito.io/v2/an-account/awesome-conf' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

This endpoint deletes an Event on the given Account.

HTTP Request

DELETE https://api.tito.io/:account/:event

Duplicating an Event

event = Tito::Event.get('an-account/awesome-conf')
event.duplicate
curl --request POST \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/duplicate' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-Type: application/json'
  --data '{}'

This endpoint duplicates an Event on the given Account.

HTTP Request

POST https://api.tito.io/v2/:account/:event/duplicate

Questions

Attributes

Attribute Type Description
description string
field-type string Checkboxes, Country, File, Select, Text or Textarea.
include-free-text-field boolean Should an ‘Other’ text field be included alongside this question or not. Only applies to Checkboxes or Select field questions. Default false
options text A line separated list of options for this question e.g. A\nB\nC. Only applies to Checkboxes or Select field questions.
options-free-text-field string A custom label for the 'Other’ text field option if it’s enabled. Only applies to Checkboxes or Select field questions.
required boolean Does this question require a response or not. Default false
slug string Readonly.
title string

Get all Questions

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/questions' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1000001",
      "type": "questions",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/questions/1000001"
      }
    },
    {
      "id": "1000002",
      "type": "questions",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/questions/1000002"
      }
    }
  ]
}

This endpoint retrieves all Questions for the given Event.

HTTP Request

GET https://api.tito.io/v2/:account/:event/questions

Get a specific Question

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/questions/1000001' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": {
    "id": "1000001",
    "type": "questions",
    "attributes": {
      "description": null,
      "field-type": "Text",
      "include-free-text-field": false,
      "options": "Small\nMedium\nLarge\nExtra Large",
      "options-free-text-field": null,
      "required": true,
      "slug": "t-shirt-size",
      "title": "T-Shirt Size"
    },
    "links": {
      "self": "https://api.tito.io/v2/an-account/awesome-conf/questions/1000001"
    }
  }
}

This endpoint retrieves a specific Question.

HTTP Request

GET https://api.tito.io/v2/:account/:event/questions/:question

Creating a new Question

curl --request POST \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/questions' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-Type: application/json'
  --data '{"data":{"type":"questions","attributes":{"field_type":"Checkboxes","options":"Small\nMedium\nLarge\nExtra Large","title":"T-Shirt Size"}}}'

This endpoint creates a Question on the given Event.

HTTP Request

POST https://api.tito.io/v2/:account/:event/questions

Parameters

Parameter Type Description
description string
field-type string Checkboxes, Country, File, Select, Text or Textarea.
include-free-text-field boolean Should an 'Other’ text field be included alongside this question or not. Only applies to Checkboxes or Select field questions. Default false
options text A line separated list of options for this question e.g. A\nB\nC. Only applies to Checkboxes or Select field questions.
options-free-text-field string A custom label for the 'Other’ text field option if it’s enabled. Only applies to Checkboxes or Select field questions.
required boolean Does this question require a response or not. Default false
title string

Updating a Question

curl --request PATCH \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/questions/1000001' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-type: application/json'
  --data '{"data":{"type":"questions","id":"1000001","attributes":{"required":true}}}'

This endpoint updates a Question on the given Event.

HTTP Request

PATCH https://api.tito.io/v2/:account/:event/questions/:question

Parameters

Parameter Type Description
description string
field-type string Checkboxes, Country, File, Select, Text or Textarea.
include-free-text-field boolean Should an 'Other’ text field be included alongside this question or not. Only applies to Checkboxes or Select field questions. Default false
options text A line separated list of options for this question e.g. A\nB\nC. Only applies to Checkboxes or Select field questions.
options-free-text-field string A custom label for the 'Other’ text field option if it’s enabled. Only applies to Checkboxes or Select field questions.
required boolean Does this question require a response or not. Default false
title string

Deleting a Question

curl --request DELETE \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/questions/1000001' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

This endpoint deletes a Question on the given Event.

HTTP Request

DELETE https://api.tito.io/v2/:account/:event/questions/:question

Refunds

Attributes

Attribute Type Description
amount decimal
created-at datetime
manual boolean true if it was logged in Tito after it was already processed. Default false

Get all Refunds

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/refunds' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1001",
      "type": "refunds",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/refunds/1001"
      },
      "relationships": {
        "registration": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesome-conf/registrations/paul-awesomeconf-registration"
          }
        }
      }
    },
    {
      "id": "1002",
      "type": "refunds",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/refunds/1002"
      },
      "relationships": {
        "registration": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesome-conf/registrations/doc-awesomeconf-registration"
          }
        }
      }
    }
  ]
}

This endpoint retrieves all Refunds for the given Event.

HTTP Request

GET https://api.tito.io/v2/:account/:event/refunds

Query Parameters

Parameter Default Description
include A comma separated list of related resources to include. Options: registration
filter[registration] To only return refunds associated with particular registrations. Format: A comma separated list of registration IDs.
filter[test-mode] If test mode is enabled for you or for your entire event this defaults to true, otherwise false. Whether to return Refunds created in test mode or not. Options: true, false

Get a specific Refund

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/refunds/1001' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": {
    "id": "1001",
    "type": "refunds",
    "attributes": {
      "amount": "99.00",
      "created-at": "2017-04-06T09:06:07.000Z",
      "manual": false
    },
    "links": {
      "self": "https://api.tito.io/v2/an-account/awesome-conf/refunds/1001"
    },
    "relationships": {
      "registration": {
        "links": {
          "related": "http://api.tito.io/v2/an-account/awesome-conf/registrations/paul-awesomeconf-registration"
        }
      }
    }
  }
}

This endpoint retrieves a specific Refund.

HTTP Request

GET https://api.tito.io/v2/:account/:event/refunds/:refund

Query Parameters

Parameter Default Description
include A comma separated list of related resources to include. Options: registration

Registrations

Attributes

Attribute Type Description
billing-address[address] String
billing-address[city] String
billing-address[company-name] String
billing-address[country] String A two-letter ISO_3611-1 country code e.g. IE
billing-address[state-province-region] String
billing-address[zip-postal-code] String
completed-at datetime The time at which the registration was completed and tickets were created for it.
discount-code string
email string
expires-at datetime The time at which the registration will expire if it has not been completed. Only registrations containing tickets for locked releases can expire. A release is locked when all of its available tickets are in the process of being registered.
ip-address string
name string
paid boolean Is the registration paid for or not.
payment[reference] string
payment[type] string credit_card, manual or redirect.
phone-number string
refunded boolean Has the registration been refunded or not. Returns false if it has only been partially refunded.
registration-type string standard, manual or imported.
reference string A randomly generated 4 character string unique to the event.
state integer It’s new…
new
ready
filling
redirected

It’s being processed…
ready_to_process
processing
payment_details_stored
payment_charged

It’s finished…
complete
incomplete
cancelled
confirmed
customer_cancelled

Something went wrong…
errored
payment_declined
not_fulfilled
test-mode boolean Default: true if test mode is enabled for you or for your entire event, otherwise false.
total decimal

Get all Registrations

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/registrations' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "paul-awesomeconf-registration",
      "type": "registrations",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/registrations/paul-awesomeconf-registration"
      },
      "relationships": {
        "tickets": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesome-conf/tickets?filter[registration]=paul-awesomeconf-registration"
          }
        }
      },
      "meta": {
        "link": "https://tito.io/an-account/awesome-conf/registrations/paul-awesomeconf-ticket"
      }
    },
    {
      "id": "doc-awesomeconf-registration",
      "type": "registrations",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/registrations/doc-awesomeconf-registration"
      },
      "relationships": {
        "tickets": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesome-conf/tickets?filter[registration]=doc-awesomeconf-registration"
          }
        }
      },
      "meta": {
        "link": "https://tito.io/an-account/awesome-conf/registrations/doc-awesomeconf-ticket"
      }
    }
  ]
}

This endpoint retrieves all Registrations for the given Event.

HTTP Request

GET https://api.tito.io/v2/:account/:event/registrations

Query Parameters

Parameter Default Description
include A comma separated list of related resources to include. Options: refunds, tickets
filter[direction] desc The direction to sort results. Options: asc, desc
filter[q] A search query, looks for matches on email, name, reference, discount code or slug.
filter[sort] created_at The attribute to sort results by. Options: created_at, name, reference, total, payment_provider
filter[states] All states except cancelled A comma separated list of states to filter by. Options: paid, unpaid, complete, confirmed, incomplete, cancelled
filter[test-mode] If test mode is enabled for you or for your entire event this defaults to true, otherwise false. Whether to return Registrations created in test mode or not. Options: true, false

Get a specific Registration

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/registrations/paul-awesomeconf-registration' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": {
    "id": "paul-awesomeconf-registration",
    "type": "registrations",
    "attributes": {
      "billing-address": null,
      "completed-at": "2016-04-18T15:53:31.000Z",
      "discount-code": null,
      "email": "paul@tito.io",
      "expires-at": "2016-04-18T15:55:02.000Z",
      "ip-address": null,
      "name": "Paul Campbell",
      "paid": null,
      "payment": null,
      "phone-number": null,
      "reference": "FREE",
      "registration-type": "standard",
      "state": "complete",
      "test-mode": false,
      "total": null
    },
    "links": {
      "self": "https://api.tito.io/v2/an-account/awesome-conf/registrations/paul-awesomeconf-registration"
    },
    "relationships": {
      "tickets": {
        "links": {
          "related": "http://api.tito.io/v2/an-account/awesome-conf/tickets?filter[registration]=paul-awesomeconf-registration"
        }
      }
    },
    "meta": {
      "link": "https://tito.io/an-account/awesome-conf/registrations/paul-awesomeconf-registration"
    }
  }
}

This endpoint retrieves a specific Registration.

HTTP Request

GET https://api.tito.io/v2/:account/:event/registrations/:registration

Query Parameters

Parameter Default Description
include A comma separated list of related resources to include. Options: refunds, tickets

Creating a new Registration

curl --request POST \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/registrations' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-Type: application/json'
  --data '{"data":{"type":"registrations","attributes":{"quantities":{"awesomeconf-ticket":1}}}}'

This endpoint creates a Registration on the given Event.

HTTP Request

POST https://api.tito.io/v2/:account/:event/registrations

Parameters

Parameter Type Description
donations Hash The amount to donate for each Release.
Format: A hash of amounts, keyed by Release ID e.g.
{ "workshop-ticket" => 25.00 }
discount-code String
quantities Hash The quantity required for each Release.
Format: A hash of quantities, keyed by Release ID e.g.
{ "awesomeconf-ticket" => 2, "workshop-ticket" => 1 }
test-mode Boolean Default: true if test mode is enabled for you or for your entire event, otherwise false.

Updating a Registration

curl --request PATCH \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/registrations/paul-awesomeconf-registration' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-type: application/json'
  --data '{"data":{"type":"registrations","id":"paul-awesomeconf-registration","attributes":{"email":"paul@tito.io"}}}'

This endpoint updates a Registration on the given Event.

HTTP Request

PATCH https://api.tito.io/v2/:account/:event/registrations/:registration

Parameters

Parameter Type Description
billing-address[address] String
billing-address[city] String
billing-address[company-name] String
billing-address[country] String A two-letter ISO_3611-1 country code e.g. IE
billing-address[state-province-region] String
billing-address[zip-postal-code] String
card[token] String A single-use token used to reference a credit/debit card without exposing senistive car data. These tokens are requested from payment processors e.g. via Stripe.js. Only required when payment is required.
company-name String
email String
name String
payment[type] String The method of payment for this Registration. Options: credit_card, redirect. Only required when payment is required.
phone-number String

Releases

A Release is an object that represents a “Release” of tickets. Early Bird, Regular, Late Bird are all examples of Releases. Releases can have different prices, different on sale dates etc.

Attributes

Attribute Type Description
archived boolean Is the release archived or not. Default: false
default-quantity integer The default number of tickets selected for this release on the event page. Default: 0
description text
enable-super-combo-summary boolean For combo releases only. Include a summary of a combo in the order summary or not. Default: true
end-at datetime The time when the release will go off sale.
has-success-message boolean Display the custom success message or not. Default: false
max-tickets-per-person integer The maximum number of tickets per registration.
min-tickets-per-person integer The minimum number of tickets per registration.
not-a-ticket boolean Disable issuing of PDF/Apple Wallet tickets or not. For example if this release is for merchandise rather than an actual ticket. Default false
position integer The position of the release in the list of all releases for the event.
price decimal
quantity integer The number of tickets available.
question-ids array An array of the IDs of Questions attached to the release. The order of the IDs represents the order in which the questions will be asked.
request-company-name boolean Do registrations which include this release requrie a company name.
request-vat-number boolean Do registrations which include this release require a VAT number.
require-billing-address boolean Do registrations which include this release require a billing address.
require-email boolean Do tickets for this release require an email. Default: true
require-name boolean Do tickets for this release require a name. Default: false
secret boolean Is it only accessible via a secret link or is it visible to everyone on the event page. Default: false
state integer 100 : On sale
404 : Off sale. Default: 100
start-at datetime The time when the release will go on sale.
success-message text A custom message to be displayed to customers after a successful order of this release.
title string
waiting-list-enabled-during-sold-out boolean Enable waiting list when this release sells out or not. Default: false

Get all Releases

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/releases' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "early-bird-ticket",
      "type": "releases",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/releases/early-bird-ticket"
      }
    },
    {
      "id": "workshop-ticket",
      "type": "releases",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/releases/workshop-ticket"
      }
    }
  ]
}

This endpoint retrieves all Releases for the given Event.

HTTP Request

GET https://api.tito.io/v2/:account/:event/releases

Get a specific Release

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/releases/early-bird-ticket' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": {
    "id": "early-bird-ticket",
    "type": "releases",
    "attributes": {
      "archived": false,
      "default-quantity": 0,
      "description": null,
      "enable-super-combo-summary": true,
      "end-at": null,
      "has-success-message": false,
      "max-tickets-per-person": null,
      "min-tickets-per-person": null,
      "not-a-ticket": false,
      "position": 1,
      "price": null,
      "quantity": null,
      "question-ids": [],
      "request-company-name": null,
      "request-vat-number": null,
      "require-billing-address": null,
      "require-email": true,
      "require-name": false,
      "secret": false,
      "state": 100,
      "start-at": null,
      "success-message": null,
      "title": null,
      "waiting-list-enabled-during-sold-out": false
    },
    "links": {
      "self": "https://api.tito.io/v2/an-account/free-event/releases/early-bird-ticket"
    }
  }
}

This endpoint retrieves a specific Release.

HTTP Request

GET https://api.tito.io/v2/:account/:event/releases/:release

Creating a new Release

curl --request POST \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/releases' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-Type: application/json'
  --data '{"data":{"type":"releases","attributes":{"title":"Awesome Conf"}}}'

This endpoint creates a Release on the given Event.

HTTP Request

POST https://api.tito.io/v2/:account/:event/releases

Parameters

Parameter Type Description
archived boolean Is the release archived or not. Default: false
default-quantity integer The default number of tickets selected for this release on the event page. Default: 0
description text
enable-super-combo-summary boolean For combo releases only. Include a summary of a combo in the order summary or not. Default: true
end-at datetime The time when the release will go off sale.
has-success-message boolean Display the custom success message or not. Default: false
max-tickets-per-person integer The maximum number of tickets per registration.
min-tickets-per-person integer The minimum number of tickets per registration.
not-a-ticket boolean Disable issuing of PDF/Apple Wallet tickets or not. For example if this release is for merchandise rather than an actual ticket. Default false
position integer The position of the release in the list of all releases for the event.
price decimal
quantity integer The number of tickets available.
question-ids array An array of the IDs of Questions attached to the release. The order of the IDs represents the order in which the questions will be asked.
request-company-name boolean Do registrations which include this release requrie a company name.
request-vat-number boolean Do registrations which include this release require a VAT number.
require-billing-address boolean Do registrations which include this release require a billing address.
require-email boolean Do tickets for this release require an email. Default: true
require-name boolean Do tickets for this release require a name. Default: false
secret boolean Is it only accessible via a secret link or is it visible to everyone on the event page. Default: false
state integer 100 : On sale
404 : Off sale. Default: 100
start-at datetime The time when the release will go on sale.
success-message text A custom message to be displayed to customers after a successful order of this release.
title string
waiting-list-enabled-during-sold-out boolean Enable waiting list when this release sells out or not. Default: false

Updating a Release

curl --request PATCH \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/releases/workshop-ticket' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-type: application/json'
  --data '{"data":{"type":"releases","id":"workshop-ticket","attributes":{"quantity":25}}}'

This endpoint updates a Release on the given Event.

HTTP Request

PATCH https://api.tito.io/v2/:account/:event/releases/:release

Parameters

Parameter Type Description
archived boolean Is the release archived or not. Default: false
default-quantity integer The default number of tickets selected for this release on the event page. Default: 0
description text
enable-super-combo-summary boolean For combo releases only. Include a summary of a combo in the order summary or not. Default: true
end-at datetime The time when the release will go off sale.
has-success-message boolean Display the custom success message or not. Default: false
max-tickets-per-person integer The maximum number of tickets per registration.
min-tickets-per-person integer The minimum number of tickets per registration.
not-a-ticket boolean Disable issuing of PDF/Apple Wallet tickets or not. For example if this release is for merchandise rather than an actual ticket. Default false
position integer The position of the release in the list of all releases for the event.
price decimal
quantity integer The number of tickets available.
question-ids array An array of the IDs of Questions attached to the release. The order of the IDs represents the order in which the questions will be asked.
request-company-name boolean Do registrations which include this release requrie a company name.
request-vat-number boolean Do registrations which include this release require a VAT number.
require-billing-address boolean Do registrations which include this release require a billing address.
require-email boolean Do tickets for this release require an email. Default: true
require-name boolean Do tickets for this release require a name. Default: false
secret boolean Is it only accessible via a secret link or is it visible to everyone on the event page. Default: false
state integer 100 : On sale
404 : Off sale. Default: 100
start-at datetime The time when the release will go on sale.
success-message text A custom message to be displayed to customers after a successful order of this release.
title string
waiting-list-enabled-during-sold-out boolean Enable waiting list when this release sells out or not. Default: false

Deleting a Release

curl --request DELETE \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/releases/workshop-ticket' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

This endpoint deletes a Release on the given Event.

HTTP Request

DELETE https://api.tito.io/v2/:account/:event/releases/:release

Tickets

Attributes

Attribute Type Description
answers hash The answer to each Question attached to the ticket. Format: A hash of answers, keyed by Question slug e.g.
{ "t-shirt-size": "Medium", "skills": ["HTML", "JavaScript"] }
company-name string
email string
name string
number integer Default: Starts at 1 and counts up with each ticket registered. Readonly.
phone-number string
price decimal
reference string Default: The order reference plus the index of the ticket in that order e.g. AXBY-1. Readonly.
state integer new, complete, incomplete, reminder, void. Default: new. Readonly.
tags string A comma separated list of tags for the ticket.
temporary boolean Is the ticket temporary or not. For example if a ticket needs to be assigned but is not yet confirmed e.g. a payment is pending. Default: false. Readonly.
test-mode boolean Default: true if test mode is enabled for you or for your entire event, otherwise false.

Get all Tickets

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/tickets' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "paul-awesomeconf-ticket",
      "type": "tickets",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/tickets/paul-awesomeconf-ticket"
      },
      "relationships": {
        "registration": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesome-conf/registrations/paul-awesomeconf-registration"
          }
        },
        "release": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesome-conf/releases/awesomeconf-ticket"
          }
        }
      }
    },
    {
      "id": "doc-awesomeconf-ticket",
      "type": "tickets",
      "attributes": { ... },
      "links": {
        "self": "https://api.tito.io/v2/an-account/awesome-conf/tickets/doc-awesomeconf-ticket"
      },
      "relationships": {
        "registration": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesome-conf/registrations/doc-awesomeconf-registration"
          }
        },
        "release": {
          "links": {
            "related": "https://api.tito.io/v2/an-account/awesome-conf/releases/awesomeconf-ticket"
          }
        }
      }
    }
  ]
}

This endpoint retrieves all Tickets for the given Event.

HTTP Request

GET https://api.tito.io/v2/:account/:event/tickets

Query Parameters

Parameter Default Description
include A comma separated list of related resources to include. Options: registration, release
filter[registration] To only return tickets associated with particular registrations. Format: A comma separated list of registration IDs.
filter[test-mode] If test mode is enabled for you or for your entire event this defaults to true, otherwise false. Whether to return Tickets created in test mode or not. Options: true, false

Get a specific Ticket

curl --request GET \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/tickets/paul-awesomeconf-ticket' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \

The above command returns JSON structured like this:

{
  "data": {
    "id": "paul-awesomeconf-ticket",
    "type": "tickets",
    "attributes": {
      "answers": {
        "skills": ["JavaScript", "HTML"],
        "t-shirt-size": "Medium"
      },
      "company-name": null,
      "email": null,
      "name": "",
      "number": 1,
      "phone-number": null,
      "price": "0.00",
      "reference": "PAUL-1",
      "state": "complete",
      "tags": null,
      "test-mode": false
    },
    "links": {
      "self": "https://api.tito.io/v2/an-account/awesome-conf/tickets/paul-awesomeconf-ticket"
    },
    "relationships": {
      "registration": {
        "links": {
          "related": "https://api.tito.io/v2/an-account/awesome-conf/registrations/paul-awesomeconf-registration"
        }
      },
      "release": {
        "links": {
          "related": "https://api.tito.io/v2/an-account/awesome-conf/releases/awesomeconf-ticket"
        }
      }
    }
  }
}

This endpoint retrieves a specific Ticket.

HTTP Request

GET https://api.tito.io/v2/:account/:event/tickets/:ticket

Query Parameters

Parameter Default Description
include A comma separated list of related resources to include. Options: registration, release

Creating a new Ticket

curl --request POST \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/tickets' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-Type: application/json'
  --data '{"data":{"type":"tickets","attributes":{"email":"joe.bloggs@example.com"},"relationships":{"release":{"data":{"type":"releases","id":"awesomeconf-ticket"}}}}}'

This endpoint creates a Ticket on the given Event.

HTTP Request

POST https://api.tito.io/v2/:account/:event/tickets

Parameters

Parameter Type Description
answers hash The answer to each Question attached to the ticket. Format: A hash of answers, keyed by Question slug e.g.
{ "t-shirt-size": "Medium", "skills": ["HTML", "JavaScript"] }
company-name string
email string
name string
phone-number string
price decimal
tags string A comma separated list of tags for the ticket.
test-mode boolean Default: true if test mode is enabled for you or for your entire event, otherwise false.
notify boolean Email the ticket or not. Default false.

Updating a Ticket

curl --request PATCH \
  --url 'https://api.tito.io/v2/an-account/awesome-conf/tickets/paul-awesomeconf-ticket' \
  --header 'Authorization: Token token=YOUR-API-KEY' \
  --header 'Accept: application/vnd.api+json' \
  --header 'Content-type: application/json'
  --data '{"data":{"type":"tickets","id":"workshop-ticket","attributes":{"company_name":"Team Tito"}}}'

This endpoint updates a Ticket on the given Event.

HTTP Request

PATCH https://api.tito.io/v2/:account/:event/tickets/:ticket

Parameters

Parameter Type Description
answers hash The answer to each Question attached to the ticket. Format: A hash of answers, keyed by Question slug e.g.
{ "t-shirt-size": "Medium", "skills": ["HTML", "JavaScript"] }
company-name string
email string
name string
phone-number string
price decimal
tags string A comma separated list of tags for the ticket.