REST API v0
This document describes the Mobly REST API (version v0).
All endpoints are:
JSON-based
Authenticated via API Key
Versioned under
/v0
Base URL
All requests should be made relative to the following base URL:
https://core-api.getmobly.com/api/v0
Authentication
All requests must include a valid API key. You can request an API key by contacting customer support.
API Key Header
Send your API key using the x-api-key header:
x-api-key: YOUR_API_KEY_HEREExample Request
Authentication Errors
Missing API key
401
Unauthorized – API key not provided.
Invalid API key
403
Forbidden – API key header invalid.
Error responses follow this structure:
Response Format
All successful endpoints return results in a consistent wrapper format.
Single-Resource Endpoints
status: HTTP status code.results: Single object for the specific resource (e.g.event,lead).
Array-Resource Endpoints (Paginated)
status: HTTP status code.pagination.limit: number of items returned in this page.pagination.offset: zero-based page index.results.<resource>: an array for the specific resource (e.g.events,leads).results.total: total number of records matching the query for the organization.
If a resource cannot be found, a 404 is returned:
Pagination Parameters
List endpoints support the following query parameters:
limit
number
20
50
Page size. Values greater than 50 are clamped.
offset
number
0
—
Zero-based page index (0 = first page).
Example:
Returns up to 25 leads, for the third page of results.
Rate Limiting
Mobly API requests are rate-limited to ensure fair usage and to protect system performance. Rate limits apply per API key using a token bucket model with two key properties:
Burst Capacity (
maxTokens) – the maximum number of requests that can be made at onceRefill Rate (
refillRate) – how many requests are added back to the bucket over time
Each incoming request consumes 1 token. If no tokens are available, the API returns HTTP 429 – Too Many Requests.
Clients can track their usage in real time using the rate-limit headers returned on every response.
How the Token Bucket Works
Every API key has:
maxTokens– maximum number of allowed burst requestsrefillRate– tokens added per secondtokensRemaining– current number of tokens in the bucketretryAt– timestamp when the next token will be available if the bucket is empty
Example:
Given the default usage rates:
maxTokens = 20 refillRate = 1 token/second
Then:
You can make up to 20 requests instantly (burst)
You can sustain 1 request per second indefinitely
If you exceed the limit, you must wait until a token becomes available
Rate Limit Headers
The following headers are included on all successful responses and all 429 responses:
X-RateLimit-Limit
The maximum burst capacity (maxTokens) for the API key.
X-RateLimit-Remaining
How many tokens remain after this request*.
X-RateLimit-Reset
Unix timestamp (seconds) when the bucket will fully refill.
Retry-After
(Only on 429) Number of seconds to wait before retrying.
Endpoint Summary
All available endpoints in v0:
GET /eventsGET /events/:eventIdPOST /eventsPUT /events/:eventIdDELETE /events/:eventIdGET /events/:eventId/leadsPUT /events/:eventId/leadsDELETE /events/:eventId/leads/:leadIdGET /events/:eventId/usersGET /leadsGET /leads/:leadIdPOST /leadsPATCH /leads/:leadIdDELETE /leads/:leadIdGET /leadActivityEventsGET /leadActivityEvents/:leadActivityEventIdGET /activationsGET /activations/:activationIdGET /tagGroupsGET /tagGroups/:tagGroupIdGET /industryEventsGET /industryEvents/bookmarksGET /industryEvents/:industryEventIdPOST /industryEventsPUT /industryEvents/:industryEventIdPOST /industryEvents/:industryEventId/bookmarkDELETE /industryEvents/:industryEventId/bookmark
Events
GET /events
List events for the authenticated organization.
Query Parameters
limit– page size (default 20, maximum 50)offset– zero-based page index (default 0)
Response
EventV0Response
Note:
EventTypeis a string enum (e.g.CONFERENCE,TRADE_SHOW,EVENT,SIDECAR,DINNER_MEAL,HAPPY_HOUR,OTHER).
Note:
startDate&endDateare formatted as an ISO 8601 date, e.g. "2025-11-21"
GET /events/:eventId
Fetch a single event by ID.
Path Parameters
eventId
number
Event ID
Example
Response
POST /events
Create an event for the authenticated organization.
Body Payload
Response
PUT /events/:eventId
Update an event for the authenticated organization.
Important: This endpoint updates the full event record.
Path Parameters
eventId
number
Event ID
Body Payload
Response
DELETE /events/:eventId
Delete an event for the authenticated organization.
Path Parameters
eventId
number
Event ID
Response
GET /events/:eventId/leads
Retrieve the leads associated with a specific event, including their registration and check-in status.
Path Parameters
eventId
number
Event ID
Query Parameters
limit– page size (default 20, maximum 50)offset– zero-based page index (default 0)
Response
EventLeadV0Response
PUT /events/:eventId/leads
Associate existing leads with an event and optionally update their registered and checkedIn status.
If a lead is not yet associated with the event, a new association is created.
If the lead is already associated, the existing
registeredandcheckedInvalues are updated.
If registered or checkedIn are omitted, they default to false.
Note: This endpoint does not remove existing associations. To remove a lead from an event, use:
DELETE /events/:eventId/leads/:leadId
Path Parameters
eventId
number
Event ID
Body Payload
Response
DELETE /events/:eventId/leads/:leadId
Delete a lead's association with an event for the authenticated organization.
Path Parameters
eventId
number
Event ID
leadId
string
Lead ID
Response
GET /events/:eventId/users
Retrieve the users assigned to a specific event for the authenticated organization.
Path Parameters
eventId
number
Event ID
Query Parameters
limit– page size (default 20, maximum 50)offset– zero-based page index (default 0)
Response
UserV0Response
Leads
GET /leads
List leads for the authenticated organization.
Query Parameters
limit– page size (default 20, maximum 50)offset– zero-based page index (default 0)
Response
LeadV0Response
Note:
IntegrationTypeis a string enum (e.g.MARKETO,HUB_SPOT,ZOHO,SALES_FORCE,PIPE_DRIVE,ELOQUA,PARDOT,WEBHOOK).
Note:
PhoneNumberTypeEnumis a string enum (e.g.MOBILE,LANDLINE,DIRECT,OFFICE,HQ,UNKNOWN).
Note:
leadProvidedincludes numbers users from your organization have entered whereasmoblyProvidedincludes numbers provided by Mobly's data enrichment.
Note:
personalEmailsandprofessionalEmailsare strings of one or more email addresses, typically semicolon-separated (;), e.g."a@example.com;b@example.com". They arenullwhen no addresses are available. Unlike the
Important: The
;separator is not 100% guaranteed. Depending on the upstream data source, the separator may include surrounding whitespace (e.g."a@example.com; b@example.com") or be absent entirely (a single address). When parsing these fields, split on;, trim each entry, and drop empties rather than assuming a strict;-only delimiter — and handle the single-address case where no separator is present. We know this is awkward; a structured, normalized representation is planned for a future API version.
GET /leads/:leadId
Fetch a single lead by ID.
Path Parameters
leadId
string
Lead ID
Example
Response
POST /leads
Create a lead for the authenticated organization.
Body Payload
Response
PATCH /leads/:leadId
Partially update a lead and its associated persona record.
Only the fields included in the request body are modified. All omitted fields remain unchanged.
This endpoint is designed for incomplete or incremental updates to lead data. Sending all persona fields in the body effectively performs a full update of the lead record.
PATCH Semantics
If a field is omitted, it is left unchanged.
If a field is explicitly set to
null, the corresponding value is cleared (set toNULL).
For phoneNumbers:
If
phoneNumbersis omitted, existing phone numbers remain unchanged.If
phoneNumbersisnullor an empty array[], all existing phone numbers are removed.If
phoneNumbersis a non-empty array, it fully replaces all existing phone numbers.
phoneNumbersis not merged. Always send the complete list of phone numbers you want to retain or omit the field.
For remoteId:
If
remoteIdis omitted, existing remote ID's remain unchanged.If
remoteIdis included andidis set tonull, the remote ID for the providedintegrationTypeis cleared.If
remoteIdis included andidhas a value, the remote ID for the providedintegrationTypeis created or updated.
Path Parameters
leadId
string
Lead ID
Body Payload
Response
DELETE /leads/:leadId
Delete a lead for the authenticated organization.
Path Parameters
leadId
string
Lead ID
Response
Lead Activity Events
GET /leadActivityEvents
List lead activity events for the authenticated organization.
Query Parameters
limit– page size (default 20, maximum 50)offset– zero-based page index (default 0)leadId– Optional filter to only return results associated with a specific leadeventType– Optional filter to only return results of a specific type
Response
LeadActivityEventV0Response
Note:
LeadActivityEventTypeis a string enum (e.g.NOTE,CALENDAR,PHONE,SMS,CAMPAIGN_ASSOCIATION,CSV_UPLOAD,MOBLY_API,EMAIL_CONTENT,SMS_CONTENT,OTHER_CONTENT).
GET /leadActivityEvents/:leadActivityEventId
Fetch a single lead activity event by ID.
Path Parameters
leadActivityEventId
string
Lead activity event ID
Example
Response
Activations
GET /activations
List activations for the organization.
Query Parameters
limit– page size (default 20, maximum 50)offset– zero-based page index (default 0)
Response
ActivationV0Response
Note:
ActivationTypeis a string enum (e.g.CONFERENCE,TRADE_SHOW,EVENT,SIDECAR,DINNER_MEAL,HAPPY_HOUR,BREAKFAST,LUNCH,COFFEE_CHAT,RECEPTION,SPEAKING_SESSION,PANEL_DISCUSSION,WORKSHOP,DEMO,SPORTS_GAME,PARTY,BOOTH,GIVEAWAY,NETWORKING_MIXER,ONSITE_OFFICE_VISIT,OTHER).
GET /activations/:activationId
Fetch a single activation by ID.
Path Parameters
activationId
string
Activation ID.
Example
Response
Tag Groups
GET /tagGroups
List tag groups defined for the organization, including their tag options.
Query Parameters
limit– page size (default 20, maximum 50)offset– zero-based page index (default 0)
Response
TagGroupV0Response
Note:
TagGroupStatusis a string enum (e.g.ARCHIVED,DRAFT,PUBLISHED).
GET /tagGroups/:tagGroupId
Fetch a single tag group by ID.
Path Parameters
tagGroupId
string
Tag group ID.
Example
Response
Industry Events
Industry events represent trade shows, conferences, and other industry events tracked globally (not scoped to a single organization). Organizations can bookmark industry events to track interest.
GET /industryEvents
List industry events. Supports filtering by URL or searching by keyword.
Query Parameters
limit– page size (default 20, maximum 50)offset– zero-based page index (default 0)eventUrl– optional; returns only the industry event matching this exact URLq– optional; full-text search across name, venueCity, venueState, venueCountry, description, keywords, industries, and personas
Note: If
eventUrlis provided,qis ignored. If neither is provided, all industry events are returned (paginated).
Response
IndustryEventV0Response
GET /industryEvents/bookmarks
List industry events bookmarked by the authenticated organization.
Response
GET /industryEvents/:industryEventId
Fetch a single industry event by ID. Includes isBookmarked indicating whether the authenticated organization has bookmarked this event.
Path Parameters
industryEventId
string
Industry event ID
Response
POST /industryEvents
Create an industry event. Includes automatic deduplication:
If an industry event with the same
eventUrlalready exists, the existing record is returned (created: false).If no URL match but the
nameandstartDatematch an existing record, the new event is still created butpotentialDuplicatesare returned for the caller to review.
Body Payload
Response
PUT /industryEvents/:industryEventId
Partially update an industry event. Only the fields included in the request body are modified.
Path Parameters
industryEventId
string
Industry event ID
Body Payload
Response
POST /industryEvents/:industryEventId/bookmark
Bookmark an industry event for the authenticated organization.
Path Parameters
industryEventId
string
Industry event ID
Response
DELETE /industryEvents/:industryEventId/bookmark
Remove an industry event from the authenticated organization's bookmarks.
Path Parameters
industryEventId
string
Industry event ID
Response
Error Examples
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
429 Too Many Requests
The response includes:
Retry-After— how many seconds the client should waitX-RateLimit-Reset— when the bucket will refill
Guidelines:
Do not retry immediately
Respect the
Retry-Afterheader`Use exponential backoff for repeated failures
500 Internal Server Error
Last updated
Was this helpful?