API

The Fienta API facilitates the integration of event and ticket management features into your applications. This documentation covers essential aspects such as the API’s base URL, handling of common responses and time, methods for authentication, and details on both public and private endpoints related to events and tickets. It also includes references for data types used by the API and information on webhooks.

Base URL

The base URL for Fienta’s API is https://fienta.com/api/v1

Rate limiting

The API is rate limited to 80 requests per minute per user or IP.

Common responses
Success
Object
code
integer
Example:
200
user_message
string
Example:
Events returned successfully
internal_message
string
Example:
events_returned_successfully
Errors
Object
errors
Array
Object
code
integer

The HTTP status code

Example:
401
user_message
string

Human readable description of the error

Example:
Unauthorized access
internal_message
string

Internal description of the error

Example:
authorization_failed
401 Unauthorized access

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"
        }
    ]
}
429 Too Many Requests

Too many API requests made within one minute by the user or from an IP. The limit is 80 requests per minute.

Body
Object
errors
time
retry_after
integer

Seconds left until API calls are allowed again

Example:
80
Examples
{
    "errors": [
        {
            "code": 429,
            "user_message": "Too many requests, please slow down the request.",
            "internal_message": "too_many_requests"
        }
    ],
    "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"
    },
    "retry_after": 80
}
Time
GET /server_time/
Get server time
GET /server_time/

Authentication

Open

Get the current server date, time and timezone values.

Responses

200 OK
Body
Object
success
time
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"
    }
}
Public API

Our public API can be used by anyone to read public non-private events.

GET /public/events
Get events
GET /public/events

Authentication

Open

Gets all public non-private events. Returns maximum of 1000 events.

Request parameters

starts_from
string optional

Only events which start at or later than requested, are returned. Defaults to current time.

Examples:
2021-12-312021-12-31 17:00
locale
string optional

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”.

Examples:
enfrruet
locale_strict
string optional

Same as the “locale” parameter but events without the requested locale are not returned.

country
string optional

Two-letter country code (ISO 3166-1 alpha-2) in which the event takes place. When not specified, events from all countries are returnd.

Examples:
ukfrruee
category
string optional

Only events which belong to requested category are returned.

Examples:
tourfestivalfilmfamilyconferenceartbeautymusicexhibitionsportsfoodspiritualitybusinessother
organizer
string optional

Comma separated list of event organiser ID-s. Only events by the requested organisers are returned.

Examples:
123123,456
series_id
string optional

Name of event series

Example:
happy-event

Responses

200 OK
Body
Object
success
time
count
integer
Example:
1
events
Array of Event
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": "soldOut",
            "attendance_mode": "offline",
            "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",
            "series_id": "happy-event",
            "organizer_name": "Great Events Ltd",
            "organizer_phone": "1 800 1234 5678",
            "organizer_email": "hello@greatevents.com",
            "organizer_id": 4567
        }
    ]
}
Private API

Our private API is used by Fienta’s mobile app and can be used to read and update event tickets.

Authorization

Fienta uses token based Bearer authorization which is required for protected API endpoints.

The client must send token in the Authorization header when making requests to protected resources:

Authorization: Bearer <token>

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca
Authentication

There are two ways to get the token:

  1. Organiser account level API key can be found using Fienta’s user interface from Settings > Integration.
  2. User level key can be retrieved via the API using Authenticate call.
POST /auth
Authenticate
POST /auth

Authentication

Open

On successful authentication returns the API token to use for authorization in API request headers.

Request headers

Content-Type
string required
Example:
application/json

Request body

Object
email
string required
Example:
myemail@domainname.com
password
string required
Example:
mypassword
Examples
{
    "email": "myemail@domainname.com",
    "password": "mypassword"
}

Responses

200 OK
Body
Object
success
token
Object required
token
string required

The API token to use for authorization of API requests that require it

Example:
e0333aa09ed5cc0f3f98af3b5a0689ca
expires_at
unknown required nullable

Expiration date and time for the token

Example:
2021-04-30 00:00:00
user_id
integer nullable

The user ID the token is tied to. May be null if the token is tied to a specific organizer or an event instead.

