Project settings and access tools

list_project_variables

Lists every project-level variable. Project variables are global key-value pairs that you can reference as {{ project_variable.reference }} substitutions inside Jinja templates across all campaigns — for example, brand name, support email, or base URL.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.

Response parameters

The tool returns a ProjectVariablesResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[ProjectVariable]The project-level variable definitions.
errorstr | nullError message if the request failed.

The ProjectVariable object has the following fields:

FieldTypeDescription
referencestrThe reference key. Use it as {{ project_variable.reference }} in Jinja templates.
valueany | nullThe current value of the variable.
typestr | nullThe data type — string, number, boolean, and so on.
descriptionstr | nullA human-readable description of what the variable represents.

get_consent_settings

Returns the project's consent configuration: GDPR mode, consent category definitions, and per-channel consent settings. Consent categories decide which campaigns a customer can receive based on their consent state.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.

Response parameters

The tool returns a ConsentSettingsResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataany | nullThe project's consent configuration: GDPR mode, consent categories, and per-channel consent settings. The exact shape depends on the project.
errorstr | nullError message if the request failed.

get_frequency_policies

Returns the frequency cap policy settings for a project. Frequency policies limit how often a customer can receive campaign messages within a time window. The response includes every policy, built-in system policies among them, along with the ID of the project's default policy.

Each policy holds one or more customer segments, and each segment carries its own message rate limits.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.

Response parameters

The tool returns a FrequencyPoliciesResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
policieslist[FrequencyPolicy]All frequency policies defined for the project, including system policies.
default_policy_idstr | nullThe ID of the default policy applied to campaigns when no specific policy is selected.
errorstr | nullError message if the request failed.

The FrequencyPolicy object has the following fields:

FieldTypeDescription
idstrThe policy ID, for example unlimited-policy or smart-newsletter-policy.
namestrThe display name of the policy.
systemboolWhether this is a built-in system policy.
blockedboolWhether this policy is blocked from use by non-admin users.
access_lockslist[str]User group IDs for which the policy is locked. Members of those groups can't run campaigns with it.
locked_for_current_userboolWhether the current user is restricted from selecting this policy for campaigns.
segmentslist[FrequencyPolicySegment]An ordered list of customer segments, each with its own frequency rules. The last segment is always a catch-all.

Each FrequencyPolicySegment has an optional id, a name, an optional customer_filter (opaque filter conditions, where the last segment is a catch-all with an empty filter), and rules, a list of FrequencyPolicyRule. Each FrequencyPolicyRule has a limit (the maximum messages allowed, where 0 suppresses all) and a duration, a FrequencyPolicyDuration with count and units fields for the time window.

get_data_retention_rules

Returns the event retention rules a project has set in Data manager: the project-wide default retention window, plus any per-event-type overrides. Retention decides how long the platform keeps event data before it expires and is deleted.

Check this first when analytics numbers drop or historical data goes missing without an obvious cause. A metric that loses its long tail is often a retention window expiring events, not a tracking problem. Each window is a count and units pair, for example 365 days. Only the top-level per-event-type setting is exposed here, so filter-based subsets configured in Data manager aren't included.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.

Response parameters

The tool returns a DataRetentionRulesResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
default_retention_enabledboolWhether the project-wide default retention is on. It applies to every event type absent from event_overrides.
default_durationRetentionDuration | nullThe project-wide default retention window. A null value means default retention is off.
event_overrideslist[EventRetentionRule]Per-event-type rules that override the project default. An empty list means every event type follows the default.
errorstr | nullError message if the request failed.

The RetentionDuration object has the following fields:

FieldTypeDescription
countintThe size of the retention window, for example 30.
unitsstrThe time unit: seconds, minutes, hours, days, weeks, months, quarters, or years.

The EventRetentionRule object has the following fields:

FieldTypeDescription
event_typestrThe event type this rule applies to, for example purchase or session_start.
retention_enabledboolWhether expiration is active for this event type.
durationRetentionDuration | nullThe configured window. A null value means retention is off for this event type.

