This is the full reference documentation for the Sendgrid agent connector.
Supported entities and actions
The Sendgrid connector supports the following entities and actions.
| Entity | Actions |
|---|
| Contacts | List, Get, Context Store Search, Context Store SQL Query |
| Lists | List, Get, Context Store Search, Context Store SQL Query |
| Segments | List, Get, Context Store Search, Context Store SQL Query |
| Campaigns | List, Context Store Search, Context Store SQL Query |
| Singlesends | List, Get, Context Store Search, Context Store SQL Query |
| Templates | List, Get, Context Store Search, Context Store SQL Query |
| Singlesend Stats | List, Context Store Search, Context Store SQL Query |
| Bounces | List, Context Store Search, Context Store SQL Query |
| Blocks | List, Context Store Search, Context Store SQL Query |
| Spam Reports | List |
| Invalid Emails | List, Context Store Search, Context Store SQL Query |
| Global Suppressions | List, Context Store Search, Context Store SQL Query |
| Suppression Groups | List, Get, Context Store Search, Context Store SQL Query |
| Suppression Group Members | List, Context Store Search, Context Store SQL Query |
Returns a sample of contacts. Use the export endpoint for full lists.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "contacts",
"action": "list"
}'
Python SDK
await sendgrid.contacts.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "contacts",
"action": "list"
}'
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
email | null | string | |
first_name | null | string | |
last_name | null | string | |
unique_name | null | string | |
alternate_emails | null | array | |
address_line_1 | null | string | |
address_line_2 | null | string | |
city | null | string | |
state_province_region | null | string | |
country | null | string | |
postal_code | null | string | |
phone_number | null | string | |
whatsapp | null | string | |
line | null | string | |
facebook | null | string | |
list_ids | null | array | |
segment_ids | null | array | |
custom_fields | null | object | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | null | string | |
contact_count | integer | |
Returns the full details and all fields for the specified contact.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "contacts",
"action": "get",
"params": {
"id": "<str>"
}
}'
Python SDK
await sendgrid.contacts.get(
id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "contacts",
"action": "get",
"params": {
"id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | string | Yes | The ID of the contact |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
email | null | string | |
first_name | null | string | |
last_name | null | string | |
unique_name | null | string | |
alternate_emails | null | array | |
address_line_1 | null | string | |
address_line_2 | null | string | |
city | null | string | |
state_province_region | null | string | |
country | null | string | |
postal_code | null | string | |
phone_number | null | string | |
whatsapp | null | string | |
line | null | string | |
facebook | null | string | |
list_ids | null | array | |
segment_ids | null | array | |
custom_fields | null | object | |
created_at | null | string | |
updated_at | null | string | |
Contacts Context Store Search
Search and filter contacts records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "contacts",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"address_line_1": "<str>"
}
}
}
}
}'
Python SDK
await sendgrid.contacts.context_store_search(
query={"filter": {"eq": {"address_line_1": "<str>"}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "contacts",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"address_line_1": "<str>"}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
address_line_1 | string | Address line 1 |
address_line_2 | string | Address line 2 |
alternate_emails | array | Alternate email addresses |
city | string | City |
contact_id | string | Unique contact identifier used by Airbyte |
country | string | Country |
created_at | string | When the contact was created |
custom_fields | object | Custom field values |
email | string | Contact email address |
facebook | string | Facebook ID |
first_name | string | Contact first name |
last_name | string | Contact last name |
line | string | LINE ID |
list_ids | array | IDs of lists the contact belongs to |
phone_number | string | Phone number |
postal_code | string | Postal code |
state_province_region | string | State, province, or region |
unique_name | string | Unique name for the contact |
updated_at | string | When the contact was last updated |
whatsapp | string | WhatsApp number |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].address_line_1 | string | Address line 1 |
data[].address_line_2 | string | Address line 2 |
data[].alternate_emails | array | Alternate email addresses |
data[].city | string | City |
data[].contact_id | string | Unique contact identifier used by Airbyte |
data[].country | string | Country |
data[].created_at | string | When the contact was created |
data[].custom_fields | object | Custom field values |
data[].email | string | Contact email address |
data[].facebook | string | Facebook ID |
data[].first_name | string | Contact first name |
data[].last_name | string | Contact last name |
data[].line | string | LINE ID |
data[].list_ids | array | IDs of lists the contact belongs to |
data[].phone_number | string | Phone number |
data[].postal_code | string | Postal code |
data[].state_province_region | string | State, province, or region |
data[].unique_name | string | Unique name for the contact |
data[].updated_at | string | When the contact was last updated |
data[].whatsapp | string | WhatsApp number |
Contacts Context Store SQL Query
Run a SQL query against contacts records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "contacts",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.contacts.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "contacts",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Lists
Lists List
Returns all marketing contact lists.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "lists",
"action": "list"
}'
Python SDK
await sendgrid.lists.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "lists",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page_size | integer | No | Maximum number of lists to return |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
name | string | |
contact_count | integer | |
_metadata | null | object | |
| Field Name | Type | Description |
|---|
next | null | string | |
Lists Get
Returns a specific marketing list by ID.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "lists",
"action": "get",
"params": {
"id": "<str>"
}
}'
Python SDK
await sendgrid.lists.get(
id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "lists",
"action": "get",
"params": {
"id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | string | Yes | The ID of the list |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
name | string | |
contact_count | integer | |
_metadata | null | object | |
Lists Context Store Search
Search and filter lists records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "lists",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"_metadata": {}
}
}
}
}
}'
Python SDK
await sendgrid.lists.context_store_search(
query={"filter": {"eq": {"_metadata": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "lists",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"_metadata": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
_metadata | object | Metadata about the list resource |
contact_count | integer | Number of contacts in the list |
id | string | Unique list identifier |
name | string | Name of the list |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[]._metadata | object | Metadata about the list resource |
data[].contact_count | integer | Number of contacts in the list |
data[].id | string | Unique list identifier |
data[].name | string | Name of the list |
Lists Context Store SQL Query
Run a SQL query against lists records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "lists",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.lists.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "lists",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Segments
Segments List
Returns all segments (v2).
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "segments",
"action": "list"
}'
Python SDK
await sendgrid.segments.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "segments",
"action": "list"
}'
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
name | string | |
contacts_count | integer | |
created_at | null | string | |
updated_at | null | string | |
sample_updated_at | null | string | |
next_sample_update | null | string | |
parent_list_ids | null | array | |
query_version | string | |
status | null | object | |
Segments Get
Returns a specific segment by ID.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "segments",
"action": "get",
"params": {
"segment_id": "<str>"
}
}'
Python SDK
await sendgrid.segments.get(
segment_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "segments",
"action": "get",
"params": {
"segment_id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
segment_id | string | Yes | The ID of the segment |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
name | string | |
contacts_count | integer | |
created_at | null | string | |
updated_at | null | string | |
sample_updated_at | null | string | |
next_sample_update | null | string | |
parent_list_ids | null | array | |
query_version | string | |
status | null | object | |
Segments Context Store Search
Search and filter segments records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "segments",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"contacts_count": 0
}
}
}
}
}'
Python SDK
await sendgrid.segments.context_store_search(
query={"filter": {"eq": {"contacts_count": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "segments",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"contacts_count": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
contacts_count | integer | Number of contacts in the segment |
created_at | string | When the segment was created |
id | string | Unique segment identifier |
name | string | Segment name |
next_sample_update | string | When the next sample update will occur |
parent_list_ids | array | IDs of parent lists |
query_version | string | Query version used |
sample_updated_at | string | When the sample was last updated |
status | object | Segment status details |
updated_at | string | When the segment was last updated |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].contacts_count | integer | Number of contacts in the segment |
data[].created_at | string | When the segment was created |
data[].id | string | Unique segment identifier |
data[].name | string | Segment name |
data[].next_sample_update | string | When the next sample update will occur |
data[].parent_list_ids | array | IDs of parent lists |
data[].query_version | string | Query version used |
data[].sample_updated_at | string | When the sample was last updated |
data[].status | object | Segment status details |
data[].updated_at | string | When the segment was last updated |
Segments Context Store SQL Query
Run a SQL query against segments records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "segments",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.segments.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "segments",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Campaigns
Campaigns List
Returns all marketing campaigns.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "campaigns",
"action": "list"
}'
Python SDK
await sendgrid.campaigns.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "campaigns",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page_size | integer | No | Maximum number of campaigns to return per page |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
name | string | |
status | string | |
channels | null | array | |
is_abtest | boolean | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | null | string | |
Campaigns Context Store Search
Search and filter campaigns records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "campaigns",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"channels": []
}
}
}
}
}'
Python SDK
await sendgrid.campaigns.context_store_search(
query={"filter": {"eq": {"channels": []}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "campaigns",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"channels": []}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
channels | array | Channels for this campaign |
created_at | string | When the campaign was created |
id | string | Unique campaign identifier |
is_abtest | boolean | Whether this campaign is an A/B test |
name | string | Campaign name |
status | string | Campaign status |
updated_at | string | When the campaign was last updated |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].channels | array | Channels for this campaign |
data[].created_at | string | When the campaign was created |
data[].id | string | Unique campaign identifier |
data[].is_abtest | boolean | Whether this campaign is an A/B test |
data[].name | string | Campaign name |
data[].status | string | Campaign status |
data[].updated_at | string | When the campaign was last updated |
Campaigns Context Store SQL Query
Run a SQL query against campaigns records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "campaigns",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.campaigns.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "campaigns",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Singlesends
Singlesends List
Returns all single sends.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "singlesends",
"action": "list"
}'
Python SDK
await sendgrid.singlesends.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "singlesends",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page_size | integer | No | Maximum number of single sends to return per page |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
name | string | |
status | string | |
categories | null | array | |
send_at | null | string | |
send_to | null | object | |
email_config | null | object | |
is_abtest | boolean | |
created_at | string | |
updated_at | string | |
| Field Name | Type | Description |
|---|
next | null | string | |
Singlesends Get
Returns details about one single send.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "singlesends",
"action": "get",
"params": {
"id": "<str>"
}
}'
Python SDK
await sendgrid.singlesends.get(
id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "singlesends",
"action": "get",
"params": {
"id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | string | Yes | The ID of the single send |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
name | string | |
status | string | |
categories | null | array | |
send_at | null | string | |
send_to | null | object | |
email_config | null | object | |
is_abtest | boolean | |
created_at | string | |
updated_at | string | |
Singlesends Context Store Search
Search and filter singlesends records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "singlesends",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"categories": []
}
}
}
}
}'
Python SDK
await sendgrid.singlesends.context_store_search(
query={"filter": {"eq": {"categories": []}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "singlesends",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"categories": []}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
categories | array | Categories associated with this single send |
created_at | string | When the single send was created |
id | string | Unique single send identifier |
is_abtest | boolean | Whether this is an A/B test |
name | string | Single send name |
send_at | string | Scheduled send time |
status | string | Current status: draft, scheduled, or triggered |
updated_at | string | When the single send was last updated |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].categories | array | Categories associated with this single send |
data[].created_at | string | When the single send was created |
data[].id | string | Unique single send identifier |
data[].is_abtest | boolean | Whether this is an A/B test |
data[].name | string | Single send name |
data[].send_at | string | Scheduled send time |
data[].status | string | Current status: draft, scheduled, or triggered |
data[].updated_at | string | When the single send was last updated |
Singlesends Context Store SQL Query
Run a SQL query against singlesends records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "singlesends",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.singlesends.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "singlesends",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Templates
Templates List
Returns paged transactional templates (legacy and dynamic).
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "templates",
"action": "list"
}'
Python SDK
await sendgrid.templates.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "templates",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
generations | string | No | Template generations to return |
page_size | integer | No | Number of templates per page |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
name | string | |
generation | string | |
updated_at | null | string | |
versions | null | array | |
| Field Name | Type | Description |
|---|
next | null | string | |
Templates Get
Returns a single transactional template.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "templates",
"action": "get",
"params": {
"template_id": "<str>"
}
}'
Python SDK
await sendgrid.templates.get(
template_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "templates",
"action": "get",
"params": {
"template_id": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
template_id | string | Yes | The ID of the template |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
name | string | |
generation | string | |
updated_at | null | string | |
versions | null | array | |
Templates Context Store Search
Search and filter templates records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "templates",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"generation": "<str>"
}
}
}
}
}'
Python SDK
await sendgrid.templates.context_store_search(
query={"filter": {"eq": {"generation": "<str>"}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "templates",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"generation": "<str>"}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
generation | string | Template generation (legacy or dynamic) |
id | string | Unique template identifier |
name | string | Template name |
updated_at | string | When the template was last updated |
versions | array | Template versions |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].generation | string | Template generation (legacy or dynamic) |
data[].id | string | Unique template identifier |
data[].name | string | Template name |
data[].updated_at | string | When the template was last updated |
data[].versions | array | Template versions |
Templates Context Store SQL Query
Run a SQL query against templates records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "templates",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.templates.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "templates",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Singlesend Stats
Singlesend Stats List
Returns stats for all single sends.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "singlesend_stats",
"action": "list"
}'
Python SDK
await sendgrid.singlesend_stats.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "singlesend_stats",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
page_size | integer | No | Maximum number of stats to return per page |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
ab_phase | null | string | |
ab_variation | null | string | |
aggregation | null | string | |
stats | null | object | |
| Field Name | Type | Description |
|---|
next | null | string | |
Singlesend Stats Context Store Search
Search and filter singlesend stats records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "singlesend_stats",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"ab_phase": "<str>"
}
}
}
}
}'
Python SDK
await sendgrid.singlesend_stats.context_store_search(
query={"filter": {"eq": {"ab_phase": "<str>"}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "singlesend_stats",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"ab_phase": "<str>"}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
ab_phase | string | The A/B test phase |
ab_variation | string | The A/B test variation |
aggregation | string | The aggregation type |
id | string | The single send ID |
stats | object | Email statistics for the single send |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].ab_phase | string | The A/B test phase |
data[].ab_variation | string | The A/B test variation |
data[].aggregation | string | The aggregation type |
data[].id | string | The single send ID |
data[].stats | object | Email statistics for the single send |
Singlesend Stats Context Store SQL Query
Run a SQL query against singlesend stats records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "singlesend_stats",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.singlesend_stats.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "singlesend_stats",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Bounces
Bounces List
Returns all bounced email records.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "bounces",
"action": "list"
}'
Python SDK
await sendgrid.bounces.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "bounces",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
created | integer | |
email | string | |
reason | string | |
status | string | |
| Field Name | Type | Description |
|---|
next | string | |
Bounces Context Store Search
Search and filter bounces records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "bounces",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"created": 0
}
}
}
}
}'
Python SDK
await sendgrid.bounces.context_store_search(
query={"filter": {"eq": {"created": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "bounces",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"created": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
created | integer | Unix timestamp when the bounce occurred |
email | string | The email address that bounced |
reason | string | The reason for the bounce |
status | string | The enhanced status code for the bounce |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].created | integer | Unix timestamp when the bounce occurred |
data[].email | string | The email address that bounced |
data[].reason | string | The reason for the bounce |
data[].status | string | The enhanced status code for the bounce |
Bounces Context Store SQL Query
Run a SQL query against bounces records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "bounces",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.bounces.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "bounces",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Blocks
Blocks List
Returns all blocked email records.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "blocks",
"action": "list"
}'
Python SDK
await sendgrid.blocks.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "blocks",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
created | integer | |
email | string | |
reason | string | |
status | string | |
| Field Name | Type | Description |
|---|
next | string | |
Blocks Context Store Search
Search and filter blocks records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "blocks",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"created": 0
}
}
}
}
}'
Python SDK
await sendgrid.blocks.context_store_search(
query={"filter": {"eq": {"created": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "blocks",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"created": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
created | integer | Unix timestamp when the block occurred |
email | string | The blocked email address |
reason | string | The reason for the block |
status | string | The status code for the block |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].created | integer | Unix timestamp when the block occurred |
data[].email | string | The blocked email address |
data[].reason | string | The reason for the block |
data[].status | string | The status code for the block |
Blocks Context Store SQL Query
Run a SQL query against blocks records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "blocks",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.blocks.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "blocks",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Spam Reports
Spam Reports List
Returns all spam report records.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "spam_reports",
"action": "list"
}'
Python SDK
await sendgrid.spam_reports.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "spam_reports",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
created | integer | |
email | string | |
ip | string | |
| Field Name | Type | Description |
|---|
next | string | |
Invalid Emails
Invalid Emails List
Returns all invalid email records.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "invalid_emails",
"action": "list"
}'
Python SDK
await sendgrid.invalid_emails.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "invalid_emails",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
created | integer | |
email | string | |
reason | string | |
| Field Name | Type | Description |
|---|
next | string | |
Invalid Emails Context Store Search
Search and filter invalid emails records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "invalid_emails",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"created": 0
}
}
}
}
}'
Python SDK
await sendgrid.invalid_emails.context_store_search(
query={"filter": {"eq": {"created": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "invalid_emails",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"created": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
created | integer | Unix timestamp when the invalid email was recorded |
email | string | The invalid email address |
reason | string | The reason the email is invalid |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].created | integer | Unix timestamp when the invalid email was recorded |
data[].email | string | The invalid email address |
data[].reason | string | The reason the email is invalid |
Invalid Emails Context Store SQL Query
Run a SQL query against invalid emails records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "invalid_emails",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.invalid_emails.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "invalid_emails",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Global Suppressions
Global Suppressions List
Returns all globally unsubscribed email addresses.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "global_suppressions",
"action": "list"
}'
Python SDK
await sendgrid.global_suppressions.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "global_suppressions",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
created | integer | |
email | string | |
| Field Name | Type | Description |
|---|
next | string | |
Global Suppressions Context Store Search
Search and filter global suppressions records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "global_suppressions",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"created": 0
}
}
}
}
}'
Python SDK
await sendgrid.global_suppressions.context_store_search(
query={"filter": {"eq": {"created": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "global_suppressions",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"created": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
created | integer | Unix timestamp when the global suppression was created |
email | string | The globally suppressed email address |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].created | integer | Unix timestamp when the global suppression was created |
data[].email | string | The globally suppressed email address |
Global Suppressions Context Store SQL Query
Run a SQL query against global suppressions records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "global_suppressions",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.global_suppressions.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "global_suppressions",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Suppression Groups
Suppression Groups List
Returns all suppression (unsubscribe) groups.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "suppression_groups",
"action": "list"
}'
Python SDK
await sendgrid.suppression_groups.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "suppression_groups",
"action": "list"
}'
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | string | |
description | string | |
is_default | boolean | |
unsubscribes | integer | |
Suppression Groups Get
Returns information about a single suppression group.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "suppression_groups",
"action": "get",
"params": {
"group_id": 0
}
}'
Python SDK
await sendgrid.suppression_groups.get(
group_id=0
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "suppression_groups",
"action": "get",
"params": {
"group_id": 0
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
group_id | integer | Yes | The ID of the suppression group |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | string | |
description | string | |
is_default | boolean | |
unsubscribes | integer | |
Suppression Groups Context Store Search
Search and filter suppression groups records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "suppression_groups",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"description": "<str>"
}
}
}
}
}'
Python SDK
await sendgrid.suppression_groups.context_store_search(
query={"filter": {"eq": {"description": "<str>"}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "suppression_groups",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"description": "<str>"}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
description | string | Description of the suppression group |
id | integer | Unique suppression group identifier |
is_default | boolean | Whether this is the default suppression group |
name | string | Suppression group name |
unsubscribes | integer | Number of unsubscribes in this group |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].description | string | Description of the suppression group |
data[].id | integer | Unique suppression group identifier |
data[].is_default | boolean | Whether this is the default suppression group |
data[].name | string | Suppression group name |
data[].unsubscribes | integer | Number of unsubscribes in this group |
Suppression Groups Context Store SQL Query
Run a SQL query against suppression groups records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "suppression_groups",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.suppression_groups.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "suppression_groups",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Suppression Group Members
Suppression Group Members List
Returns all suppressions across all groups.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "suppression_group_members",
"action": "list"
}'
Python SDK
await sendgrid.suppression_group_members.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "suppression_group_members",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
Response Schema
Records
| Field Name | Type | Description |
|---|
email | string | |
group_id | integer | |
group_name | string | |
created_at | integer | |
| Field Name | Type | Description |
|---|
next | string | |
Suppression Group Members Context Store Search
Search and filter suppression group members records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "suppression_group_members",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"created_at": 0
}
}
}
}
}'
Python SDK
await sendgrid.suppression_group_members.context_store_search(
query={"filter": {"eq": {"created_at": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "suppression_group_members",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"created_at": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
created_at | integer | Unix timestamp when the suppression was created |
email | string | The suppressed email address |
group_id | integer | ID of the suppression group |
group_name | string | Name of the suppression group |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].created_at | integer | Unix timestamp when the suppression was created |
data[].email | string | The suppressed email address |
data[].group_id | integer | ID of the suppression group |
data[].group_name | string | Name of the suppression group |
Suppression Group Members Context Store SQL Query
Run a SQL query against suppression group members records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "sendgrid",
"entity": "suppression_group_members",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await sendgrid.suppression_group_members.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "suppression_group_members",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |