{
  "service": "bird",
  "displayName": "Bird",
  "categories": [
    "Communication",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Access Key",
      "placeholder": "BIRD_ACCESS_KEY",
      "description": "Bird access key used in the Authorization header for API requests. Create and manage access keys in Bird security settings: https://app.bird.com/settings/security/access-keys"
    }
  ],
  "homepageUrl": "https://bird.com",
  "actions": [
    {
      "id": "bird.create_contact",
      "service": "bird",
      "name": "create_contact",
      "description": "Create a Bird contact with identifiers, attributes, display name, or list IDs.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "contact": {
            "type": "object",
            "properties": {
              "displayName": {
                "type": "string",
                "minLength": 1,
                "description": "The display name for the Bird contact.",
                "pattern": "\\S"
              },
              "identifiers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The Bird contact identifier key, such as emailaddress or phonenumber.",
                      "pattern": "\\S"
                    },
                    "value": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The Bird contact identifier value.",
                      "pattern": "\\S"
                    }
                  },
                  "additionalProperties": false,
                  "description": "A Bird contact identifier."
                },
                "description": "Identifiers to attach to the contact.",
                "minItems": 1
              },
              "attributes": {
                "type": "object",
                "additionalProperties": {
                  "description": "A Bird contact attribute value."
                },
                "description": "Bird contact attributes keyed by attribute name."
              },
              "listIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "A Bird contact list ID.",
                  "format": "uuid"
                },
                "description": "Bird contact list IDs.",
                "minItems": 1
              }
            },
            "additionalProperties": false,
            "description": "The Bird contact fields to create."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for creating a Bird contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact"
        ],
        "description": "The response returned when creating a Bird contact."
      }
    },
    {
      "id": "bird.delete_contact",
      "service": "bird",
      "name": "delete_contact",
      "description": "Delete a Bird contact by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "contactId": {
            "type": "string",
            "description": "The Bird contact ID.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for deleting a Bird contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "string",
            "description": "The Bird contact ID.",
            "format": "uuid"
          },
          "deleted": {
            "type": "boolean",
            "description": "Whether the contact was deleted."
          }
        },
        "additionalProperties": false,
        "required": [
          "contactId",
          "deleted"
        ],
        "description": "The response returned when deleting a Bird contact."
      }
    },
    {
      "id": "bird.get_channel",
      "service": "bird",
      "name": "get_channel",
      "description": "Retrieve a specific Bird workspace channel by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "channelId": {
            "type": "string",
            "description": "The Bird channel ID.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving a Bird channel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "channel": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel"
        ],
        "description": "The response returned when retrieving a Bird channel."
      }
    },
    {
      "id": "bird.get_contact",
      "service": "bird",
      "name": "get_contact",
      "description": "Retrieve a Bird contact by ID, optionally requesting specific attributes.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "contactId": {
            "type": "string",
            "description": "The Bird contact ID.",
            "format": "uuid"
          },
          "attribute": {
            "type": "string",
            "minLength": 1,
            "description": "A contact attribute name to include in the response.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "required": [
          "workspaceId",
          "contactId"
        ],
        "description": "The input payload for retrieving a Bird contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact"
        ],
        "description": "The response returned when retrieving a Bird contact."
      }
    },
    {
      "id": "bird.get_message",
      "service": "bird",
      "name": "get_message",
      "description": "Retrieve a Bird channel message by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "channelId": {
            "type": "string",
            "description": "The Bird channel ID.",
            "format": "uuid"
          },
          "messageId": {
            "type": "string",
            "description": "The Bird channel message ID.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving a Bird channel message."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "message"
        ],
        "description": "The response returned when retrieving a Bird channel message."
      }
    },
    {
      "id": "bird.list_channels",
      "service": "bird",
      "name": "list_channels",
      "description": "List channels configured for a Bird workspace with optional filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "The maximum number of channels to return."
          },
          "pageToken": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination token returned by a previous request.",
            "pattern": "\\S"
          },
          "reverse": {
            "type": "boolean",
            "description": "Whether to reverse the order in which channels are returned."
          },
          "platform": {
            "type": "string",
            "minLength": 1,
            "description": "Filter channels by platform name.",
            "pattern": "\\S"
          },
          "conferencial": {
            "type": "boolean",
            "description": "Filter channels by Bird's conferencial flag."
          },
          "onlyMyChannels": {
            "type": "boolean",
            "description": "Only return channels the authenticated principal can access."
          },
          "useCaseType": {
            "type": "string",
            "enum": [
              "otp",
              "transactional",
              "marketing",
              "conversation"
            ],
            "description": "Filter channels by the Bird use case type."
          },
          "channelIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The Bird channel ID.",
              "format": "uuid"
            },
            "description": "Filter channels by channel IDs.",
            "minItems": 1
          },
          "resourceOwnerIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "A Bird resource owner ID.",
              "format": "uuid"
            },
            "description": "Filter channels by resource owner IDs.",
            "minItems": 1
          },
          "resourceOwnerIdentifiers": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Bird resource owner identifier.",
              "pattern": "\\S"
            },
            "description": "Filter channels by resource owner identifiers.",
            "minItems": 1
          },
          "suite": {
            "type": "string",
            "enum": [
              "marketing",
              "service",
              "payments",
              "automations",
              "developer"
            ],
            "description": "Filter channels by the Bird suite."
          },
          "platformStatus": {
            "type": "string",
            "enum": [
              "preview",
              "GA"
            ],
            "description": "Filter channels by platform release status."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspaceId"
        ],
        "description": "The input payload for listing Bird workspace channels."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "channels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Bird."
            },
            "description": "The channel records returned by Bird."
          },
          "nextPageToken": {
            "anyOf": [
              {
                "type": "string",
                "description": "The token that can be passed as pageToken to fetch the next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "channels",
          "nextPageToken",
          "raw"
        ],
        "description": "The response returned when listing Bird channels."
      }
    },
    {
      "id": "bird.list_contacts",
      "service": "bird",
      "name": "list_contacts",
      "description": "List contacts in a Bird workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Bird contacts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Bird."
            },
            "description": "The contact records returned by Bird."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "contacts",
          "raw"
        ],
        "description": "The response returned when listing Bird contacts."
      }
    },
    {
      "id": "bird.list_message_interactions",
      "service": "bird",
      "name": "list_message_interactions",
      "description": "List interactions recorded for a Bird channel message.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "channelId": {
            "type": "string",
            "description": "The Bird channel ID.",
            "format": "uuid"
          },
          "messageId": {
            "type": "string",
            "description": "The Bird channel message ID.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Bird message interactions."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "interactions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Bird."
            },
            "description": "The message interactions returned by Bird."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "interactions",
          "raw"
        ],
        "description": "The response returned when listing Bird message interactions."
      }
    },
    {
      "id": "bird.search_contact_by_identifier",
      "service": "bird",
      "name": "search_contact_by_identifier",
      "description": "Search Bird contacts by an identifier key and value.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "identifier": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "minLength": 1,
                "description": "The Bird contact identifier key, such as emailaddress or phonenumber.",
                "pattern": "\\S"
              },
              "value": {
                "type": "string",
                "minLength": 1,
                "description": "The Bird contact identifier value.",
                "pattern": "\\S"
              }
            },
            "additionalProperties": false,
            "description": "A Bird contact identifier."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for searching Bird contacts by identifier."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Bird."
            },
            "description": "The matching contact records returned by Bird."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "contacts",
          "raw"
        ],
        "description": "The response returned when searching Bird contacts by identifier."
      }
    },
    {
      "id": "bird.send_batch_messages",
      "service": "bird",
      "name": "send_batch_messages",
      "description": "Send a batch of up to 100 messages through a Bird workspace channel and return the accepted batch IDs.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "channelId": {
            "type": "string",
            "description": "The Bird channel ID.",
            "format": "uuid"
          },
          "messages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "receiver": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The Bird receiver object for the channel message."
                },
                "body": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The Bird message body object, such as a text, image, file, gif, location, carousel, list, section, or template-compatible body."
                },
                "template": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The optional Bird template object for the channel message."
                },
                "sender": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The optional Bird sender object for the channel message."
                },
                "reference": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A caller-defined message reference.",
                  "pattern": "\\S"
                },
                "meta": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The optional Bird metadata object for the channel message."
                },
                "replyTo": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw object returned by Bird."
                },
                "notification": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw object returned by Bird."
                },
                "capFrequency": {
                  "type": "boolean",
                  "description": "Whether to apply Bird frequency capping rules."
                },
                "enableLinkTracking": {
                  "type": "boolean",
                  "description": "Whether Bird should append UTM parameters to links."
                },
                "ignoreQuietHours": {
                  "type": "boolean",
                  "description": "Whether to ignore quiet hours settings."
                },
                "ignoreGlobalHoldout": {
                  "type": "boolean",
                  "description": "Whether to skip global holdout checks."
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A Bird message tag.",
                    "pattern": "\\S"
                  },
                  "description": "Tags to associate with the message.",
                  "minItems": 1,
                  "maxItems": 10
                },
                "shortLinks": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw object returned by Bird."
                },
                "scheduledFor": {
                  "type": "string",
                  "description": "The RFC3339 time when Bird should send the message.",
                  "format": "date-time"
                },
                "validity": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of seconds for which the message remains valid."
                }
              },
              "additionalProperties": false,
              "required": [
                "receiver"
              ],
              "description": "A Bird channel message request. Provide either body or template."
            },
            "description": "The Bird channel messages to send.",
            "minItems": 1,
            "maxItems": 100
          }
        },
        "additionalProperties": false,
        "description": "The input payload for sending Bird channel messages in a batch."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "batchId": {
            "anyOf": [
              {
                "type": "string",
                "description": "The Bird batch ID.",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "messageIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The Bird channel message ID.",
              "format": "uuid"
            },
            "description": "The Bird message IDs accepted in the batch."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "batchId",
          "messageIds",
          "raw"
        ],
        "description": "The response returned when sending Bird channel messages in a batch."
      }
    },
    {
      "id": "bird.send_message",
      "service": "bird",
      "name": "send_message",
      "description": "Send one message through a Bird workspace channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "channelId": {
            "type": "string",
            "description": "The Bird channel ID.",
            "format": "uuid"
          },
          "message": {
            "type": "object",
            "properties": {
              "receiver": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The Bird receiver object for the channel message."
              },
              "body": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The Bird message body object, such as a text, image, file, gif, location, carousel, list, section, or template-compatible body."
              },
              "template": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The optional Bird template object for the channel message."
              },
              "sender": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The optional Bird sender object for the channel message."
              },
              "reference": {
                "type": "string",
                "minLength": 1,
                "description": "A caller-defined message reference.",
                "pattern": "\\S"
              },
              "meta": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The optional Bird metadata object for the channel message."
              },
              "replyTo": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw object returned by Bird."
              },
              "notification": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw object returned by Bird."
              },
              "capFrequency": {
                "type": "boolean",
                "description": "Whether to apply Bird frequency capping rules."
              },
              "enableLinkTracking": {
                "type": "boolean",
                "description": "Whether Bird should append UTM parameters to links."
              },
              "ignoreQuietHours": {
                "type": "boolean",
                "description": "Whether to ignore quiet hours settings."
              },
              "ignoreGlobalHoldout": {
                "type": "boolean",
                "description": "Whether to skip global holdout checks."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A Bird message tag.",
                  "pattern": "\\S"
                },
                "description": "Tags to associate with the message.",
                "minItems": 1,
                "maxItems": 10
              },
              "shortLinks": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw object returned by Bird."
              },
              "scheduledFor": {
                "type": "string",
                "description": "The RFC3339 time when Bird should send the message.",
                "format": "date-time"
              },
              "validity": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of seconds for which the message remains valid."
              }
            },
            "additionalProperties": false,
            "required": [
              "receiver"
            ],
            "description": "A Bird channel message request. Provide either body or template."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for sending a Bird channel message."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "messageId": {
            "anyOf": [
              {
                "type": "string",
                "description": "The Bird channel message ID.",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "messageId",
          "message"
        ],
        "description": "The response returned when sending a Bird channel message."
      }
    },
    {
      "id": "bird.update_contact",
      "service": "bird",
      "name": "update_contact",
      "description": "Update a Bird contact's identifiers, attributes, or list memberships.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The Bird workspace ID.",
            "format": "uuid"
          },
          "contactId": {
            "type": "string",
            "description": "The Bird contact ID.",
            "format": "uuid"
          },
          "patch": {
            "type": "object",
            "properties": {
              "addIdentifiers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The Bird contact identifier key, such as emailaddress or phonenumber.",
                      "pattern": "\\S"
                    },
                    "value": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The Bird contact identifier value.",
                      "pattern": "\\S"
                    }
                  },
                  "additionalProperties": false,
                  "description": "A Bird contact identifier."
                },
                "description": "Identifiers to add to the contact.",
                "minItems": 1
              },
              "attributes": {
                "type": "object",
                "additionalProperties": {
                  "description": "A Bird contact attribute value."
                },
                "description": "Bird contact attributes keyed by attribute name."
              },
              "addToLists": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "A Bird contact list ID.",
                  "format": "uuid"
                },
                "description": "Bird contact list IDs.",
                "minItems": 1
              }
            },
            "additionalProperties": false,
            "description": "The Bird contact update fields."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for updating a Bird contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Bird."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact"
        ],
        "description": "The response returned when updating a Bird contact."
      }
    }
  ]
}
