The base URL for Fienta’s API is https://fienta.com/api/v1
Authorization fails due to an invalid token or no permission to access the requested resource.
Body
Examples
Authorization fails due to an invalid token
{
"errors": [
{
"code": 401,
"user_message": "Unauthorized access",
"internal_message": "authorization_failed"
}
]
}
No permission to access the queried resource
{
"errors": [
{
"code": 401,
"user_message": "Unauthorized access",
"internal_message": "unauthorized_access_to_resource"
}
]
}
Authentication
Get the current server date, time and timezone values
Responses
Body
Examples
{
"success": {
"code": 200,
"user_message": "Timestamp returned successfully",
"internal_message": "timestamp_returned_successfully"
},
"time": {
"timestamp": 1525436423,
"date": "2018-05-04",
"time": "15:20:23",
"full_datetime": "2018-05-04T15:20:23+03:00",
"timezone": "Europe/Tallinn",
"timezone_short": "EEST",
"gmt": "+0300"
}
}
Our public API can be used by anyone to read public non-private events.
Authentication
Gets all public non-private events. Returns maximum of 1000 events.
Request parameters
Only events which start at or later than requested, are returned. Defaults to current time.
The preferred locale for the event data (title, description, …) in ISO639-1 format. Fallback language is returned when the event does not have the requested locale. Defaults to “en”.
Same as the “locale” parameter but events without the requested locale are not returned.
Two-letter country code (ISO 3166-1 alpha-2) in which the event takes place. When not specified, events from all countries are returnd.
Only events which belong to requested category are returned.
Comma separated list of event organiser ID-s. Only events by the requested organisers are returned.
Responses
Body
Examples
{
"success": {
"code": 200,
"user_message": "Events returned successfully",
"internal_message": "events_returned_successfully"
},
"time": {
"timestamp": 1525436423,
"date": "2018-05-04",
"time": "15:20:23",
"full_datetime": "2018-05-04T15:20:23+03:00",
"timezone": "Europe/Tallinn",
"timezone_short": "EEST",
"gmt": "+0300"
},
"count": 1,
"events": [
{
"id": 10,
"title": "Happy event",
"starts_at": "2018-09-22 00:00:00",
"ends_at": "2018-10-22 23:59:59",
"duration_string": "Sat 22. September - Mon 22. October 2018",
"sale_status": "onSale",
"attendance_mode": "online",
"venue": "Sydney Opera House",
"address": "1600 Pennsylvania Ave., Washington, D.C., 20500",
"description": "Lorem ipsum<br>\\n superma lex",
"url": "https://fienta.com/happy-event",
"buy_tickets_url": "https://fienta.com/happy-event",
"image_url": "https://fienta.com/uploads/12456.jpg",
"organizer_name": "Great Events Ltd",
"organizer_phone": "1 800 1234 5678",
"organizer_email": "hello@greatevents.com",
"organizer_id": 4567
}
]
}
There are two ways to get the token:
- Organiser account level API key can be found using Fienta’s user interface from Settings > Integration.
- User level key can be retrieved via the API using Authenticate call.
Authentication
On successful authentication returns the API token to use for authorization in API request headers.
Request headers
Request body
Examples
{
"email": "myemail@domainname.com",
"password": "mypassword"
}
Responses
Body
The API token to use for authorization of API requests that require it
Expiration date and time for the token
The user ID the token is tied to. May be null if the token is tied to a specific organizer or an event instead.
Examples
{
"success": {
"code": 200,
"user_message": "Authenticated successfully",
"internal_message": "authenticated_successfully"
},
"token": {
"token": "TOKENSTRING",
"expires_at": null,
"user_id": 1
}
}
{organizer_id}
/eventsAuthentication
Returns organizers the given API token has access to.
Request headers
Responses
Body
Examples
{
"success": {
"code": 200,
"user_message": "Organizers returned successfully",
"internal_message": "organizers_returned_successfully"
},
"time": {
"timestamp": 1525436423,
"date": "2018-05-04",
"time": "15:20:23",
"full_datetime": "2018-05-04T15:20:23+03:00",
"timezone": "Europe/Tallinn",
"timezone_short": "EEST",
"gmt": "+0300"
},
"organizers": [
{
"id": 4,
"name": "Organizer Company Name Ltd."
}
]
}
{organizer_id}
/eventsAuthentication
Get all events of the organizer specified by organizer_id.
Path variables
Request parameters
Retrive events which start at specified time or later.
Retrive events which end at specified time or later.
Request headers
Responses
Body
Examples
{
"success": {
"code": 200,
"user_message": "Events returned successfully",
"internal_message": "events_returned_successfully"
},
"time": {
"timestamp": 1525436423,
"date": "2018-05-04",
"time": "15:20:23",
"full_datetime": "2018-05-04T15:20:23+03:00",
"timezone": "Europe/Tallinn",
"timezone_short": "EEST",
"gmt": "+0300"
},
"events": [
{
"id": 10,
"title": "Happy event",
"starts_at": "2018-09-22 00:00:00",
"ends_at": "2018-10-22 23:59:59",
"duration_string": "Sat 22. September - Mon 22. October 2018",
"sale_status": "onSale",
"attendance_mode": "online",
"venue": "Sydney Opera House",
"address": "1600 Pennsylvania Ave., Washington, D.C., 20500",
"description": "Lorem ipsum<br>\\n superma lex",
"url": "https://fienta.com/happy-event",
"buy_tickets_url": "https://fienta.com/happy-event",
"image_url": "https://fienta.com/uploads/12456.jpg",
"organizer_name": "Great Events Ltd",
"organizer_phone": "1 800 1234 5678",
"organizer_email": "hello@greatevents.com",
"organizer_id": 4567
}
]
}
{event_id}
/tickets/{ticket_code}
/{ticket_code}
/{event_id}
/tickets/Authentication
Path variables
ID of the event
Request parameters
Return only tickets that have been updated after the specified date/time (either a Unix timestamp in seconds or a date/time string accepted by the PHP strtotime function)
The registration form data provided by the ticket holder is omitted by default for reducing data size and optimising database performance. To add the “attendee” object, add “attendees” parameter.
Request headers
Responses
Body
Examples
{
"success": {
"code": 200,
"user_message": "",
"internal_message": ""
},
"time": {
"timestamp": 1525436423,
"date": "2018-05-04",
"time": "15:20:23",
"full_datetime": "2018-05-04T15:20:23+03:00",
"timezone": "Europe/Tallinn",
"timezone_short": "EEST",
"gmt": "+0300"
},
"tickets": [
{
"id": 123456,
"event_id": 12345,
"order_id": 123345,
"code": "4LO4A3T8IH",
"status": "UNUSED",
"used_at": "2020-03-01 15:35:11",
"created_at": "2020-02-01 13:24:48",
"updated_at": "2020-02-01 13:24:48",
"validated_by": 12345,
"ip": "192.168.1.2",
"order_email": "john@smidth.com",
"contents_html": "<h1>1 x Regular ticket</h1><h1>2 x Student ticket</h1><h2>John</h2><h2>Smith</h2>",
"nametag_html": "<!DOCTYPE html><html><body><p>Name: John</p><p>Surname: Smith</p></body></html>",
"qty": 1,
"rows": [
{
"ticket_type": {
"id": 1234,
"title": "Regular ticket",
"attendance_mode": "offline"
}
}
]
}
]
}
Examples
Get tickets for event with ID 10 that were updated after 2018-05-06 15:19:27
GET http://fienta.localhost/api/v1/events/10/tickets/?updated_after=1525619967 HTTP/1.1
Authorization: Bearer APITOKEN
{ticket_code}
/Authentication
Path variables
Code of the ticket
Request parameters
The registration form data provided by the ticket holder is omitted by default for reducing data size and optimising database performance. To add the “attendee” object, add “attendees” parameter.
Request headers
Responses
Body
Examples
{
"success": {
"code": 200,
"user_message": "",
"internal_message": ""
},
"time": {
"timestamp": 1525436423,
"date": "2018-05-04",
"time": "15:20:23",
"full_datetime": "2018-05-04T15:20:23+03:00",
"timezone": "Europe/Tallinn",
"timezone_short": "EEST",
"gmt": "+0300"
},
"ticket": {
"id": 123456,
"event_id": 12345,
"order_id": 123345,
"code": "4LO4A3T8IH",
"status": "UNUSED",
"used_at": "2020-03-01 15:35:11",
"created_at": "2020-02-01 13:24:48",
"updated_at": "2020-02-01 13:24:48",
"validated_by": 12345,
"ip": "192.168.1.2",
"order_email": "john@smidth.com",
"contents_html": "<h1>1 x Regular ticket</h1><h1>2 x Student ticket</h1><h2>John</h2><h2>Smith</h2>",
"nametag_html": "<!DOCTYPE html><html><body><p>Name: John</p><p>Surname: Smith</p></body></html>",
"qty": 1,
"rows": [
{
"ticket_type": {
"id": 1234,
"title": "Early bird ticket",
"attendance_mode": "offline"
}
}
]
}
}
{ticket_code}
/Authentication
Path variables
Code of the ticket
Request headers
Request body
One of the following: USED, UNUSED, REFUND_REQUESTED
Date and time the ticket was validated
Examples
{
"status": "USED",
"used_at": "2018-04-06 22:27:21"
}
{
"status": "UNUSED",
"used_at": null
}
Responses
Body
Examples
{
"success": {
"code": 200,
"user_message": "Ticket updated successfully",
"internal_message": "ticket_updated_successfully"
},
"time": {
"timestamp": 1525436423,
"date": "2018-05-04",
"time": "15:20:23",
"full_datetime": "2018-05-04T15:20:23+03:00",
"timezone": "Europe/Tallinn",
"timezone_short": "EEST",
"gmt": "+0300"
}
}
Unix timestamp (seconds since January 1st 1970)
Date formatted in PHP date format “Y-m-D”
Time formatted in PHP date format “H:i:s”
Full datetime string
Timezone identifier string
Timezone abbreviation
Difference to Greenwich time (GMT) in hours
Examples
{
"timestamp": 1525436423,
"date": "2018-05-04",
"time": "15:20:23",
"full_datetime": "2018-05-04T15:20:23+03:00",
"timezone": "Europe/Tallinn",
"timezone_short": "EEST",
"gmt": "+0300"
}
ID of the event
Title of the event
Date and time of the start of the event
Date and time of the ending of the event
A human readable event duration string
Indicates whether the tickets can be bought.
Whether the event takes place at the venue (“offline”) is virtual (“online”) or is hybrid (“mixed”)
Name of the physical venue for real-life events
Address of the venue without country name
Description of the event, may contain HTML tags
URL of the event page in Fienta
URL where the tickets are sold. As Fienta allows listing events which sell tickets on other platforms, this may point elsewhere but in most cases the value is just the same as “url”. The value can be also empty, in case the event is public and free and tickets are not sold at all.
URL of the event hero image
Name of the organizer
Phone number of the organizer, may be empty
Contact email of the organizer, always filled
ID of the organiser of the event
Examples
{
"id": 10,
"title": "Happy event",
"starts_at": "2018-09-22 00:00:00",
"ends_at": "2018-10-22 23:59:59",
"duration_string": "Sat 22. September - Mon 22. October 2018",
"sale_status": "salesEnded",
"attendance_mode": "mixed",
"venue": "Sydney Opera House",
"address": "1600 Pennsylvania Ave., Washington, D.C., 20500",
"description": "Lorem ipsum<br>\\n superma lex",
"url": "https://fienta.com/happy-event",
"buy_tickets_url": "https://fienta.com/happy-event",
"image_url": "https://fienta.com/uploads/12456.jpg",
"organizer_name": "Great Events Ltd",
"organizer_phone": "1 800 1234 5678",
"organizer_email": "hello@greatevents.com",
"organizer_id": 4567
}
Event ticket
ID of the ticket
ID of the event the ticket belongs to
ID of the purchase order the ticket was bought with
Code of the ticket which is used for validation. This code is visible on the ticket and usually also represented as QR code.
Date and time the ticket was validated at, “null” if not yet validated
Date and time the ticket was created at
Date and time the ticket was last changed at, this includes status changes
ID of the user who validated the ticket, “null” if not yet validated
IP address of the user who validated the ticket, empty if not yet validated
Email address of the buyer
Ticket contents HTML, for displaying on scanner:
- Ticket row quantity x Ticket type, between <h1> tags
- Attendee-based Order custom field values, marked with ‘Display on scanner’, between <h2> tags
Or, in case of a third-party ticket (has only code, no order_id and no ticket_rows), appropriate translation.
Name tag HTML for sending to printer. Filled with Attendee-based Order custom fields values when Event’s nametag_html template has been entered.
Total quantity of visitors on the Ticket. This has usually value of 1, except for compound tickets which is experimental feature currently.
ID of the ticket type
Title of the ticket type
Whether the ticket is valid at the venue (“offline”) only online (“online”) or for both (“mixed”)
Examples
{
"id": 123456,
"event_id": 12345,
"order_id": 123345,
"code": "4LO4A3T8IH",
"status": "USED",
"used_at": "2020-03-01 15:35:11",
"created_at": "2020-02-01 13:24:48",
"updated_at": "2020-02-01 13:24:48",
"validated_by": 12345,
"ip": "192.168.1.2",
"order_email": "john@smidth.com",
"contents_html": "<h1>Check ticket type and amount from ticket</h1>",
"nametag_html": "<!DOCTYPE html><html><body><p>Name: John</p><p>Surname: Smith</p></body></html>",
"qty": 1,
"rows": [
{
"ticket_type": {
"id": 1234,
"title": "Early bird ticket",
"attendance_mode": "offline"
}
}
]
}
Registration data provided by the buyer or attendee. Each attribute-value pair corresponds to the actual custom form field defined via Fienta’s UI for the particular event. The data below is just example and does not apply to all events.
Fienta has three webhooks which can be turned on by the event organiser on Settings > Integrations page.
These trigger on
Triggers when a ticket is bought or attendee has registered to a free event.
Unique id of the order.
Order status. Has always value “COMPLETED” when order completion webhook is triggered.
Language in which the user made the purhase or registraion.
Contact email address which was entered by the buyer or attendee.
Contact phone number which was entered by the buyer or attendee.
Whether the buyer or attendee signed up for event organiser’s mailinglist.
Time of payment or registration completion.
Total amount paid in cents.
VAT percentage, inluded in total amount.
Discount code used during the checkout. This object is returned only if a code was used by the buyer.
ID of the discount.
Discount code string entered by the buyer.
Array of tickets
Ticket code, in most cases embeded in QR code.
Specific tickets within specific ticket code. In majority of cases, only one row is returned as one ticket code refers to one ticket type. However this is not the case for compound tickets.
Quantity, usually has value of 1.
URL of event hero image, can be emtpy string.
Additional notes about event time.
Human friendly representaion of event date and time.
Examples
{
"id": 1234,
"status": "COMPLETED",
"locale": "en",
"buyer": {
"email": "john@smidth.com",
"phone": "081 3888 382",
"mailinglist_subscribe": true
},
"payment": {
"time": "2020-06-03T14:26:07+03:00",
"total": 2000,
"vat_percent": 20,
"currency": "EUR"
},
"discount": {
"id": 56789,
"code": "86FYL"
},
"tickets": [
{
"code": "W753PV85CP",
"rows": [
{
"ticket_type": {
"id": "48482",
"title": "Regular ticket",
"qty": "1"
}
}
]
}
],
"event": {
"id": 3834,
"title": "Die Hard 2",
"url": "https://fienta.com/en/die-hard",
"image_url": "https://fienta.com/uploads/3834.jpg",
"starts_at": "2020-11-14T19:00:00+02:00",
"ends_at": "2020-11-14T20:10:00+02:00",
"time_description": "Doors open at 18:30",
"duration_string": "Sat 14. November 2020 at 19:00 - 20:10",
"venue": {
"name": "Noblessner movie theatre",
"address": "Oak street 3, London",
"country_code": "uk"
},
"organizer": {
"name": "Smidth Events Ltd",
"phone": "081 38484 28484",
"email": "john@smidthevents.com"
}
}
}
Triggers when registration form is submitted after initial purchase.
Array of tickets
Ticket code, in most cases embeded in QR code.
Specific tickets within specific ticket code. In majority of cases, only one row is returned as one ticket code refers to one ticket type. However this is not the case for compound tickets.
Quantity, usually has value of 1.
Examples
{
"ticket": [
{
"code": "W753PV85CP",
"rows": [
{
"ticket_type": {
"id": "48482",
"title": "Regular ticket",
"qty": "1"
},
"attendee": {
"mail": "john@smidth.com",
"name": "John Smidth",
"country": "Sweden"
}
}
],
"event": {
"id": 10,
"title": "Happy event",
"starts_at": "2018-09-22 00:00:00",
"ends_at": "2018-10-22 23:59:59",
"duration_string": "Sat 22. September - Mon 22. October 2018"
}
}
]
}
Triggers when a ticket status is marked as USED. This can be done using Fienta’s mobile app, over web interface or via an API call.
URL of event hero image, can be emtpy string.
Additional notes about event time.
Human friendly representaion of event date and time.
Language in which the user made the purhase or registraion.
Referrer which lead to the purchase or registration. Event organiser has to use ?ref parameter when referring to the event URL in Fienta for this to have value.
Whether the buyer or attendee signed up for event organiser’s mailinglist.
Examples
{
"code": "0O1TVHPTMU",
"status": "USED",
"validated_at": "2020-06-03T14:24:55+03:00",
"rows": [
{
"ticket_type": {
"ticket_type_id": 360,
"title": "Regular ticket",
"qty": 1
}
}
],
"event": {
"id": 147,
"title": "Conference \"Birth Words\"",
"url": "https://fienta.com/en/sunnisonad",
"image_url": "https://fienta.com/uploads/147.jpg",
"starts_at": "2020-11-14T19:00:00+02:00",
"ends_at": "2020-11-14T20:10:00+02:00",
"time_description": "",
"duration_string": "Sat 14. November 2020 at 19:00 - 20:10",
"venue": {
"name": "Noblessner",
"address": "Tööstuse 48 Tallinn",
"country_code": "ee"
},
"organizer": {
"name": "Korraldaja nimi",
"phone": "",
"email": "test@testkorraldaja.ee"
}
},
"order": {
"id": 240784,
"status": "COMPLETED",
"locale": "en",
"ref": "close",
"buyer": {
"email": "rene@fienta.com",
"phone": "",
"mailinglist_subscribe": true
}
}
}