Project settings and access tools
- list_project_variables: List the project-level template variables.
- get_consent_settings: Get the project's consent configuration.
- get_frequency_policies: Get the project's frequency cap policy settings.
- get_data_retention_rules: Get the project's event retention windows from Data manager.
- list_project_users: List users with access to a project.
- search_api_triggers: List the API trigger definitions in a project, or fetch one by ID.
- search_integrations: List the integrations configured on a project, or fetch one by ID.
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
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
Response parameters
The tool returns a ProjectVariablesResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | list[ProjectVariable] | The project-level variable definitions. |
error | str | null | Error message if the request failed. |
The ProjectVariable object has the following fields:
| Field | Type | Description |
|---|---|---|
reference | str | The reference key. Use it as {{ project_variable.reference }} in Jinja templates. |
value | any | null | The current value of the variable. |
type | str | null | The data type — string, number, boolean, and so on. |
description | str | null | A 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
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
Response parameters
The tool returns a ConsentSettingsResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | any | null | The project's consent configuration: GDPR mode, consent categories, and per-channel consent settings. The exact shape depends on the project. |
error | str | null | Error 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
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
Response parameters
The tool returns a FrequencyPoliciesResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
policies | list[FrequencyPolicy] | All frequency policies defined for the project, including system policies. |
default_policy_id | str | null | The ID of the default policy applied to campaigns when no specific policy is selected. |
error | str | null | Error message if the request failed. |
The FrequencyPolicy object has the following fields:
| Field | Type | Description |
|---|---|---|
id | str | The policy ID, for example unlimited-policy or smart-newsletter-policy. |
name | str | The display name of the policy. |
system | bool | Whether this is a built-in system policy. |
blocked | bool | Whether this policy is blocked from use by non-admin users. |
access_locks | list[str] | User group IDs for which the policy is locked. Members of those groups can't run campaigns with it. |
locked_for_current_user | bool | Whether the current user is restricted from selecting this policy for campaigns. |
segments | list[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
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
Response parameters
The tool returns a DataRetentionRulesResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
default_retention_enabled | bool | Whether the project-wide default retention is on. It applies to every event type absent from event_overrides. |
default_duration | RetentionDuration | null | The project-wide default retention window. A null value means default retention is off. |
event_overrides | list[EventRetentionRule] | Per-event-type rules that override the project default. An empty list means every event type follows the default. |
error | str | null | Error message if the request failed. |
The RetentionDuration object has the following fields:
| Field | Type | Description |
|---|---|---|
count | int | The size of the retention window, for example 30. |
units | str | The time unit: seconds, minutes, hours, days, weeks, months, quarters, or years. |
The EventRetentionRule object has the following fields:
| Field | Type | Description |
|---|---|---|
event_type | str | The event type this rule applies to, for example purchase or session_start. |
retention_enabled | bool | Whether expiration is active for this event type. |
duration | RetentionDuration | null | The 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
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
Response parameters
The tool returns a ProjectUsersResponse object with the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | list[ProjectUser] | The users with access to this project. |
error | str | null | Error message if the request failed. |
The ProjectUser object has the following fields:
| Field | Type | Description |
|---|---|---|
id | str | The user's ID. |
email | str | null | The user's email address. |
username | str | null | The username. |
first_name | str | null | The user's first name. |
last_name | str | null | The user's last name. |
role | str | null | The 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
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
trigger_id | str | null | No | The 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:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | list[ApiTriggerSummary] | The API trigger summaries. |
error | str | null | Error message if the request failed. |
The ApiTriggerSummary object has the following fields:
| Field | Type | Description |
|---|---|---|
id | str | The API trigger's unique ID. |
name | str | The trigger's display name. |
archived | bool | Whether the trigger has been archived. |
tags | list[str] | User-defined tags. |
created | any | null | Unix timestamp of when the trigger was created. |
created_by_display_name | str | null | Display name of the creator. |
edited | any | null | Unix timestamp of the last edit. |
edited_by_display_name | str | null | Display name of the last editor. |
The ApiTriggerResponse object has the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | ApiTrigger | null | The full API trigger definition. |
error | str | null | Error message if the request failed. |
The ApiTrigger object adds the following fields on top of the summary record:
| Field | Type | Description |
|---|---|---|
event_type | str | null | The event type the trigger fires when it is called. |
properties | list[any] | The property definitions for the trigger payload: name, type, and required flag. |
scenario_ids | list[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
| Name | Type | Required? | Description |
|---|---|---|---|
project_id | str | Yes | The project ID returned by list_projects. |
integration_id | str | null | No | The 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:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | list[IntegrationSummary] | The integrations configured on the project. |
error | str | null | Error message if the request failed. |
The IntegrationResponse object has the following parameters:
| Parameter | Type | Description |
|---|---|---|
success | bool | Whether the request succeeded. |
data | IntegrationDetail | null | The single integration record. |
error | str | null | Error message if the request failed. |
The IntegrationSummary and IntegrationDetail objects both have the following fields:
| Field | Type | Description |
|---|---|---|
id | str | The integration's unique ID. |
name | str | The integration's display name. |
type | str | The integration type or provider identifier, for example mailgun, adform-v2, or twilio. |
Updated 3 days ago

