Engage Bay — Sushidata
Pricing
Pay per usage
Engage Bay — Sushidata
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Sushidata
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
18 days ago
Last modified
Categories
Share
EngageBay CRM API Actor
Interact with the full EngageBay REST API from the Apify platform. This Actor supports 75 operations across all EngageBay resources: Contacts, Companies, Deals, Tracks, Events, Tasks, Notes, Forms, Sequences, Lists, Owners, Custom Fields, Tickets, Tags, Products, and Broadcasts.
Authentication
Find your REST API Key in EngageBay → Account Admin Settings → API → REST API Key and pass it as apiKey.
The apiKey input is marked as secret and will not appear in logs.
Input
| Field | Type | Required | Description |
|---|---|---|---|
apiKey | string | ✅ | EngageBay REST API Key |
action | string | ✅ | Operation to perform (see full list below) |
contactId | string | Contact ID (for contact-specific operations) | |
companyId | string | Company ID | |
dealId | string | Deal ID | |
trackId | string | Track ID | |
taskId | string | Task ID | |
ticketId | string | Ticket ID | |
productId | string | Product ID | |
formId | string | Form ID | |
sequenceId | string | Sequence ID | |
listId | string | Contact List ID | |
customFieldType | string | CONTACT / DEAL / COMPANY / TICKET | |
customFieldId | string | Custom Field ID (for delete) | |
email | string | Contact email address (for email-based operations) | |
ownerEmail | string | New owner email (for contacts_change_owner) | |
searchQuery | string | Keyword for search operations | |
startTime | integer | Epoch ms — required for events_list | |
endTime | integer | Epoch ms — required for events_list | |
pageSize | integer | Records per page (1–100, default 20) | |
sortKey | string | created_time, updated_time, or prepend - for descending | |
cursor | string | Pagination cursor to resume from | |
fetchAll | boolean | Auto-paginate all pages (default false) | |
data | object | Request body / action-specific filters (see per-action examples) |
Supported Actions
Contacts
| Action | Required fields | data shape |
|---|---|---|
contacts_list | — | — |
contacts_get | contactId | — |
contacts_get_by_email | email | — |
contacts_create | — | Contact JSON |
contacts_update | — | {id, properties:[...]} |
contacts_delete | contactId | — |
contacts_search | searchQuery | — |
contacts_add_tags | email | {tags: ["tag1","tag2"]} |
contacts_delete_tags | email | {tags: ["tag1"]} |
contacts_list_tags | email | — |
contacts_list_tags_by_id | contactId | — |
contacts_add_tags_by_id | contactId | {tags: [{tag:"tag1"}]} |
contacts_delete_tags_by_id | contactId | {tags: [{tag:"tag1"}]} |
contacts_add_score | email | {score: 10} |
contacts_change_owner | contactId, ownerEmail | — |
contacts_create_batch | — | {contacts:[...], callbackURL:"..."} |
contacts_get_notes | contactId | — |
contacts_get_call_logs | contactId | — |
Companies
| Action | Required fields | data shape |
|---|---|---|
companies_list | — | — |
companies_get | companyId | — |
companies_create | — | Company JSON |
companies_update | — | {id, properties:[...]} |
companies_delete | companyId | — |
companies_search | searchQuery | — |
companies_add_contact_by_id | companyId, contactId | — |
companies_add_contact_by_email | companyId, email | — |
Deals
| Action | Required fields | data shape |
|---|---|---|
deals_list | — | {trackId: "..."} (optional) |
deals_get | dealId | — |
deals_create | — | {name, amount, track_name, milestoneLabelName} |
deals_delete | dealId | — |
deals_create_for_contact | email | {name, amount, track_name, milestoneLabelName} |
deals_search | searchQuery | — |
deals_update_track | — | {id, milestoneLabelName, track_id} |
deals_update | — | {id, properties:[...]} |
Tracks
| Action | Required fields |
|---|---|
tracks_list | — |
tracks_get | trackId |
tracks_create | data: {name, milestones:[...]} |
tracks_update | data: {id, name, milestones:[...]} |
tracks_delete | trackId |
Events
| Action | Required fields |
|---|---|
events_list | startTime, endTime (epoch ms) |
events_get_for_contact | contactId |
events_create | data: {name, start_time, end_time, source_type, owner_id} |
events_update | data: {id, name, start_time, end_time, source_type, owner_id} |
Tasks
| Action | Required fields | data shape |
|---|---|---|
tasks_list | — | {taskStatus: "not_started", taskType: "ALL"} |
tasks_get | taskId | — |
tasks_create | — | Task JSON |
tasks_update | — | Task JSON with id |
tasks_delete | taskId | — |
taskStatusvalues:not_started,in_progress,waiting,completed,deferred
taskTypevalues:TODO,CALL,ALL
Notes
| Action | data shape |
|---|---|
notes_create | {subject, content, parentId} |
Forms
| Action | Required fields |
|---|---|
forms_list | — |
forms_add_contact | email, formId |
Sequences
| Action | Required fields |
|---|---|
sequences_add_contact | email, sequenceId |
Lists
| Action | Required fields |
|---|---|
lists_list | — |
lists_add_contact | email, listId |
Owners
| Action | Required fields |
|---|---|
owners_list | — |
Custom Fields
| Action | Required fields | data shape |
|---|---|---|
custom_fields_list | customFieldType | — |
custom_fields_create | — | {field_label, scope, field_description, field_type, is_required, is_searchable} |
custom_fields_delete | customFieldType, customFieldId | — |
User Profile
| Action | Required fields |
|---|---|
user_profile | — |
Tickets
| Action | Required fields | data shape |
|---|---|---|
tickets_list | — | {filterId: "..."} (optional) |
tickets_get | ticketId | — |
tickets_create | — | {requester_name, requester_email, subject, group_id, html_body} |
tickets_delete | ticketId | — |
Tags
| Action | data shape |
|---|---|
tags_list | — |
tags_create | {tag: "MyTag"} |
Products
| Action | Required fields | data shape |
|---|---|---|
products_list | — | — |
products_get | productId | — |
products_get_by_name | — | {productName: "My Product"} |
products_create | — | {name, description, price, discount_type, discount, currency} |
products_update | productId | Full product JSON |
products_update_partial | — | {id, price, name, properties:[...]} |
products_delete | productId | — |
products_add_to_contact | contactId | {productId, isSubscribed, subscribedOn, interval} |
products_remove_from_contact | contactId, productId | — |
Broadcast
| Action | data shape |
|---|---|
broadcast_create | {emailIds: [...], template_id: 12345, from_email: "from@domain.com"} |
Pagination
For list operations, the actor fetches one page by default (pageSize records, max 100). Set fetchAll: true to automatically paginate through all pages. Use cursor to start from a specific page.
Output
Results are pushed to the Apify dataset. Each record is a JSON object returned by the EngageBay API.
Error Handling
| HTTP Status | Meaning |
|---|---|
| 400 | Bad request — check your data payload |
| 401 | Invalid API key |
| 404 | Resource not found |
| 429 | Rate limit exceeded |
EngageBay REST API Reference
Full API documentation: https://github.com/engagebay/restapi