Module airbyte_agent_sdk.connectors.facebook_marketing
Facebook-Marketing connector for Airbyte SDK.
Auto-generated from OpenAPI specification.
Sub-modules
- airbyte_agent_sdk.connectors.facebook_marketing.connector
- airbyte_agent_sdk.connectors.facebook_marketing.connector_model
- airbyte_agent_sdk.connectors.facebook_marketing.models
- airbyte_agent_sdk.connectors.facebook_marketing.types
Classes
AdAccountSearchData(**data: Any)
: Search result data for ad_account entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_id: str | None
: Ad account ID (numeric)
account_status: int | None
: Account status
amount_spent: str | None
: Total amount spent
balance: str | None
: Current balance of the ad account
business_name: str | None
: Business name
created_time: str | None
: Account creation time
currency: str | None
: Currency used by the ad account
id: str | None
: Ad account ID
model_config
: The type of the None singleton.
name: str | None
: Ad account name
spend_cap: str | None
: Spend cap
timezone_name: str | None
: Timezone name
AdAccountsSearchData(**data: Any)
: Search result data for ad_accounts entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_id: str | None
: Ad account ID (numeric)
account_status: int | None
: Account status
amount_spent: str | None
: Total amount spent
balance: str | None
: Current balance of the ad account
business_name: str | None
: Business name
created_time: str | None
: Account creation time
currency: str | None
: Currency used by the ad account
id: str | None
: Ad account ID
model_config
: The type of the None singleton.
name: str | None
: Ad account name
spend_cap: str | None
: Spend cap
timezone_name: str | None
: Timezone name
AdCreativesSearchData(**data: Any)
: Search result data for ad_creatives entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_id: str | None
: Ad account ID
body: str | None
: Ad body text
call_to_action_type: str | None
: Call to action type
id: str | None
: Ad Creative ID
image_url: str | None
: Image URL
link_url: str | None
: Link URL
model_config
: The type of the None singleton.
name: str | None
: Ad Creative name
status: str | None
: Creative status
thumbnail_url: str | None
: Thumbnail URL
title: str | None
: Ad title
AdSetsSearchData(**data: Any)
: Search result data for ad_sets entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_id: str | None
: Ad account ID
bid_amount: float | None
: Bid amount
bid_strategy: str | None
: Bid strategy
budget_remaining: float | None
: Remaining budget
campaign_id: str | None
: Parent campaign ID
created_time: str | None
: Ad set creation time
daily_budget: float | None
: Daily budget
effective_status: str | None
: Effective status
end_time: str | None
: Ad set end time
id: str | None
: Ad Set ID
lifetime_budget: float | None
: Lifetime budget
model_config
: The type of the None singleton.
name: str | None
: Ad Set name
start_time: str | None
: Ad set start time
updated_time: str | None
: Last update time
AdsInsightsSearchData(**data: Any)
: Search result data for ads_insights entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_id: str | None
: Ad account ID
account_name: str | None
: Ad account name
action_values: list[typing.Any] | None
: Action values taken on the ad
actions: list[typing.Any] | None
: Total number of actions taken
ad_id: str | None
: Ad ID
ad_name: str | None
: Ad name
adset_id: str | None
: Ad set ID
adset_name: str | None
: Ad set name
campaign_id: str | None
: Campaign ID
campaign_name: str | None
: Campaign name
clicks: int | None
: Number of clicks
cpc: float | None
: Cost per click
cpm: float | None
: Cost per 1000 impressions
ctr: float | None
: Click-through rate
date_start: str | None
: Start date of the reporting period
date_stop: str | None
: End date of the reporting period
impressions: int | None
: Number of impressions
model_config
: The type of the None singleton.
reach: int | None
: Number of unique people reached
spend: float | None
: Amount spent
AdsSearchData(**data: Any)
: Search result data for ads entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_id: str | None
: Ad account ID
adset_id: str | None
: Parent ad set ID
campaign_id: str | None
: Parent campaign ID
created_time: str | None
: Ad creation time
effective_status: str | None
: Effective status
id: str | None
: Ad ID
model_config
: The type of the None singleton.
name: str | None
: Ad name
status: str | None
: Ad status
updated_time: str | None
: Last update time
AirbyteAuthConfig(**data: Any)
: Authentication configuration for Airbyte hosted mode execution.
Pass this to the connector's auth_config parameter to use hosted mode,
where API credentials are stored securely in Airbyte Cloud.
For hosted mode execution, provide client credentials with either:
connector_id: Direct connector/source ID (skips lookup)workspace_name: Workspace name for connector lookup
Attributes: workspace_name: Workspace name for hosted mode connector lookup organization_id: Optional Airbyte organization ID for multi-org selection airbyte_client_id: Airbyte OAuth client ID (required for hosted mode) airbyte_client_secret: Airbyte OAuth client secret (required for hosted mode) connector_id: Specific connector/source ID (skips lookup if provided)
Examples:
Hosted mode with connector_id (no lookup needed)
connector = GongConnector( auth_config=AirbyteAuthConfig( airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789", connector_id="existing-source-uuid" ) )
Hosted mode with workspace_name (lookup by workspace)
connector = GongConnector( auth_config=AirbyteAuthConfig( workspace_name="user-123", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789" ) )
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
airbyte_client_id: str | None
: The type of the None singleton.
airbyte_client_secret: str | None
: The type of the None singleton.
connector_id: str | None
: The type of the None singleton.
model_config
: The type of the None singleton.
organization_id: str | None
: The type of the None singleton.
workspace_name: str | None
: The type of the None singleton.
AirbyteSearchMeta(**data: Any)
: Pagination metadata for search responses.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
cursor: str | None
: Cursor for fetching the next page of results.
has_more: bool
: Whether more results are available.
model_config
: The type of the None singleton.
took_ms: int | None
: Time taken to execute the search in milliseconds.
AirbyteSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
- typing.Generic
Descendants
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult[AdAccountSearchData]
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult[AdAccountsSearchData]
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult[AdCreativesSearchData]
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult[AdSetsSearchData]
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult[AdsInsightsSearchData]
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult[AdsSearchData]
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult[CampaignsSearchData]
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult[CustomConversionsSearchData]
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult[ImagesSearchData]
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult[VideosSearchData]
Class variables
data: list[~D]
: List of matching records.
meta: airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchMeta
: Pagination metadata.
model_config
: The type of the None singleton.
AdAccountSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
AdAccountsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
AdCreativesSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
AdSetsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
AdsInsightsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
AdsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
CampaignsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
CustomConversionsSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
ImagesSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
VideosSearchResult(**data: Any)
: Result from Airbyte cache search operations with typed records.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- airbyte_agent_sdk.connectors.facebook_marketing.models.AirbyteSearchResult
- pydantic.main.BaseModel
- typing.Generic
CampaignsSearchData(**data: Any)
: Search result data for campaigns entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_id: str | None
: Ad account ID
budget_remaining: float | None
: Remaining budget
created_time: str | None
: Campaign creation time
daily_budget: float | None
: Daily budget in account currency
effective_status: str | None
: Effective status
id: str | None
: Campaign ID
lifetime_budget: float | None
: Lifetime budget
model_config
: The type of the None singleton.
name: str | None
: Campaign name
objective: str | None
: Campaign objective
start_time: str | None
: Campaign start time
status: str | None
: Campaign status
stop_time: str | None
: Campaign stop time
updated_time: str | None
: Last update time
CustomConversionsSearchData(**data: Any)
: Search result data for custom_conversions entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_id: str | None
: Ad account ID
creation_time: str | None
: Creation time
custom_event_type: str | None
: Custom event type
description: str | None
: Description
first_fired_time: str | None
: First fired time
id: str | None
: Custom Conversion ID
is_archived: bool | None
: Whether the conversion is archived
last_fired_time: str | None
: Last fired time
model_config
: The type of the None singleton.
name: str | None
: Custom Conversion name
FacebookMarketingConnector(auth_config: FacebookMarketingAuthConfig | AirbyteAuthConfig | BaseModel | None = None, on_token_refresh: Any | None = None)
: Type-safe Facebook-Marketing API connector.
Auto-generated from OpenAPI specification with full type safety.
Initialize a new facebook-marketing connector instance.
Supports both local and hosted execution modes:
- Local mode: Provide connector-specific auth config (e.g., FacebookMarketingAuthConfig)
- Hosted mode: Provide
AirbyteAuthConfigwith client credentials and eitherconnector_idorworkspace_name
Args: auth_config: Either connector-specific auth config for local mode, or AirbyteAuthConfig for hosted mode on_token_refresh: Optional callback for OAuth2 token refresh persistence. Called with new_tokens dict when tokens are refreshed. Can be sync or async. Example: lambda tokens: save_to_database(tokens) Examples:
Local mode (direct API calls)
connector = FacebookMarketingConnector(auth_config=FacebookMarketingAuthConfig(access_token="...", client_id="...", client_secret="..."))
Hosted mode with explicit connector_id (no lookup needed)
connector = FacebookMarketingConnector( auth_config=AirbyteAuthConfig( airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789", connector_id="existing-source-uuid" ) )
Hosted mode with lookup by workspace_name
connector = FacebookMarketingConnector( auth_config=AirbyteAuthConfig( workspace_name="user-123", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789" ) )
Class variables
connector_name
: The type of the None singleton.
connector_version
: The type of the None singleton.
sdk_version
: The type of the None singleton.
Static methods
create(*, airbyte_config: AirbyteAuthConfig, auth_config: "'FacebookMarketingAuthConfig' | None" = None, server_side_oauth_secret_id: str | None = None, name: str | None = None, replication_config: "'FacebookMarketingReplicationConfig' | None" = None, source_template_id: str | None = None)
: Create a new hosted connector on Airbyte Cloud.
This factory method:
- Creates a source on Airbyte Cloud with the provided credentials
- Returns a connector configured with the new connector_id
Supports two authentication modes:
- Direct credentials: Provide
auth_configwith typed credentials - Server-side OAuth: Provide
server_side_oauth_secret_idfrom OAuth flow
Args: airbyte_config: Airbyte hosted auth config with client credentials and workspace_name. Optionally include organization_id for multi-org request routing. auth_config: Typed auth config. Required unless using server_side_oauth_secret_id. server_side_oauth_secret_id: OAuth secret ID from get_consent_url redirect. When provided, auth_config is not required. name: Optional source name (defaults to connector name + workspace_name) replication_config: Typed replication settings. Required for connectors with x-airbyte-replication-config (REPLICATION mode sources). source_template_id: Source template ID. Required when organization has multiple source templates for this connector type.
Returns: A FacebookMarketingConnector instance configured in hosted mode
Raises: ValueError: If neither or both auth_config and server_side_oauth_secret_id provided
Example:
Create a new hosted connector with API key auth
connector = await FacebookMarketingConnector.create( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), auth_config=FacebookMarketingAuthConfig(access_token="...", client_id="...", client_secret="..."), )
With replication config (required for this connector):
connector = await FacebookMarketingConnector.create( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), auth_config=FacebookMarketingAuthConfig(access_token="...", client_id="...", client_secret="..."), replication_config=FacebookMarketingReplicationConfig(account_ids="..."), )
With server-side OAuth:
connector = await FacebookMarketingConnector.create( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), server_side_oauth_secret_id="airbyte_oauth_...secret...", replication_config=FacebookMarketingReplicationConfig(account_ids="..."), )
Use the connector
result = await connector.execute("entity", "list", {})
get_consent_url(*, airbyte_config: AirbyteAuthConfig, redirect_url: str, name: str | None = None, replication_config: "'FacebookMarketingReplicationConfig' | None" = None, source_template_id: str | None = None)
: Initiate server-side OAuth flow with auto-source creation.
Returns a consent URL where the end user should be redirected to grant access.
After completing consent, the source is automatically created and the user is
redirected to your redirect_url with a connector_id query parameter.
Args: airbyte_config: Airbyte hosted auth config with client credentials and workspace_name. Optionally include organization_id for multi-org request routing. redirect_url: URL where users will be redirected after OAuth consent. After consent, user arrives at: redirect_url?connector_id=... name: Optional name for the source. Defaults to connector name + workspace_name. replication_config: Typed replication settings. Merged with OAuth credentials. source_template_id: Source template ID. Required when organization has multiple source templates for this connector type.
Returns: The OAuth consent URL
Example: consent_url = await FacebookMarketingConnector.get_consent_url( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), redirect_url="https://myapp.com/oauth/callback", name="My Facebook-Marketing Source", replication_config=FacebookMarketingReplicationConfig(account_ids="..."), )
Redirect user to: consent_url
After consent, user arrives at: https://myapp.com/oauth/callback?connector_id=...
tool_utils(func: _F | None = None, *, update_docstring: bool = True, max_output_chars: int | None = 100000, framework: FrameworkName | None = None, internal_retries: int = 0, should_internal_retry: Callable[[Exception, tuple[Any, ...], dict[str, Any]], bool] | None = None, exhausted_runtime_failure_message: Callable[[Exception, tuple[Any, ...], dict[str, Any]], str | None] | None = None) ‑> ~_F | Callable[[~_F], ~_F]
: Decorator that adds tool utilities like docstring augmentation and output limits.
Composes :func:airbyte_agent_sdk.translation.translate_exceptions for
runtime wrapping (sync/async branch + output-size check + framework
signal translation + optional internal retry loop), and adds
connector-specific docstring augmentation on top of it.
Usage: @mcp.tool() @FacebookMarketingConnector.tool_utils async def execute(entity: str, action: str, params: dict): ...
@mcp.tool() @FacebookMarketingConnector.tool_utils(update_docstring=False, max_output_chars=None) async def execute(entity: str, action: str, params: dict): ...
@mcp.tool() @FacebookMarketingConnector.tool_utils(framework="pydantic_ai", internal_retries=2) async def execute(entity: str, action: str, params: dict): ...
Args:
update_docstring: When True, append connector capabilities to doc.
max_output_chars: Max serialized output size before raising. Use None to disable.
framework: One of "pydantic_ai" | "langchain" | "openai_agents" | "mcp".
Defaults to None → auto-detect by attempting each framework's canonical
import in order. Explicit always wins.
internal_retries: How many transient runtime failures (429/5xx, network,
timeout) to retry silently before surfacing. Default 0. Forwarded to
:func:airbyte_agent_sdk.translation.translate_exceptions.
should_internal_retry: Optional predicate (error, args, kwargs) -> bool
further restricting which retryable errors are safe for this specific
tool. Forwarded to
:func:airbyte_agent_sdk.translation.translate_exceptions.
exhausted_runtime_failure_message: Optional callback
(error, args, kwargs) -> str | None. Invoked after internal retries
are exhausted OR were skipped via should_internal_retry returning
False. Forwarded to
:func:airbyte_agent_sdk.translation.translate_exceptions.
Instance variables
connector_id: str | None
: Get the connector/source ID (only available in hosted mode).
Returns: The connector ID if in hosted mode, None if in local mode.
Example: connector = await FacebookMarketingConnector.create(...) print(f"Created connector: {connector.connector_id}")
Methods
check(self) ‑> airbyte_agent_sdk.connectors.facebook_marketing.models.FacebookMarketingCheckResult
: Perform a health check to verify connectivity and credentials.
Executes a lightweight list operation (limit=1) to validate that the connector can communicate with the API and credentials are valid.
Returns: FacebookMarketingCheckResult with status ("healthy" or "unhealthy") and optional error message
Example: result = await connector.check() if result.status == "healthy": print("Connection verified!") else: print(f"Check failed: {result.error}")
close(self)
: Close the connector and release resources.
entity_schema(self, entity: str) ‑> dict[str, typing.Any] | None
: Get the JSON schema for an entity.
Args: entity: Entity name (e.g., "contacts", "companies")
Returns: JSON schema dict describing the entity structure, or None if not found.
Example: schema = connector.entity_schema("contacts") if schema: print(f"Contact properties: {list(schema.get('properties', {}).keys())}")
execute(self, entity: str, action: "Literal['get', 'list', 'create', 'update', 'context_store_search']", params: Mapping[str, Any] | None = None) ‑> Any
: Execute an entity operation with full type safety.
This is the recommended interface for blessed connectors as it:
- Uses the same signature as non-blessed connectors
- Provides full IDE autocomplete for entity/action/params
- Makes migration from generic to blessed connectors seamless
Args: entity: Entity name (e.g., "customers") action: Operation action (e.g., "create", "get", "list") params: Operation parameters (typed based on entity+action)
Returns: Typed response based on the operation
Example: customer = await connector.execute( entity="customers", action="get", params={"id": "cus_123"} )
list_entities(self) ‑> list[dict[str, typing.Any]]
: Get structured data about available entities, actions, and parameters.
Returns a list of entity descriptions with:
- entity_name: Name of the entity (e.g., "contacts", "deals")
- description: Entity description from the first endpoint
- available_actions: List of actions (e.g., ["list", "get", "create"])
- parameters: Dict mapping action -> list of parameter dicts
Example: entities = connector.list_entities() for entity in entities: print(f"{entity['entity_name']}: {entity['available_actions']}")
FacebookMarketingReplicationConfig(**data: Any)
: Replication Configuration - Settings for data replication from Facebook Marketing.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_ids: str
: The Facebook Ad account ID(s) to pull data from. The Ad account ID number is in the account dropdown menu or in your browser's address bar of your Meta Ads Manager.
model_config
: The type of the None singleton.
ImagesSearchData(**data: Any)
: Search result data for images entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_id: str | None
: Ad account ID
created_time: str | None
: Creation time
hash: str | None
: Image hash
height: int | None
: Image height
id: str | None
: Image ID
model_config
: The type of the None singleton.
name: str | None
: Image name
permalink_url: str | None
: Permalink URL
status: str | None
: Image status
updated_time: str | None
: Last update time
url: str | None
: Image URL
width: int | None
: Image width
VideosSearchData(**data: Any)
: Search result data for videos entity.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be
validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Ancestors (in MRO)
- pydantic.main.BaseModel
Class variables
account_id: str | None
: Ad account ID
created_time: str | None
: Creation time
description: str | None
: Video description
id: str | None
: Video ID
length: float | None
: Video length in seconds
model_config
: The type of the None singleton.
permalink_url: str | None
: Permalink URL
source: str | None
: Video source URL
title: str | None
: Video title
updated_time: str | None
: Last update time
views: int | None
: Number of views