Example:
1
Examples
{
    "success": {
        "code": 200,
        "user_message": "Authenticated successfully",
        "internal_message": "authenticated_successfully"
    },
    "token": {
        "token": "TOKENSTRING",
        "expires_at": null,
        "user_id": 1
    }
}
Organizers
GET /organizers
GET /organizers/{organizer_id}/events
Get organizers
GET /organizers

Authentication

Bearer token

Returns organizers the given API token has access to.

Request headers

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca

Responses

401 Unauthorized access

Authorization fails due to an invalid token or no permission to access the requested resource.

200 OK
Body
Object
success
time
organizers
Array of Organizer
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."
        }
    ]
}
Get published events of the organizer
GET /organizers/{organizer_id}/events

Authentication

Bearer token

Get all events of the organizer specified by organizer_id.

Path variables

organizer_id
string required

Request parameters

starts_from
string optional

Retrive events which start at specified time or later.

Examples:
2021-12-312021-12-31 20:00
ends_from
string optional

Retrive events which end at specified time or later.

Examples:
2021-12-312021-12-31 20:00

Request headers

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca

Responses

401 Unauthorized access

Authorization fails due to an invalid token or no permission to access the requested resource.

200 OK
Body
Object
success
time
events
Array of Event
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
        }
    ]
}
Events
GET /events/{event_id}
GET /events
PUT /events/{event_id}
Get single event
GET /events/{event_id}

Authentication

Bearer token

Path variables

event_id
integer required

ID of the event

Example:
12345

Request headers

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca

Responses

401 Unauthorized access

Authorization fails due to an invalid token or no permission to access the requested resource.

200 OK
Body
Object
success

The success payload

time

Time

Event details

Examples
{
    "success": {
        "code": 200,
        "user_message": "Event returned successfully",
        "internal_message": "event_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"
    },
    "data": {
        "id": 9824,
        "organizer_id": 4324,
        "starts_at": "2022-10-05T14:00:00+03:00",
        "ends_at": "2022-10-31T17:00:00+02:00",
        "is_published": true,
        "is_public": true,
        "attendance_mode": "mixed",
        "image_url": "https://www.fienta.com/assets/uploads/12345.jpg",
        "accent_color": "#1047F8",
        "categories": ["festival", "music"],
        "url": "https://martti.fienta.com/happy-event",
        "buy_tickets_url": "https://martti.fienta.com/happy-event",
        "translations": {
            "en": {
                "title": "Happy event",
                "description": "Lorem ipsum<br>\\n superma lex",
                "duration_string": "Wed 5. October at 14:00 - Mon 31. October 2022 at 17:00 EEST",
                "notes_about_time": "Doors open at 9.30",
                "venue": "Sydney Opera House",
                "online_location": "Zoom",
                "address": {
                    "street": "1600 Pennsylvania Ave.",
                    "city": "Washington",
                    "county": "District of Columbia",
                    "postal_code": "20500",
                    "country_code": "us"
                },
                "organizer": {
                    "name": "Great Events Ltd",
                    "phone": "1 800 1234 5678",
                    "email": "hello@greatevents.com"
                }
            }
        },
        "created_at": "2020-07-23T11:15:58+03:00",
        "updated_at": "2020-07-23T11:15:58+03:00"
    }
}
Get all events
GET /events

Authentication

Bearer token

Get all events for which you are authorized to access using your bearer token.

Request parameters

starts_from
string optional

Only events which start after the requested time are returned. Defaults to current time.

Example:
2022-11-01 15:30:00
updated_after
string optional
Example:
2022-11-01 15:30:00
locale
string optional

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.

Example:
en
locale_strict
string optional

Same as the “locale” parameter but events without the requested locale are not returned.

Example:
en
organizer
string optional

Comma separated list of event organiser ID-s. Only events by the requested organisers are returned.

Example:
12345

Request headers

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca

Responses

200 OK
Body
Object
success

Success payload

time

Time

data
Array of Event details

