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
a month 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