Introduction
The MediaOS API is a REST API that returns JSON. It provides access to your account's CRM data, inventory, orders, and billing records.
- All API responses are UTF-8 encoded JSON.
- Dates use the format
YYYY-MM-DD HH:MM:SS. - Boolean fields accept
true/falseor1/0. - Endpoints that list resources support pagination via
per_pageandpageparameters.
Authentication
The API uses HTTP Basic Authentication. Your API key acts as the username and your API password as the password.
HTTP Basic Auth
Pass your API key as the username and your API password as the password in the Authorization header.
Query Parameter (Alternative)
You may alternatively pass your API key as a query string parameter named apiKey.
Rate Limits
API usage is limited per account to prevent abuse and ensure service quality for all users.
| Scope | Limit | Window |
|---|---|---|
| Per Account | 5,000 requests | Rolling 24-hour window |
429 Too Many Requests response. Implement exponential backoff in your integration to handle this gracefully. Rate limit counters reset at the start of each 24-hour window.Pagination & Sorting
List endpoints support server-side pagination and sorting via query parameters.
| Parameter | Type | Default | Description |
|---|---|---|---|
per_page |
integer | 25 |
Number of records to return per page. Maximum value is 100. |
page |
integer | 1 |
Page number to return. Starts at 1. |
sort_by |
string | Varies | Field to sort results by. Accepted values vary per endpoint. |
sort_order |
string | asc |
Sort direction. Accepted values: asc or desc. |
All paginated responses include a top-level count field with the total number of matching records:
Error Codes
The API uses standard HTTP status codes to indicate success or failure.
Error responses include a JSON body with a human-readable message:
Account
Retrieve top-level details about your MediaOS account.
Returns details for the authenticated account, including name, plan, and configuration settings.
Parameters
None.
Example Response
Advertisers
Advertisers are the companies or individuals that purchase advertising. Full CRUD operations are supported.
Returns a single advertiser record by its numeric ID.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Advertiser ID |
Example Response
Returns a paginated list of advertisers. All parameters are optional and can be combined for filtering.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by exact advertiser ID |
name | string | Filter by name (partial match) |
is_lead | boolean | Filter by lead status |
active | boolean | Filter by active status |
owned_by_user_id | integer | Filter by owning sales rep |
created_by_user_id | integer | Filter by creating user |
date_created_before | datetime | Filter: created before this date (YYYY-MM-DD HH:MM:SS) |
date_created_after | datetime | Filter: created after this date |
sort_by | string | Sort field |
sort_order | string | asc or desc |
per_page | integer | Results per page (default 25, max 100) |
page | integer | Page number (default 1) |
Example Response
Creates a new advertiser record. Send parameters as JSON in the request body or as form fields.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Required | Advertiser display name |
created_by_user_id | integer | Optional | User who created the record |
owned_by_user_id | integer | Optional | Sales rep / owner |
is_lead | boolean | Optional | Mark as a lead (not yet a customer) |
sales_lock | boolean | Optional | Lock record from other sales reps |
description | string | Optional | Free-text description / notes |
general_ledger_account_code | string | Optional | GL account code for accounting integrations |
Example Request
Example Response
Updates an existing advertiser. Only the fields provided will be updated (partial update).
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Advertiser ID to update |
Body Parameters
Same fields as Create — all optional. Only supplied fields are updated.
Agencies
Agencies represent advertising agencies that act on behalf of advertisers. Full CRUD is supported.
Returns a single agency record by its numeric ID.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Agency ID |
Example Response
Returns a paginated list of agencies.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by agency ID |
name | string | Filter by name (partial match) |
sort_by | string | Sort field |
sort_order | string | asc or desc |
per_page | integer | Default 25, max 100 |
page | integer | Default 1 |
Example Response
Creates a new agency record.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Required | Agency name |
created_by_user_id | integer | Optional | Creating user ID |
owned_by_user_id | integer | Optional | Owning sales rep ID |
discount_percent | decimal | Optional | Default agency discount (e.g. 15.00 for 15%) |
Example Response
Updates an existing agency. All body fields are optional; only provided fields are changed.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Agency ID to update |
Contacts
Contacts are individual people associated with an advertiser or agency. Full CRUD is supported. Responses include convenience fields primary_email, primary_phone, and primary_address — the resolved primary ContactData / Address objects (or null if not set).
advertiser_id and agency_id will result in an error.Returns a single contact by ID.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Contact ID |
Example Response
Returns a paginated list of contacts matching the given filters.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by contact ID |
name | string | Filter by full name (partial match) |
advertiser_id | integer | Filter by linked advertiser |
agency_id | integer | Filter by linked agency |
owned_by_user_id | integer | Filter by owning sales rep |
created_by_user_id | integer | Filter by creating user |
is_lead | boolean | Filter by lead status |
active | boolean | Filter by active status |
date_created_before | datetime | Created before date |
date_created_after | datetime | Created after date |
sort_by | string | id, first_name, last_name, title |
sort_order | string | asc or desc |
per_page | integer | Default 25, max 100 |
page | integer | Default 1 |
Example Response
Creates a new contact. The contact must be linked to either an advertiser or an agency (not both).
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
advertiser_id | integer | Optional* | Link to an advertiser |
agency_id | integer | Optional* | Link to an agency (use one or the other) |
title | string | Optional | Job title |
first_name | string | Optional | First name |
last_name | string | Optional | Last name |
owned_by_user_id | integer | Optional | Owning sales rep |
Example Response
Updates an existing contact. All body fields are optional.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Contact ID |
Contact Data
Contact data stores typed attributes for contacts, advertisers, or agencies — such as phone numbers, email addresses, and websites.
Returns the full list of available contact data types (e.g., Phone, Email, Website).
Example Response
Returns a single contact data record by ID.
Example Response
Returns contact data records. If no filters are supplied, the most recent 100 records are returned.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
advertiser_id | integer | Filter by advertiser |
contact_id | integer | Filter by contact |
agency_id | integer | Filter by agency |
Example Response
Creates a new contact data record. The record must be linked to exactly one of: advertiser_id, agency_id, or contact_id.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
contact_data_type_id | integer | Required | The type of data (from /contactDataTypes/) |
value | string | Required | The data value (e.g., phone number) |
advertiser_id | integer | Required* | Link to an advertiser |
agency_id | integer | Required* | Link to an agency |
contact_id | integer | Required* | Link to a contact (one of the three is required) |
Example Response
Updates the value of an existing contact data record.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
value | string | Required | Updated value |
Addresses
Postal addresses for advertisers, agencies, or contacts. Full CRUD is supported.
Returns a single address by ID.
Example Response
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by address ID |
advertiser_id | integer | Filter by advertiser |
agency_id | integer | Filter by agency |
contact_id | integer | Filter by contact |
Example Response
Creates a new address. Must be assigned to one of: advertiser, agency, or contact.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
country_code | string | Required | ISO country code (e.g. US) |
advertiser_id | integer | Optional* | Link to advertiser |
agency_id | integer | Optional* | Link to agency |
contact_id | integer | Optional* | Link to contact (one of three required) |
line1 | string | Optional | Address line 1 |
line2 | string | Optional | Address line 2 |
line3 | string | Optional | Address line 3 |
line4 | string | Optional | Address line 4 |
city | string | Optional | City |
state | string | Optional | State / Province |
postal_code | string | Optional | ZIP / Postal code |
Example Response
Updates an existing address. All fields are optional.
Users
Retrieve user records for members of your MediaOS account. Users are read-only via the API.
Returns a single user record by ID.
Example Response
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by user ID |
first_name | string | Filter by first name |
last_name | string | Filter by last name |
email | string | Filter by email address |
active | boolean | Filter by active status |
is_administrator | boolean | Filter by admin role |
is_sales | boolean | Filter by sales role |
is_production | boolean | Filter by production role |
is_accounting | boolean | Filter by accounting role |
sort_by | string | id, firstName, lastName, email |
sort_order | string | asc or desc |
per_page | integer | Default 25, max 100 |
page | integer | Default 1 |
Example Response
Products
Products represent the publications, websites, or media channels in your account. Read-only.
Returns a single product by ID.
Example Response
Returns all products in the account. No filters required.
Example Response
Ad Sizes
Ad sizes define the available creative dimensions for a product. Read-only.
Returns a single ad size record by ID.
Example Response
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
product_id | integer | Required | Filter by product |
active | boolean | Optional | Filter by active status |
Example Response
Ad Rates
Ad rates define the pricing for ad sizes within a product. Read-only.
Returns a single ad rate record by ID.
Example Response
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
product_id | integer | Required | Filter by product |
ad_size_id | integer | Optional | Filter by ad size |
active | boolean | Optional | Filter by active status |
Example Response
Issues
Issues are publication dates / editions for a product (e.g., January 2025 magazine issue). Read-only.
Returns a single issue by ID.
Example Response
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
product_id | integer | Required | Product to list issues for |
Example Response
Locations
Locations are geographic zones used for targeting ad insertions. Read-only.
Returns a single location record by ID.
Example Response
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
product_id | integer | Required | Product to list locations for |
Example Response
Sections
Sections are content areas within a product (e.g., "Back Cover", "Page 4"). Read-only.
Returns a single section record by ID.
Example Response
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
product_id | integer | Required | Product to list sections for |
Example Response
Contracts
Contracts represent advertising orders / sales agreements. Full CRUD and status-transition actions are supported.
Returns a single contract record by ID.
Example Response
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by contract ID |
advertiser_id | integer | Filter by advertiser |
date_created_before | datetime | Created before date |
date_created_after | datetime | Created after date |
date_sold_before | datetime | Sold before date |
date_sold_after | datetime | Sold after date |
amount_from | decimal | Minimum contract total |
amount_to | decimal | Maximum contract total |
status | string | Filter by contract status |
is_proposal | boolean | Filter proposals vs. signed contracts |
sort_by | string | id, date_created, date_sold, total, status |
sort_order | string | asc or desc |
per_page | integer | Default 25, max 100 |
page | integer | Default 1 |
Example Response
Creates a new contract (proposal). The new contract starts in open status.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
advertiser_id | integer | Required | Advertiser this contract belongs to |
agency_id | integer | Optional | Agency acting on behalf of advertiser |
sold_by_user_id | integer | Optional | Sales rep responsible for this contract |
notes | string | Optional | Internal notes |
insertion_order_number | string | Optional | External IO number |
down_payment_amount | decimal | Optional | Required down payment amount |
term_id | integer | Optional | Payment term |
percent_discount | decimal | Optional | Discount percentage applied to total |
tax_rate_id | integer | Optional | Tax rate to apply |
business_unit_id | integer | Optional | Business unit assignment |
Example Request
Example Response
Updates an existing contract. Won contracts cannot be modified via this endpoint — use the action endpoints instead.
400. Use setToLost or setToOpen to change status.Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Contract ID to update |
Body Parameters
Same fields as Create — all optional except advertiser_id. Only supplied fields are updated.
Marks a contract as Won (sold). Enforces all business rules: sales lock, pending forecast items, DocuSign requirements, and down payment checks.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
sold_date | date | Optional | Date contract was sold (defaults to today) |
Example Request
Marks a contract as Lost. Cannot be applied to Won (sold) contracts or forecast contracts.
Moves a Lost contract back to Open (Proposal) status. Only Lost→Open transitions are allowed. Won contracts cannot be moved back to Open.
Approves a discount that exceeds the account threshold. The calling user must be an admin or sales manager.
Contract Line Items
Individual line items within a contract, describing adjustments such as discounts and fees. Full CRUD is supported on non-Won contracts.
Returns a single contract line item by ID.
Example Response
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
contract_id | integer | Required | Contract to retrieve line items for |
Example Response
Creates a new line item on a contract. Cannot add to a Won contract.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
contract_id | integer | Required | Contract this line item belongs to |
contract_line_item_type_id | integer | Required | Type of line item |
amount | decimal | Required | Amount (positive for additions, negative for discounts) |
notes | string | Optional | Description or notes |
taxable | boolean | Optional | Whether this line item is taxable |
apply_to_insertion_id | integer | Optional | Apply only to a specific insertion |
Example Response
Updates an existing line item. Cannot modify line items on a Won contract.
Body Parameters
Same fields as Create. Only supplied fields are updated.
Deletes a contract line item. Cannot delete from a Won contract. Returns 204 No Content on success.
Returns a single contract line item type by ID.
Example Response
Returns the full list of contract line item types available in the account.
Example Response
Insertions
Ad insertions represent a single placement of an advertisement — linking a contract, product, issue, section, and location. Full CRUD is supported on non-Won contracts.
Returns a single insertion record by ID.
Example Response
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by insertion ID |
contract_id | integer | Filter by contract |
product_id | integer | Filter by product |
advertiser_id | integer | Filter by advertiser |
section_id | integer | Filter by section |
issue_id | integer | Filter by issue |
location_id | integer | Filter by location |
sort_by | string | id, contract_id, product_id, advertiser_id, section_id, issue_id, location_id |
sort_order | string | asc or desc |
per_page | integer | Default 25, max 100 |
page | integer | Default 1 |
Example Response
Creates a new insertion on a contract. The contract must not be Won.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
contract_id | integer | Required | Contract this insertion belongs to |
product_id | integer | Required | Publication / product |
ad_size_id | integer | Optional | Ad size |
ad_rate_id | integer | Optional | Ad rate |
issue_id | integer | Optional | Issue |
section_id | integer | Optional | Section |
location_id | integer | Optional | Location |
ad_id | integer | Optional | Associated ad creative |
quantity | integer | Optional | Number of insertions |
discount | decimal | Optional | Discount amount |
placement | string | Optional | Placement notes |
description | string | Optional | Description |
deliver_date | date | Optional | Delivery date (YYYY-MM-DD) |
taxable | boolean | Optional | Whether this insertion is taxable |
Example Response
Updates an existing insertion. The parent contract must not be Won.
Body Parameters
Same fields as Create. Only supplied fields are updated.
Deletes an insertion. Cannot delete if the insertion has already been invoiced. Returns 204 No Content on success.
Invoices
Invoices track billing records generated from contracts. Supports search, generation from Won contracts, deletion, and write-off actions.
Returns a single invoice by ID.
Example Response
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by invoice ID |
contract_id | integer | Filter by contract |
advertiser_id | integer | Filter by advertiser |
date_created_before | datetime | Created before date |
date_created_after | datetime | Created after date |
date_due_before | datetime | Due before date |
date_due_after | datetime | Due after date |
amount_from | decimal | Minimum invoice total |
amount_to | decimal | Maximum invoice total |
sort_by | string | id, date_created, date_due, total |
sort_order | string | asc or desc |
per_page | integer | Default 25, max 100 |
page | integer | Default 1 |
Example Response
Generates a new invoice for a Won contract. The contract must have a soldDate set. All insertion_ids must belong to the specified contract.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
contract_id | integer | Required | ID of the Won contract to invoice |
insertion_ids | integer[] | Required | Array of insertion IDs to include on this invoice |
create_date | date | Optional | Invoice creation date (defaults to today) |
due_date | date | Optional | Invoice due date |
Example Request
Example Response
Deletes an invoice. Cannot delete if the invoice has any applied payments — unapply all payments first. Returns 204 No Content on success.
Writes off the remaining balance on an invoice. Requirements:
- Invoice must be editable (
canEdit()) - Invoice must not be a credit memo
- Invoice must have a positive remaining balance
Invoice Line Items
Individual charges on an invoice. Read-only.
Returns a single invoice line item by ID.
Example Response
Returns all invoice line item type definitions for the account.
Example Response
Returns a single invoice line item type by ID.
Example Response
Payments
Payments record money received against invoices. Supports search and creation.
Returns a single payment record by ID.
Example Response
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by payment ID |
entered_by_user_id | integer | Filter by user who entered the payment |
date_created_before | datetime | Created before date |
date_created_after | datetime | Created after date |
amount_from | decimal | Minimum payment amount |
amount_to | decimal | Maximum payment amount |
contract_id | integer | Filter by contract |
advertiser_id | integer | Filter by advertiser |
sort_by | string | id, date_created, amount |
sort_order | string | asc or desc |
per_page | integer | Default 25, max 100 |
page | integer | Default 1 |
Example Response
Records a new payment against an invoice.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
invoice_id | integer | Required | Invoice this payment applies to |
amount | decimal | Required | Payment amount |
notes | string | Required | Internal notes about the payment |
payment_type | string | Required | Payment method (e.g. check, credit_card, wire) |
payment_date | datetime | Required | Date the payment was received (YYYY-MM-DD HH:MM:SS) |
Example Request
Example Response
Deletes a payment and unapplies it from all invoices. Requirements:
- Calling user must be an admin, sales manager, or accounting
- Payment must not fall within an accounting lock date period
Returns 204 No Content on success.
Ad Requests
Ad requests track incoming creative submission requests tied to insertions. Full CRUD and cancel action are supported.
Returns a single ad request record by ID.
Example Response
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by ad request ID |
sort_by | string | id |
sort_order | string | asc or desc |
per_page | integer | Default 25, max 100 |
page | integer | Default 1 |
Example Response
Creates a new ad request. The new request starts in pending status.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
advertiser_id | integer | Required | Advertiser this request belongs to |
requested_by_user_id | integer | Optional | User who created the request (defaults to authenticated user) |
assigned_to_user_id | integer | Optional | Designer or user assigned to fulfill the request |
insertion_id | integer | Optional | Insertion this request is associated with |
ad_id | integer | Optional | Ad creative to use |
details | string | Optional | Instructions or notes for the request |
due_date | date | Optional | Due date (YYYY-MM-DD) |
Example Response
Updates an existing ad request. Only supplied fields are updated.
Body Parameters
Same fields as Create. All fields optional except advertiser_id.
Cancels an ad request. Cannot cancel an already-canceled request.
Deletes an ad request. Cannot delete if the request has proofs or a designer is assigned. Returns 204 No Content on success.
Ads
Ads represent the creative assets and metadata for delivered advertisements. Full CRUD is supported, including uploading creative files (image, PDF, or video) via URL or base64.
Returns a single ad record including creative metadata and delivery status.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Ad ID |
Example Response
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by ad ID |
advertiser_id | integer | Filter by advertiser |
name | string | Filter by name (partial match) |
active | boolean | Filter active (not deleted) ads |
sort_by | string | id, name, date_created |
sort_order | string | asc or desc |
per_page | integer | Default 25, max 100 |
page | integer | Default 1 |
Example Response
Creates a new ad metadata record without a creative file. To create an ad with a creative file in a single call, use PUT /ads/upload.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
advertiser_id | integer | Required | Advertiser this ad belongs to |
name | string | Optional | Ad name / title |
text | string | Optional | Ad copy or description |
Example Response
Creates a new ad and uploads the creative file in a single call. Supply the file either as a publicly reachable URL that the server fetches (file_url) or as base64-encoded bytes (file_base64). Raster image dimensions (jpg, jpeg, png, gif) are populated automatically. If the upload fails the ad is rolled back (archived).
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
advertiser_id | integer | Required | Advertiser this ad belongs to |
file_url | string | Required* | Publicly reachable URL of the creative file. Server fetches and stores it. |
file_base64 | string | Required* | Base64-encoded creative file bytes. One of file_url or file_base64 is required. |
file_name | string | Optional | Filename with extension (e.g. banner.jpg). Required when using file_base64; inferred from the URL otherwise. |
mime_type | string | Optional | MIME type of the file (e.g. image/jpeg, application/pdf, video/mp4). |
name | string | Optional | Ad name / title |
text | string | Optional | Ad copy or description |
Example Request
Example Response
Returns 201 Created on success.
Uploads a creative file and attaches it to an existing ad, replacing any current creative. Supply the file via file_url or file_base64. Raster image dimensions are populated automatically. Archived ads (soft-deleted) cannot be modified.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
file_url | string | Required* | Publicly reachable URL of the creative file. |
file_base64 | string | Required* | Base64-encoded creative file bytes. One of file_url or file_base64 is required. |
file_name | string | Optional | Filename with extension. Required when using file_base64. |
mime_type | string | Optional | MIME type of the file. |
Example Request
Updates an existing ad's metadata. Only supplied fields are updated.
Body Parameters
Same fields as Create. Only supplied fields are updated.
Assigns the ad to the specified insertion. If the product supports multiple ads or is DFP-configured, the ad is added to adToInsertions; otherwise the insertion's primary adID is set. Child ads (any ad whose parentAdID equals this ad's adID) are assigned as well. Archived ads cannot be assigned.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
insertion_id | integer | Required | The ad insertion to assign this ad to |
Example Request
Returns the updated insertion.
Removes the ad (and any child ads) from the specified insertion. If the ad was the insertion's primary adID, that reference is cleared.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
insertion_id | integer | Required | The ad insertion to unassign this ad from |
Example Request
Memberships
Memberships track subscription or membership records associated with contacts. Includes member authentication, password management, and read-only membership type and level lookups.
Checks whether a given email address has an active membership record.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Required | Email address to verify |
Example Response
Returns a single membership record by ID.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Membership ID |
Example Response
Authenticates a member by email combined with either their password or the zip code of one of their addresses (first 5 digits). Returns the contact record, the audience filter IDs the contact currently belongs to (from the memberAudienceFilterCache table), and their active (non-expired) memberships. Returns 401 when no member matches the supplied credentials.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Required | The member's email address |
password | string | Optional* | The member's password. Required if zip is not supplied. |
zip | string | Optional* | Zip code of one of the member's addresses. Required if password is not supplied. |
Example Response
Sends the member an email containing a secure one-time login link for the given website — the same mechanism as the member portal's instant login. After clicking the link the member is logged in and can set a new password. A website_id is required so the email is branded and the member is redirected to the correct website.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Required | The member's email address |
website_id | integer | Required | The website used to brand the email and redirect the member |
url | string | Optional | URL the member is redirected to after clicking the link. Defaults to the website's URL. |
Example Response
Sets the password for a member identified by contact_id or email. When identified by email, the password is applied to every non-deleted member contact matching that email.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
password | string | Required | The new password (minimum 6 characters) |
contact_id | integer | Optional* | The member's contact ID. Required if email is not supplied. |
email | string | Optional* | The member's email. Required if contact_id is not supplied. |
Example Response
Read-only list of membership types.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
membership_tier_type_id | integer | Optional | Filter by membership tier type ID |
Example Response
Returns a single membership type record by ID. Read-only.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Membership type ID |
Read-only list of membership tier levels, grouped by tier type.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tier_type_id | integer | Optional | Filter by membership tier type ID |
Example Response
Returns a single membership tier level by ID. Read-only.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Required | Membership tier level ID |
Example Response
Audiences
Audiences are saved member segments built from filter criteria. Use these endpoints to list configured audiences and look up a single audience. Contact-to-audience membership for an authenticated member is returned by POST /memberships/authenticate.
Returns a single audience filter by ID.
Example Response
Returns saved member audience filters. By default only active (non-deleted) audiences are returned.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | integer | Filter by audience ID |
saved_by_user_id | integer | Filter by the user who saved the audience |
name | string | Case-insensitive contains-match on audience name |
status | string | Filter by audience status |
include_deleted | boolean | Include soft-deleted audiences. Defaults to false. |
per_page | integer | Default 25, max 100 |
page | integer | Default 1 |
Example Response
Touch Points
Touch points log sales activity — phone calls, emails, SMS messages, appointments, and follow-ups — against advertisers, agencies, and contacts. Creating a touch point updates the advertiser's last-activity date.
Returns a single touch point record by ID.
Example Response
Logs a new touch point. At least one of advertiser_id, agency_id, or contact_id is required. When only contact_id is provided, the advertiser or agency is inherited from the contact.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Required | Appointment, Email, Follow-up, Phone, or SMS |
advertiser_id | integer | — | Advertiser the activity is logged against |
agency_id | integer | — | Agency the activity is logged against |
contact_id | integer | — | Contact involved in the activity |
subject | string | — | Short summary of the activity |
body | string | — | Full notes / details |
date | datetime | — | When the activity occurred. Defaults to now. |
sent_by_user_id | integer | — | User who performed the activity. Defaults to the API user. |
call_result | string | — | Outcome of a phone call (e.g. Connected, Voicemail) |
call_direction | string | — | Inbound or Outbound |
call_duration | integer | — | Call duration in seconds |
appointment_duration | integer | — | Appointment duration in minutes |
Example Request
Example Response
Returns 201 Created on success. Creating a touch point clears the advertiser's fair-game flag and updates its last-activity date.
Tasks & Notes
Tasks and notes are post board items attached to any object — advertisers, agencies, contacts, contracts, invoices, and more. Tasks are assignable with due dates and trigger notifications; notes are simple annotations.
Returns a single post board item (task or note) by ID.
Example Response
Creates a task attached to an object. Provide object_type and object_id, or use advertiser_id as a shortcut. The assigned user is notified.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
message | string | Required | The body of the task |
subject | string | — | Short task title |
object_type | string | — | Object type the task is attached to (e.g. advertisers, agencies, contacts, contracts, invoices) |
object_id | integer | — | ID of the attached object |
advertiser_id | integer | — | Shortcut for object_type=advertisers and object_id |
assigned_to_user_id | integer | — | User the task is assigned to. Defaults to the API user. |
due_date | date | — | Due date. Defaults to today. |
start_date | date | — | Start date |
Example Request
Example Response
Returns 201 Created on success. The assigned user receives a task-assigned notification.
Creates a note attached to an object. Provide object_type and object_id, or use advertiser_id as a shortcut. Notes do not trigger notifications.
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
message | string | Required | The body of the note |
subject | string | — | Short note title |
object_type | string | — | Object type the note is attached to (e.g. advertisers, agencies, contacts, contracts, invoices) |
object_id | integer | — | ID of the attached object |
advertiser_id | integer | — | Shortcut for object_type=advertisers and object_id |
Example Request
Example Response
Returns 201 Created on success.