Array of event details

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"
    },
    "data": [
        {
            "id": 10,
            "organizer_id": 10101,
            "starts_at": "2022-10-05T14:00:00+03:00",
            "ends_at": "2022-10-31T17:00:00+02:00",
            "sale_status": "onSale",
            "is_published": true,
            "is_public": true,
            "attendance_mode": "mixed",
            "image_url": "https://www.fienta.com/assets/uploads/12345.jpg",
            "accent_color": "#1047F8",
            "categories": [
                "\"art\", \"beauty\", \"business\", \"conference\",  \"dance\", \"exhibition\", \"family\", \"festival\", \"film\", \"food\", \"music\", \"other\", \"spirituality\", \"sports\",  \"theatre\", \"tour\""
            ],
            "url": "https://martti.fienta.com/happy-event",
            "buy_tickets_url": "https://martti.fienta.com/happy-event",
            "translations": {
                "en": {
                    "title": "Happy event",
                    "description": "Lorem ipsum<br>\\n superma lex",
                    "duration_string": "Wed 5. October at 14:00 - Mon 31. October 2022 at 17:00 EEST",
                    "notes_about_time": "Doors open at 9.30",
                    "venue": "Sydney Opera House",
                    "online_location": "Zoom",
                    "address": {
                        "street": "1600 Pennsylvania Ave.",
                        "city": "Washington",
                        "county": "District of Columbia",
                        "postal_code": "20500",
                        "country_code": "us"
                    },
                    "organizer": {
                        "name": "Great Events Ltd",
                        "phone": "1 800 1234 5678",
                        "email": "hello@greatevents.com"
                    }
                }
            },
            "created_at": "2020-07-23T11:15:58+03:00",
            "updated_at": "2020-07-23T11:15:58+03:00"
        }
    ]
}
401 Unauthorized access

Authorization fails due to an invalid token or no permission to access the requested resource.

Update a single event
PUT /events/{event_id}

Authentication

Bearer token

Path variables

event_id
integer required

ID of the event

Request headers

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca

Request body

Object
is_published
boolean

Event published status

online_event
Object

Data for events with attendance_mode set to ‘mixed’ or ‘online’. Not visible when attendance_mode is ‘offline’.

redirect_to_url
boolean

Redirect customer to redirect_url when online event starts

Example:
true
redirect_url
string

URL where to redirect

Example:
"https://www.example.com"
Examples
{
    "is_published": true,
    "online_event": {
        redirect_to_url: true,
        redirect_url: "https://www.example.com"
    }
}

Responses

401 Unauthorized access

Authorization fails due to an invalid token or no permission to access the requested resource.

200 OK
Body
Object
success
time
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"
    }
}
Tickets
GET /events/{event_id}/tickets/
GET /tickets/{ticket_code}/
PUT /tickets/{ticket_code}/
Get tickets of the event
GET /events/{event_id}/tickets/

Authentication

Bearer token

Path variables

event_id
integer required

ID of the event

Request parameters

updated_after
string optional

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)

Examples:
15256199672018-05-06%2015:19:27
attendees
string optional

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.

Example:
/events/1234/tickets/?attendees

Request headers

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca

Responses

401 Unauthorized access

Authorization fails due to an invalid token or no permission to access the requested resource.

200 OK
Body
Object
success
Success required

The success payload

time
Time required
tickets
Array of Ticket required

An array of tickets

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
Get a single ticket
GET /tickets/{ticket_code}/

Authentication

Bearer token

Path variables

ticket_code
string required

Code of the ticket

Example:
4LO4A3T8IH

Request parameters

atendees
string optional

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.

Example:
/tickets/W92YGGA0A8/?attendees

Request headers

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca

Responses

401 Unauthorized access

Authorization fails due to an invalid token or no permission to access the requested resource.

200 OK
Body
Object
success
Success required

The success payload

time
ticket
Ticket required
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"
                }
            }
        ]
    }
}
Update a single ticket
PUT /tickets/{ticket_code}/

Authentication

Bearer token

Path variables

ticket_code
string required

Code of the ticket

Request headers

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca

Request body

Object
status
string

One of the following: USED, UNUSED, REFUND_REQUESTED

Example:
USED
used_at
string

Date and time the ticket was validated

Example:
2018-04-06 22:27:21
ip
string

IP address string

Example:
1.2.3.4
Examples
{
    "status": "USED",
    "used_at": "2018-04-06 22:27:21"
}
{
    "status": "UNUSED",
    "used_at": null
}

Responses

401 Unauthorized access

Authorization fails due to an invalid token or no permission to access the requested resource.