list_project_users

Lists every user with access to a project, including their email, name, username, and role in this project.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.

Response parameters

The tool returns a ProjectUsersResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[ProjectUser]The users with access to this project.
errorstr | nullError message if the request failed.

The ProjectUser object has the following fields:

FieldTypeDescription
idstrThe user's ID.
emailstr | nullThe user's email address.
usernamestr | nullThe username.
first_namestr | nullThe user's first name.
last_namestr | nullThe user's last name.
rolestr | nullThe user's role in this project, for example admin, editor, or viewer.

search_api_triggers

Searches the API trigger definitions in a project, or fetches one by ID. API triggers let external systems fire a custom event into the Marketing platform with an HTTP call, which can then enter customers into scenarios. Omit trigger_id to list all API triggers — you get summary records: name, tags, archived flag, and metadata. Pass trigger_id to fetch the full definition of a single trigger, including the event type it fires, the payload property schema, and the scenarios that listen to it.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
trigger_idstr | nullNoThe API trigger ID for direct lookup. Omit to list all; provide to fetch one.

Response parameters

The tool returns an ApiTriggersResponse when trigger_id is omitted, or an ApiTriggerResponse when it's provided.

The ApiTriggersResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[ApiTriggerSummary]The API trigger summaries.
errorstr | nullError message if the request failed.

The ApiTriggerSummary object has the following fields:

FieldTypeDescription
idstrThe API trigger's unique ID.
namestrThe trigger's display name.
archivedboolWhether the trigger has been archived.
tagslist[str]User-defined tags.
createdany | nullUnix timestamp of when the trigger was created.
created_by_display_namestr | nullDisplay name of the creator.
editedany | nullUnix timestamp of the last edit.
edited_by_display_namestr | nullDisplay name of the last editor.

The ApiTriggerResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataApiTrigger | nullThe full API trigger definition.
errorstr | nullError message if the request failed.

The ApiTrigger object adds the following fields on top of the summary record:

FieldTypeDescription
event_typestr | nullThe event type the trigger fires when it is called.
propertieslist[any]The property definitions for the trigger payload: name, type, and required flag.
scenario_idslist[str]IDs of the scenarios that use this API trigger as their entry point.

search_integrations

Searches the integrations configured on a project, or fetches one by ID. Integrations connect external systems to a project for imports, exports, and channel delivery: ad platforms, email and SMS providers, storage, SQL databases, and authentication services. Omit integration_id to list everything, merged from the Marketing integrations API and the channel API. An ID present in both is deduplicated, and the channel record wins, because migrated email integrations live in the channel API. Pass integration_id to fetch a single record.

Responses carry id, name, and type only. Configuration, credentials, and usage references are stripped before anything is cached, so this tool can't be used to read a secret back out of a project.

Never guess a project_id or an integration_id. Take the project from list_projects, list the integrations first, then confirm which one you want before you pass an ID, even when only one result comes back.

List mode needs both upstream APIs to answer, and a failure on either one fails the whole request. Detail mode is more forgiving: a 404 from one API means "not in this store" and the other is still tried, though any other upstream failure fails the request. This tool is in alpha, so its API or response shape may change.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
integration_idstr | nullNoThe integration ID from an earlier list call. Omit to list all; provide to fetch one.

Response parameters

The tool returns an IntegrationsResponse when integration_id is omitted, or an IntegrationResponse when it's provided.

The IntegrationsResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[IntegrationSummary]The integrations configured on the project.
errorstr | nullError message if the request failed.

The IntegrationResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataIntegrationDetail | nullThe single integration record.
errorstr | nullError message if the request failed.

The IntegrationSummary and IntegrationDetail objects both have the following fields:

FieldTypeDescription
idstrThe integration's unique ID.
namestrThe integration's display name.
typestrThe integration type or provider identifier, for example mailgun, adform-v2, or twilio.


Did this page help you?

© Bloomreach, Inc. All rights reserved.