docs/ai-agents/connectors/sendgrid/REFERENCE.md
This is the full reference documentation for the Sendgrid agent connector.
The Sendgrid connector supports the following entities and actions.
| Entity | Actions |
|---|---|
| Contacts | List, Get, Search |
| Lists | List, Get, Search |
| Segments | List, Get, Search |
| Campaigns | List, Search |
| Singlesends | List, Get, Search |
| Templates | List, Get, Search |
| Singlesend Stats | List, Search |
| Bounces | List, Search |
| Blocks | List, Search |
| Spam Reports | List |
| Invalid Emails | List, Search |
| Global Suppressions | List, Search |
| Suppression Groups | List, Get, Search |
| Suppression Group Members | List, Search |
Returns a sample of contacts. Use the export endpoint for full lists.
await sendgrid.contacts.list()
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"
}'
| 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 |
Returns the full details and all fields for the specified contact.
await sendgrid.contacts.get(
id="<str>"
)
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>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The ID of the contact |
| 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 |
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.
await sendgrid.contacts.search(
query={"filter": {"eq": {"address_line_1": "<str>"}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"address_line_1": "<str>"}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns all marketing contact lists.
await sendgrid.lists.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
page_size | integer | No | Maximum number of lists to return |
| Field Name | Type | Description |
|---|---|---|
id | string | |
name | string | |
contact_count | integer | |
_metadata | null | object |
| Field Name | Type | Description |
|---|---|---|
next | null | string |
Returns a specific marketing list by ID.
await sendgrid.lists.get(
id="<str>"
)
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>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The ID of the list |
| Field Name | Type | Description |
|---|---|---|
id | string | |
name | string | |
contact_count | integer | |
_metadata | null | object |
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.
await sendgrid.lists.search(
query={"filter": {"eq": {"_metadata": {}}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"_metadata": {}}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns all segments (v2).
await sendgrid.segments.list()
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"
}'
| 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 |
Returns a specific segment by ID.
await sendgrid.segments.get(
segment_id="<str>"
)
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>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
segment_id | string | Yes | The ID of the segment |
| 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 |
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.
await sendgrid.segments.search(
query={"filter": {"eq": {"contacts_count": 0}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"contacts_count": 0}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns all marketing campaigns.
await sendgrid.campaigns.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
page_size | integer | No | Maximum number of campaigns to return per page |
| 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 |
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.
await sendgrid.campaigns.search(
query={"filter": {"eq": {"channels": []}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"channels": []}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns all single sends.
await sendgrid.singlesends.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
page_size | integer | No | Maximum number of single sends to return per page |
| 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 |
Returns details about one single send.
await sendgrid.singlesends.get(
id="<str>"
)
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>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The ID of the single send |
| 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 |
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.
await sendgrid.singlesends.search(
query={"filter": {"eq": {"categories": []}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"categories": []}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns paged transactional templates (legacy and dynamic).
await sendgrid.templates.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
generations | string | No | Template generations to return |
page_size | integer | No | Number of templates per page |
| Field Name | Type | Description |
|---|---|---|
id | string | |
name | string | |
generation | string | |
updated_at | null | string | |
versions | null | array |
Returns a single transactional template.
await sendgrid.templates.get(
template_id="<str>"
)
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>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
template_id | string | Yes | The ID of the template |
| Field Name | Type | Description |
|---|---|---|
id | string | |
name | string | |
generation | string | |
updated_at | null | string | |
versions | null | array |
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.
await sendgrid.templates.search(
query={"filter": {"eq": {"generation": "<str>"}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"generation": "<str>"}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns stats for all single sends.
await sendgrid.singlesend_stats.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
page_size | integer | No | Maximum number of stats to return per page |
| 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 |
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.
await sendgrid.singlesend_stats.search(
query={"filter": {"eq": {"ab_phase": "<str>"}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"ab_phase": "<str>"}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns all bounced email records.
await sendgrid.bounces.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
| Field Name | Type | Description |
|---|---|---|
created | integer | |
email | string | |
reason | string | |
status | string |
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.
await sendgrid.bounces.search(
query={"filter": {"eq": {"created": 0}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"created": 0}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns all blocked email records.
await sendgrid.blocks.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
| Field Name | Type | Description |
|---|---|---|
created | integer | |
email | string | |
reason | string | |
status | string |
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.
await sendgrid.blocks.search(
query={"filter": {"eq": {"created": 0}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"created": 0}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns all spam report records.
await sendgrid.spam_reports.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
| Field Name | Type | Description |
|---|---|---|
created | integer | |
email | string | |
ip | string |
Returns all invalid email records.
await sendgrid.invalid_emails.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
| Field Name | Type | Description |
|---|---|---|
created | integer | |
email | string | |
reason | string |
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.
await sendgrid.invalid_emails.search(
query={"filter": {"eq": {"created": 0}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"created": 0}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns all globally unsubscribed email addresses.
await sendgrid.global_suppressions.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
| Field Name | Type | Description |
|---|---|---|
created | integer | |
email | string |
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.
await sendgrid.global_suppressions.search(
query={"filter": {"eq": {"created": 0}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"created": 0}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| Field Name | Type | Description |
|---|---|---|
created | integer | Unix timestamp when the global suppression was created |
email | string | The globally suppressed email address |
| 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 |
Returns all suppression (unsubscribe) groups.
await sendgrid.suppression_groups.list()
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"
}'
| Field Name | Type | Description |
|---|---|---|
id | integer | |
name | string | |
description | string | |
is_default | boolean | |
unsubscribes | integer |
Returns information about a single suppression group.
await sendgrid.suppression_groups.get(
group_id=0
)
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
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
group_id | integer | Yes | The ID of the suppression group |
| Field Name | Type | Description |
|---|---|---|
id | integer | |
name | string | |
description | string | |
is_default | boolean | |
unsubscribes | integer |
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.
await sendgrid.suppression_groups.search(
query={"filter": {"eq": {"description": "<str>"}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"description": "<str>"}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |
Returns all suppressions across all groups.
await sendgrid.suppression_group_members.list()
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"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of records to return |
offset | integer | No | Number of records to skip for pagination |
| Field Name | Type | Description |
|---|---|---|
email | string | |
group_id | integer | |
group_name | string | |
created_at | integer |
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.
await sendgrid.suppression_group_members.search(
query={"filter": {"eq": {"created_at": 0}}}
)
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": "search",
"params": {
"query": {"filter": {"eq": {"created_at": 0}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, 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 |
| 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 |
| 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 |