200 OK
Body
Object
success
time
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"
    }
}
Ticket types
GET /events/{event_id}/ticket-types
Get ticket types of the event
GET /events/{event_id}/ticket-types

Authentication

Bearer token

Path variables

event_id
string required

ID of the event

Example:
1234

Request headers

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca

Responses

401 Unauthorized access

Authorization fails due to an invalid token or no permission to access the requested resource.

200 OK
Body
Object
success

The success payload

time

Time

data
Array of Ticket type

Ticket types

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"
    },
    "data": [
        {
            "id": 10123,
            "event_id": 10,
            "price": "10.00",
            "ticket_limit": 50,
            "tickets_sold": 25,
            "tickets_pending": 1,
            "vat": 20,
            "visible_start": "2020-07-23T11:15:58+03:00",
            "visible_end": "2020-07-23T11:15:58+03:00",
            "visible_code": "secret123",
            "attendance_mode": "online",
            "is_donation": "false",
            "donation_suggested_price": "",
            "translations": {
                "en": {
                    "title": "Regular ticket"
                }
            },
            "created_at": "2020-07-23T11:15:58+03:00",
            "updated_at": "2020-07-23T11:15:58+03:00"
        }
    ]
}
Custom Fields
GET /events/{event_id}/custom-fields
Get custom fields of the event
GET /events/{event_id}/custom-fields

Authentication

Bearer token

Path variables

event_id
integer required

ID of the event

Example:
12345

Request headers

Authorization headers
string required
Example:
Authorization: Bearer e0333aa09ed5cc0f3f98af3b5a0689ca

Responses

200 OK
Body
Object
success

The success payload

time

Time

data
Array of Custom field

Custom fields

Examples
{
    "success": {
        "code": 200,
        "user_message": "Custom fields returned successfully",
        "internal_message": "custom_fields_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"
    },
    "data": [
        {
            "id": 1010,
            "event_id": 10,
            "name": "full-name-1010",
            "type": "text",
            "required": "false",
            "unique": "false",
            "applies_to": "order",
            "sort_order_group": 2,
            "sort_order": 1,
            "translations": {
                "en": {
                    "label": "John Smith",
                    "input_label": "",
                    "help_text": "Please enter your full name"
                }
            },
            "created_at": "2022-10-18T16:27:50+03:00",
            "updated_at": "2022-10-18T16:27:50+03:00"
        }
    ]
}
Data reference
Time
Object
timestamp
integer

Unix timestamp (seconds since January 1st 1970)

Example:
1525436423
date
string

Date formatted in PHP date format “Y-m-D

Example:
2018-05-04
time
string

Time formatted in PHP date format “H:i:s

Example:
15:20:23
full_datetime
string

Full datetime string

Example:
2018-05-04T15:20:23+03:00
timezone
string

Timezone identifier string

Example:
Europe/Tallinn
timezone_short
string

Timezone abbreviation

Example:
EEST
gmt
string

Difference to Greenwich time (GMT) in hours

Example:
+0300

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"
}
Organizer
Object
id
integer
Example:
4
name
string
Example:
Organizer Company Name Ltd.

Examples

{
    "id": 4,
    "name": "Organizer Company Name Ltd."
}
Event
Object
id
integer required

ID of the event

Example:
10
title
string required

Title of the event

Example:
Happy event
starts_at
string

Date and time of the start of the event

Example:
2018-09-22 00:00:00
ends_at
string

Date and time of the ending of the event

Example:
2018-10-22 23:59:59
duration_string
string

A human readable event duration string

Example:
Sat 22. September - Mon 22. October 2018
sale_status
string

Indicates whether the tickets can be bought.

Examples:
onSalesalesEndedsalesNotStartedsoldOut
attendance_mode
string

Whether the event takes place at the venue (“offline”) is virtual (“online”) or is hybrid (“mixed”)

Examples:
offlineonlinemixed
venue
string

Name of the physical venue for real-life events

Example:
Sydney Opera House
address
string

Address of the venue without country name

Example:
1600 Pennsylvania Ave., Washington, D.C., 20500
description
string

Description of the event, may contain HTML tags

Example:
Lorem ipsum<br>\n superma lex
url
string

URL of the event page in Fienta

Example:
https://fienta.com/happy-event
buy_tickets_url
string

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.

