Base Endpoint
GET/POST
{SITE_URL}/?eventprime-integration=zapier&...query params...
Important
{SITE_URL}must end with a trailing slash (/).- If it does not, the API returns 400 with:
{"status":400,"message":"Bad request: site URL needs to end with a / at the end of the URL."}
Authentication
Provide the API key as a query parameter:
api_key=<YOUR_API_KEY>
The key is compared case-insensitively against the value configured at:
Dashboard → EventPrime → Settings → Extensions → EventPrime Zapier Integration → Manage
Failure Responses
401 Invalid API key
{"status":401,"message":"Invalid API key"}
400 Missing trailing slash
{"status":400,"message":"Bad request: site URL needs to end with a / at the end of the URL."}
High-level Flow
Webhook mode (subscribe/unsubscribe + pushes)
Zapier registers a hookUrl. When matching events occur, EventPrime POSTs normalized JSON payloads to that URL.
Polling mode (perform/sample)
Zapier requests recent/sample data for a trigger.
Query Parameters
| Param | Required | Values / Notes |
|---|---|---|
| eventprime-integration | Yes | Must equal zapier |
| api_key | Yes | Case-insensitive match to plugin setting |
| action | Yes | See Actions below (except basic “ping”) |
| site_url | Recommended | Must end with / (validated) |
| Other fields | As needed | Vary by action/trigger |
Actions
1) action=subscribe (Webhook)
Registers a Zap’s webhook for a given trigger and returns sample data. Also sends a test POST to hookUrl.
Required params
zapId– unique Zap identifiertrigger– one of the supported trigger keyshookUrl– Zapier webhook URL
Example
GET {SITE_URL}/?eventprime-integration=zapier
&api_key=XXXX
&action=subscribe
&zapId=12345
&trigger=create_event
&hookUrl=https://hooks.zapier.com/hooks/standard/123/abc
Response
- JSON sample for the trigger
- Additionally, a test POST is sent to
hookUrl
2) action=unsubscribe (Webhook)
Removes a stored webhook for a Zap.
Required params
zapIdtriggerhookUrl(passed through)
Example
GET ...&action=unsubscribe&zapId=12345&trigger=create_event&hookUrl=...
Response
{"name":"12345","type":"create_event","webhook_url":"https://hooks.zapier.com/..."}
3) action=perform (Polling)
Returns sample/recent data for a trigger.
Required params
trigger– see Supported Triggers
Example
GET ...&action=perform&trigger=all_events
Response
- Array/object of items for the trigger
- Message if none available
4) action=create_event (Mutation)
Creates an EventPrime event.
Required params
em_name– event titleem_start_date– parsable date/time (e.g.,2025-09-28or2025-09-28 10:00)
Optional params
em_end_date– parsable date/timedescription
Example
GET ...&action=create_event
&em_name=Conference%202025
&em_start_date=2025-11-20
&em_end_date=2025-11-20
&description=Annual%20conference
Success Response
{"msg":"Event created successfully.","ID":123}
5) 🆕 action=create_event_with_ticket (Mutation)
Creates an Event and one or more Tickets in a single request.
Endpoint
GET/POST
{SITE_URL}/?eventprime-integration=zapier
Required Query Parameters
| Parameter | Description |
|---|---|
| eventprime-integration | Must equal zapier |
| api_key | Valid API key |
| action | Must be create_event_with_ticket |
| em_name | Event title |
| em_start_date | Event start date/time |
| em_end_date | Event end date/time |
| tickets | JSON array of ticket objects |
Required Ticket Fields (Inside tickets JSON)
Each ticket object must include:
| Field | Description |
|---|---|
| ticket_name | Ticket name |
| ticket_price | Ticket price |
| ticket_quantity | Total ticket quantity |
| minimum_ticket_qty | Minimum tickets allowed per booking |
| maximum_ticket_qty | Maximum tickets allowed per booking |
| ticket_start_date | Ticket sale start date |
| ticket_end_date | Ticket sale end date |
Example Request (cURL)
curl -G "{SITE_URL}/" \
--data-urlencode "eventprime-integration=zapier" \
--data-urlencode "api_key=YOUR_KEY" \
--data-urlencode "action=create_event_with_ticket" \
--data-urlencode "em_name=Music Festival 2026" \
--data-urlencode "em_start_date=2026-12-20 18:00" \
--data-urlencode "em_end_date=2026-12-20 23:00" \
--data-urlencode 'tickets=[
{
"ticket_name":"VIP",
"ticket_price":150,
"ticket_quantity":100,
"minimum_ticket_qty":1,
"maximum_ticket_qty":5,
"ticket_start_date":"2026-11-01 10:00",
"ticket_end_date":"2026-12-20 18:00"
}
]'
Success Response
{"msg":"Event and tickets created successfully.","event_id":145,"ticket_ids":[321]}
Validation Rules
- Event start date must be earlier than event end date.
- Ticket sale start date must be earlier than ticket sale end date.
- Ticket quantity must be greater than 0.
ticket_pricemust be numeric.minimum_ticket_qtymust be ≥ 1.maximum_ticket_qtymust be ≥minimum_ticket_qty.{SITE_URL}must end with/.- API key must be valid.
6) 🆕 action=create_ticket (Mutation)
Creates a ticket for an existing event.
Endpoint
GET/POST
{SITE_URL}/?eventprime-integration=zapier
Required Parameters
| Parameter | Description |
|---|---|
| eventprime-integration | Must equal zapier |
| api_key | Valid API key |
| action | Must be create_ticket |
| event_id | Existing Event ID |
| ticket_name | Ticket name |
| ticket_price | Ticket price |
| ticket_quantity | Total ticket quantity |
| minimum_ticket_qty | Minimum tickets allowed per booking |
| maximum_ticket_qty | Maximum tickets allowed per booking |
| ticket_start_date | Ticket sale start date |
| ticket_end_date | Ticket sale end date |
Example Request (cURL)
curl -G "{SITE_URL}/" \
--data-urlencode "eventprime-integration=zapier" \
--data-urlencode "api_key=YOUR_KEY" \
--data-urlencode "action=create_ticket" \
--data-urlencode "event_id=145" \
--data-urlencode "ticket_name=Early Bird" \
--data-urlencode "ticket_price=30" \
--data-urlencode "ticket_quantity=200" \
--data-urlencode "minimum_ticket_qty=1" \
--data-urlencode "maximum_ticket_qty=10" \
--data-urlencode "ticket_start_date=2026-10-01 10:00" \
--data-urlencode "ticket_end_date=2026-12-01 18:00"
Success Response
{"msg":"Ticket created successfully.","ticket_id":401}
7) action=create_booking (Mutation)
Creates a booking for an event/ticket.
Required params
event_id– numericticket_id– numericemail– user email
Optional params
booking_status(defaults tocompleted)
Supported values:
completedpendingcancelledrefundedfailed
Example
GET ...&action=create_booking
&event_id=77
&ticket_id=324
&email=alex@example.com
&booking_status=pending
Success Response
{"msg":"Booking created successfully."}
Validation failures
{"msg":"Missing required booking data."}
{"msg":"Invalid ticket."}
8) action=init_action (Advanced)
Internal hook point. Useful only if a custom action_key is handled via filters on the site.
Required params
action_key
Example
GET ...&action=init_action&action_key=custom_key
Response
- Whatever the site-specific filter returns (bool/array/object), JSON-encoded.
Supported Triggers
Events
create_event– event createdupdate_event– event updateddelete_event– event deleted/trashedall_events– list/polling
Venues
create_venue– venue createdupdate_venue– venue updateddelete_venue– venue deletedall_venues– list/polling
Performers
create_performer– performer createdupdate_performer– performer updateddelete_performer– performer deletedall_performers– list/polling
Bookings (status feeds)
confirm_booking– completed bookingspending_booking– pending bookingscancel_booking– cancelled bookingsrefund_booking– refunded bookingsfailed_booking– failed bookings
Subscribe Behavior
On subscribe, the plugin:
- Stores
{zapId, trigger, hookUrl} - Immediately POSTs a test payload to
hookUrl
Response Shape & Normalization
- All responses are JSON.
- Payloads are normalized.
- The plugin attempts JSON decode/unserialize and string sanitation where applicable.
Generic Success (Ping)
{"msg":"Success","site_title":"My WordPress Site"}
Bailed Errors
{"status":401,"message":"Invalid API key"}
Webhook POSTs are sent as:
Content-Type: application/json; charset=utf-8- A normalized JSON body representing the resource(s) for the registered trigger.
Error Reference
| HTTP | Message | When |
|---|---|---|
| 400 | Bad request: site URL needs to end with a / at the end of the URL. | site_url missing trailing slash |
| 401 | Invalid API key | Incorrect/absent api_key |
| 404 | Unknown request parameters | Unsupported action |
| 200 | {“msg”:”No such triggers available…”} | Unsupported trigger in perform |
Quick cURL Samples
Subscribe to “event created”
curl -G "{SITE_URL}/" --data-urlencode "eventprime-integration=zapier" \
--data-urlencode "api_key=YOUR_KEY" \
--data-urlencode "action=subscribe" \
--data-urlencode "zapId=ZAP-001" \
--data-urlencode "trigger=create_event" \
--data-urlencode "hookUrl=https://hooks.zapier.com/hooks/standard/123/abc"
Poll sample events
curl -G "{SITE_URL}/" --data-urlencode "eventprime-integration=zapier" \
--data-urlencode "api_key=YOUR_KEY" \
--data-urlencode "action=perform" \
--data-urlencode "trigger=all_events"
Create an event
curl -G "{SITE_URL}/" --data-urlencode "eventprime-integration=zapier" \
--data-urlencode "api_key=YOUR_KEY" \
--data-urlencode "action=create_event" \
--data-urlencode "em_name=Conference 2025" \
--data-urlencode "em_start_date=2025-11-20" \
--data-urlencode "em_end_date=2025-11-20" \
--data-urlencode "description=Annual conference"
🆕 Create an event with tickets
curl -G "{SITE_URL}/" \
--data-urlencode "eventprime-integration=zapier" \
--data-urlencode "api_key=YOUR_KEY" \
--data-urlencode "action=create_event_with_ticket" \
--data-urlencode "em_name=Music Festival 2026" \
--data-urlencode "em_start_date=2026-12-20 18:00" \
--data-urlencode "em_end_date=2026-12-20 23:00" \
--data-urlencode 'tickets=[
{
"ticket_name":"VIP",
"ticket_price":150,
"ticket_quantity":100,
"minimum_ticket_qty":1,
"maximum_ticket_qty":5,
"ticket_start_date":"2026-11-01 10:00",
"ticket_end_date":"2026-12-20 18:00"
}
]'
🆕 Create a ticket for an existing event
curl -G "{SITE_URL}/" \
--data-urlencode "eventprime-integration=zapier" \
--data-urlencode "api_key=YOUR_KEY" \
--data-urlencode "action=create_ticket" \
--data-urlencode "event_id=145" \
--data-urlencode "ticket_name=Early Bird" \
--data-urlencode "ticket_price=30" \
--data-urlencode "ticket_quantity=200" \
--data-urlencode "minimum_ticket_qty=1" \
--data-urlencode "maximum_ticket_qty=10" \
--data-urlencode "ticket_start_date=2026-10-01 10:00" \
--data-urlencode "ticket_end_date=2026-12-01 18:00"
Create a booking
curl -G "{SITE_URL}/" --data-urlencode "eventprime-integration=zapier" \
--data-urlencode "api_key=YOUR_KEY" \
--data-urlencode "action=create_booking" \
--data-urlencode "event_id=77" \
--data-urlencode "ticket_id=324" \
--data-urlencode "email=alex@example.com" \
--data-urlencode "booking_status=pending"
Common Troubleshooting
401 Invalid API key
Ensure the key in:
EventPrime → Settings → Extensions → EventPrime Zapier Integration → Manage
matches the api_key passed.
400 trailing slash
Make sure the supplied {SITE_URL} ends with /.
No data on perform
The site may not yet have corresponding items.
- Create one and retry, or
- Choose another trigger
Webhook received but empty
Confirm the relevant WordPress hooks are firing and the resource exists.
© EventPrime – Internal Support Reference
Questions, Support & Custom Solutions
- Need more details or can't find what you're looking for? Let us know how we can help! Contact our support team here.
- Looking for a tailor-made solution to meet your specific needs? Our dedicated customization team is here to help! Use this link to share your requirements with us, and we'll collaborate with you to bring your vision to life.