Example:
https://fienta.com/happy-event
image_url
string

URL of the event hero image

Example:
https://fienta.com/uploads/12456.jpg
series_id
string

A string attribute that associates events belonging to a series. This attribute is always set, even if there are no other events in the same series.

Example:
happy-event
organizer_name
string

Name of the organizer

Example:
Great Events Ltd
organizer_phone
string

Phone number of the organizer, may be empty

Example:
1 800 1234 5678
organizer_email
string

Contact email of the organizer, always filled

Example:
hello@greatevents.com
organizer_id
integer

ID of the organiser of the event

Example:
4567

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": "soldOut",
    "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",
    "series_id": "happy-event",
    "organizer_name": "Great Events Ltd",
    "organizer_phone": "1 800 1234 5678",
    "organizer_email": "hello@greatevents.com",
    "organizer_id": 4567
}
Event details

Newer and more detailed version of Event data object

Object
id
integer

ID of the event

Example:
10
organizer_id
integer

ID of the event organizer

Example:
10101
starts_at
string

Start date and time of the event

Example:
2022-10-05T14:00:00+03:00
ends_at
string

End date and time of the event

Example:
2022-10-31T17:00:00+02:00
sale_status
string

Whether the tickets can be bought

Examples:
onSalesalesEndedsalesNotStartedsoldOut
is_published
boolean

Whether event is published

Example:
true
is_public
boolean

Whether event is public or private

Example:
true
attendance_mode
string

Whether the event takes place at the venue (“offline”) is virtual (“online”) or is hybrid (“mixed”)

Examples:
offlineonlinemixed
image_url
string

URL of the event hero image

Example:
https://www.fienta.com/assets/uploads/12345.jpg
accent_color
string

Accent color used on ticket sales page

Example:
#1047F8
categories
Array

Array of up to 3 of categories defined on event

Example:
["music", "festival", "art"]
string
Example:
"art", "beauty", "business", "conference", "dance", "exhibition", "family", "festival", "film", "food", "music", "other", "spirituality", "sports", "theatre", "tour"
url
string

URL of the event page in Fienta

Example:
https://martti.fienta.com/happy-event
buy_tickets_url
string

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.

Example:
https://martti.fienta.com/happy-event
translations
Object

Translatable fields for each locale used by event

en
Object

Locale abbreviation

title
string

Title of the event

Example:
Happy event
description
string

Description of the event, may contain HTML tags

Example:
Lorem ipsum<br>\n superma lex
duration_string
string

A human readable event duration string

Example:
Wed 5. October at 14:00 - Mon 31. October 2022 at 17:00 EEST
notes_about_time
string

Additional notes about time

Example:
Doors open at 9.30
venue
string

Name of the physical venue for real-life events

Example:
Sydney Opera House
online_location
string

Name of the platform for online and hybrid events

Example:
Zoom
address
Object

Address

street
string

Street name and house number

Example:
1600 Pennsylvania Ave.
city
string

City

Example:
Washington
county
string

County or region

Example:
District of Columbia
postal_code
string

Postal code

Example:
20500
country_code
string

Country code

Example:
us
organizer
Object

Organizer contacts

name
string

Organizer name

Example:
Great Events Ltd
phone
string

Organizer phone number

Example:
1 800 1234 5678
email
string

Organizer email

Example:
hello@greatevents.com
created_at
string

Date and time of event creation

Example:
2020-07-23T11:15:58+03:00
updated_at
string

Date and time of event update

Example:
2020-07-23T11:15:58+03:00
Ticket

Event ticket

Object
id
integer

ID of the ticket

Example:
123456
event_id
integer

ID of the event the ticket belongs to

Example:
12345
order_id
integer

ID of the purchase order the ticket was bought with

Example:
123345
code
string

Code of the ticket which is used for validation. This code is visible on the ticket and usually also represented as QR code.

Example:
4LO4A3T8IH
status
string
Examples:
UNUSEDUSEDREFUNDEDCANCELLEDSPLITTED
used_at
string

Date and time the ticket was validated at, “null” if not yet validated

Example:
2020-03-01 15:35:11
created_at
string

Date and time the ticket was created at

Example:
2020-02-01 13:24:48
updated_at
string

Date and time the ticket was last changed at, this includes status changes

Example:
2020-02-01 13:24:48
validated_by
integer nullable

ID of the user who validated the ticket, “null” if not yet validated

Example:
12345
ip
string

IP address of the user who validated the ticket, empty if not yet validated

Example:
192.168.1.2
order_email
string

Email address of the buyer

Example:
john@smidth.com
contents_html
string

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.

Examples:
<h1>1 x Regular ticket</h1><h1>2 x Student ticket</h1><h2>John</h2><h2>Smith</h2><h1>Check ticket type and amount from ticket</h1>
nametag_html
string

Name tag HTML for sending to printer. Filled with Attendee-based Order custom fields values when Event’s nametag_html template has been entered.

Example:
<!DOCTYPE html><html><body><p>Name: John</p><p>Surname: Smith</p></body></html>
qty
integer

Total quantity of visitors on the Ticket. This has usually value of 1, except for compound tickets which is experimental feature currently.

Example:
1
rows
Array
Object
ticket_type
Object
id
integer

ID of the ticket type

Example:
1234
title
string

Title of the ticket type

Examples:
Early bird ticketRegular ticket
attendance_mode
string

Whether the ticket is valid at the venue (“offline”) only online (“online”) or for both (“mixed”)

Examples:
offlineonlinemixed

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"
            }
        }
    ]
}
Ticket type
Object
id
integer

ID of the ticket type

Example:
10123
event_id
integer

ID of the event

Example:
10
price
string

Price

Example:
10.00
ticket_limit
integer nullable

Number of tickets set as a limit for this ticket type

Example:
50
tickets_sold
integer

Number of tickets sold from this ticket type

Examples:
025
tickets_pending
integer

Number of tickets pending

Examples:
05
vat
integer

VAT % that applies to this ticket type

Example:
20
visible_start
string nullable

Date and time when sale of ticket type will start

Example:
2020-07-23T11:15:58+03:00
visible_end
string nullable

Date and time when sale of ticket type will stop

Example:
2020-07-23T11:15:58+03:00
visible_code
string

Ticket type will be hidden in ticket sales page until this code is entered. Ticke type is always visible if empty.

Example:
secret123
attendance_mode
string

Incicates how the buyer of the ticket can access to the event

Examples:
offlineonlinemixed
is_donation
boolean

Indicates if ticket type is a donation

Example:
false
donation_suggested_price
string nullable

Price displayed as default price in the donation amount input

translations
Object
en
Object

Locale abbreviation

title
string

Title

Example:
Regular ticket
created_at
string

Date and time of ticket type creation

Example:
2020-07-23T11:15:58+03:00
updated_at
string

Date and time of ticket type update

Example:
2020-07-23T11:15:58+03:00
Custom field
Object
id
integer

ID of the custom field

Example:
1010
event_id
integer

ID of the event

Example:
10
name
string

Name of the custom field

Example:
full-name-1010
type
string

Type of the custom field

Examples:
texttextareaemailnumberdatecheckboxradioselectmultiple_select
required
boolean

Whether the field is mandatory to fill

Example:
false
unique
boolean

Whether the field value has to be unique in context of this event

Example:
false
applies_to
string

Whether the field is shown for each ticket or once per order

Examples:
ticketorder
sort_order_group
integer

Group in which the custom field is displayed on the screen

Examples:
123
sort_order
integer

Custom field’s display position within sort_order_group

Min: 1
Example:
1
translations
Object

Translatable fields for each locale used by event

en
Object

Locale abreviation

label
string

Field input label or a question for radio buttons and checkboxes

Example:
John Smith
input_label
string

Field input label for radio buttons and checkboxes

help_text
string

Informational text displayed under the field

Example:
Please enter your full name
created_at
string

Creation time of custom field

Example:
2022-10-18T16:27:50+03:00
updated_at
string

Update time of custom field

Example:
2022-10-18T16:27:50+03:00
Attendee

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.

Object
mail
string
Example:
john@smidth.com
name
string
Example:
John Smidth
country
string
Example:
Sweden
Webhooks
About webhooks

Fienta has three webhooks which can be turned on by the event organiser on Settings > Integrations page.

These trigger on

Order completion

Triggers when a ticket is bought or attendee has registered to a free event.

Object
id
number

Unique id of the order.

Example:
1234
status
string

Order status. Has always value “COMPLETED” when order completion webhook is triggered.

Example:
COMPLETED
locale
string

Language in which the user made the purhase or registraion.

Example:
en
buyer
Object
email
string

Contact email address which was entered by the buyer or attendee.

Example:
john@smidth.com
phone
string

Contact phone number which was entered by the buyer or attendee.

Example:
081 3888 382
mailinglist_subscribe
boolean

Whether the buyer or attendee signed up for event organiser’s mailinglist.

payment
Object
time
string

Time of payment or registration completion.

Example:
2020-06-03T14:26:07+03:00
total
integer

Total amount paid in cents.

Example:
2000
vat_percent
integer

VAT percentage, inluded in total amount.

Example:
20
currency
string
Example:
EUR
discount
Object

Discount code used during the checkout. This object is returned only if a code was used by the buyer.

id
integer

ID of the discount.

Example:
56789
code
string

Discount code string entered by the buyer.

Examples:
86FYLfriends-and-vips
tickets
Array

Array of tickets

Object
code
string

Ticket code, in most cases embeded in QR code.

Example:
W753PV85CP
rows
Array

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.

Object
ticket_type
Object
id
string
Example:
48482
title
string
Example:
Regular ticket
qty
string

Quantity, usually has value of 1.

Example:
1
event
Object
id
integer
Example:
3834
title
string
Example:
Die Hard 2
url
string
Example:
https://fienta.com/en/die-hard
image_url
string

URL of event hero image, can be emtpy string.

Example:
https://fienta.com/uploads/3834.jpg
starts_at
string
Example:
2020-11-14T19:00:00+02:00
ends_at
string
Example:
2020-11-14T20:10:00+02:00
time_description
string

Additional notes about event time.

Example:
Doors open at 18:30
duration_string
string

Human friendly representaion of event date and time.

Example:
Sat 14. November 2020 at 19:00 - 20:10
venue
Object
name
string
Example:
Noblessner movie theatre
address
string
Example:
Oak street 3, London
country_code
string
Example:
uk
organizer
Object
name
string
Example:
Smidth Events Ltd
phone
string
Example:
081 38484 28484
email
string
Example:
john@smidthevents.com

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"
        }
    }
}
Submitting registration form

Triggers when registration form is submitted after initial purchase.

Object
ticket
Array

Array of tickets

Object
code
string

Ticket code, in most cases embeded in QR code.

Example:
W753PV85CP
rows
Array

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.

Object
ticket_type
Object
id
string
Example:
48482
title
string
Example:
Regular ticket
qty
string

Quantity, usually has value of 1.

Example:
1
attendee
event

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"
            }
        }
    ]
}
Ticket validation

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.

Object
code
string
Example:
0O1TVHPTMU
status
string
Example:
USED
validated_at
string
Example:
2020-06-03T14:24:55+03:00
rows
Array
Object
ticket_type
Object
ticket_type_id
integer
Example:
48482
title
string
Example:
Regular ticket
qty
integer
Example:
1
event
Object
id
integer
Example:
3834
title
string
Example:
Die Hard 2
url
string
Example:
https://fienta.com/en/die-hard
image_url
string

URL of event hero image, can be emtpy string.

Example:
https://fienta.com/uploads/3834.jpg
starts_at
string
Example:
2020-11-14T19:00:00+02:00
ends_at
string
Example:
2020-11-14T20:10:00+02:00
time_description
string

Additional notes about event time.

Example:
Doors open at 18:30
duration_string
string

Human friendly representaion of event date and time.

Example:
Sat 14. November 2020 at 19:00 - 20:10
venue
Object
name
string
Example:
Noblessner movie theatre
address
string
Example:
Oak street 3, London
country_code
string
Example:
uk
organizer
Object
name
string
Example:
Smidth Events Ltd
phone
string
Example:
081 38484 28484
email
string
Example:
john@smidthevents.com
order
Object
id
integer
Example:
1234
status
string
Example:
COMPLETED
locale
string

Language in which the user made the purhase or registraion.

Example:
en
ref
string

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.

Example:
facebook
buyer
Object
email
string
Example:
john@smidth.com
phone
string
Example:
081 3888 382
mailinglist_subscribe
boolean

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
        }
    }
}