{
  "service": "bannerbear",
  "displayName": "Bannerbear",
  "categories": [
    "Design & Media",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "bb_live_...",
      "description": "Bannerbear Project API Key or Full Access Master API Key sent as an Authorization Bearer token. Find Project API Keys in Project Settings or manage Master API Keys at https://app.bannerbear.com/account/api_keys",
      "extraFields": [
        {
          "key": "projectId",
          "label": "Project UID",
          "inputType": "text",
          "required": false,
          "secret": false,
          "placeholder": "Y7qXEd1n46kZP8GAr3",
          "description": "Optional Bannerbear project UID used when validating a Full Access Master API Key. Project API Keys are already scoped to one project and can leave this blank."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.bannerbear.com/",
  "actions": [
    {
      "id": "bannerbear.create_image_sync",
      "service": "bannerbear",
      "name": "create_image_sync",
      "description": "Create a Bannerbear image synchronously from a template and return the generated media URLs.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "template": {
            "type": "string",
            "minLength": 1,
            "description": "The template UID to use."
          },
          "modifications": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The name of the template layer to modify."
                },
                "text": {
                  "type": "string",
                  "description": "Replacement text for a text layer."
                },
                "color": {
                  "type": "string",
                  "description": "Color in hex format, such as #FF0000."
                },
                "background": {
                  "type": "string",
                  "description": "Background color in hex format, such as #FF0000."
                },
                "background_border_color": {
                  "type": "string",
                  "description": "Background border color in hex format, such as #FF0000."
                },
                "font_family": {
                  "type": "string",
                  "description": "The font family to use for a text layer."
                },
                "text_align_h": {
                  "type": "string",
                  "enum": [
                    "left",
                    "center",
                    "right"
                  ],
                  "description": "Horizontal text alignment."
                },
                "text_align_v": {
                  "type": "string",
                  "enum": [
                    "top",
                    "center",
                    "bottom"
                  ],
                  "description": "Vertical text alignment."
                },
                "font_family_2": {
                  "type": "string",
                  "description": "The secondary font family to use for a text layer."
                },
                "color_2": {
                  "type": "string",
                  "description": "The secondary font color in hex format."
                },
                "image_url": {
                  "type": "string",
                  "description": "Public image URL to use for an image layer.",
                  "format": "uri"
                },
                "effect": {
                  "type": "string",
                  "description": "The Bannerbear image effect to apply."
                },
                "anchor_x": {
                  "type": "string",
                  "enum": [
                    "left",
                    "center",
                    "right"
                  ],
                  "description": "Horizontal image anchor point."
                },
                "anchor_y": {
                  "type": "string",
                  "enum": [
                    "top",
                    "center",
                    "bottom"
                  ],
                  "description": "Vertical image anchor point."
                },
                "fill_type": {
                  "type": "string",
                  "enum": [
                    "fill",
                    "fit"
                  ],
                  "description": "Image fill mode."
                },
                "disable_face_detect": {
                  "type": "boolean",
                  "description": "Whether to disable face detection for this image layer."
                },
                "disable_smart_crop": {
                  "type": "boolean",
                  "description": "Whether to disable smart crop for this image layer."
                },
                "chart_data": {
                  "type": "string",
                  "description": "Comma-delimited chart data values for chart layers."
                },
                "rating": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 100,
                  "description": "Star rating value from 0 to 100."
                },
                "target": {
                  "type": "string",
                  "description": "QR code target URL or text."
                },
                "bar_code_data": {
                  "type": "string",
                  "description": "Text to encode as a bar code."
                },
                "gradient": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  },
                  "description": "Gradient colors, such as #000 and #FFF.",
                  "minItems": 1
                },
                "shadow": {
                  "type": "string",
                  "description": "Layer shadow setting, such as 5px 5px 0 #000."
                }
              },
              "additionalProperties": true,
              "required": [
                "name"
              ],
              "description": "One Bannerbear template modification."
            },
            "description": "Template layer modifications to apply.",
            "minItems": 1
          },
          "transparent": {
            "type": "boolean",
            "description": "Whether to render a transparent PNG."
          },
          "render_pdf": {
            "type": "boolean",
            "description": "Whether to also render a PDF."
          },
          "metadata": {
            "type": "string",
            "description": "Custom metadata to store with the generated image."
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Bannerbear project UID. Required when using a Full Access Master API Key."
          }
        },
        "additionalProperties": false,
        "required": [
          "template",
          "modifications"
        ],
        "description": "Input parameters for synchronously creating a Bannerbear image."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "image": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "string",
                "description": "The unique image UID."
              },
              "status": {
                "type": "string",
                "description": "The current image status, such as pending, completed, or failed."
              },
              "self": {
                "type": "string",
                "description": "The API URL for this image.",
                "format": "uri"
              },
              "image_url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The generated media URL.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pdf_url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The generated media URL.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "template": {
                "type": "string",
                "description": "The template UID used to create the image."
              },
              "width": {
                "type": "integer",
                "description": "The rendered image width in pixels."
              },
              "height": {
                "type": "integer",
                "description": "The rendered image height in pixels."
              },
              "metadata": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Custom metadata stored with the image."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "created_at": {
                "type": "string",
                "description": "The image creation timestamp."
              },
              "render_pdf": {
                "type": "boolean",
                "description": "Whether PDF rendering was requested."
              },
              "transparent": {
                "type": "boolean",
                "description": "Whether transparent background rendering was requested."
              },
              "webhook_url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The webhook URL notified on completion.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "webhook_response_code": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The HTTP status code returned by the webhook endpoint."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "modifications": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The layer name."
                    }
                  },
                  "additionalProperties": true,
                  "description": "One modification returned by Bannerbear."
                },
                "description": "The modifications applied to the template."
              }
            },
            "additionalProperties": true,
            "description": "One Bannerbear image."
          }
        },
        "additionalProperties": false,
        "description": "The synchronously generated Bannerbear image."
      }
    },
    {
      "id": "bannerbear.get_auth",
      "service": "bannerbear",
      "name": "get_auth",
      "description": "Verify a Bannerbear API key and return the project it is scoped to.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Bannerbear project UID. Required when using a Full Access Master API Key."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for verifying Bannerbear authentication."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "The authentication status message."
          },
          "project": {
            "type": "string",
            "description": "The Bannerbear project name."
          }
        },
        "additionalProperties": false,
        "description": "The Bannerbear authentication status."
      }
    },
    {
      "id": "bannerbear.get_image",
      "service": "bannerbear",
      "name": "get_image",
      "description": "Retrieve one Bannerbear image by UID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "minLength": 1,
            "description": "The Bannerbear resource UID."
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Bannerbear project UID. Required when using a Full Access Master API Key."
          }
        },
        "additionalProperties": false,
        "required": [
          "uid"
        ],
        "description": "Input parameters for retrieving a Bannerbear image."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "image": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "string",
                "description": "The unique image UID."
              },
              "status": {
                "type": "string",
                "description": "The current image status, such as pending, completed, or failed."
              },
              "self": {
                "type": "string",
                "description": "The API URL for this image.",
                "format": "uri"
              },
              "image_url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The generated media URL.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pdf_url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The generated media URL.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "template": {
                "type": "string",
                "description": "The template UID used to create the image."
              },
              "width": {
                "type": "integer",
                "description": "The rendered image width in pixels."
              },
              "height": {
                "type": "integer",
                "description": "The rendered image height in pixels."
              },
              "metadata": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Custom metadata stored with the image."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "created_at": {
                "type": "string",
                "description": "The image creation timestamp."
              },
              "render_pdf": {
                "type": "boolean",
                "description": "Whether PDF rendering was requested."
              },
              "transparent": {
                "type": "boolean",
                "description": "Whether transparent background rendering was requested."
              },
              "webhook_url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The webhook URL notified on completion.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "webhook_response_code": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The HTTP status code returned by the webhook endpoint."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "modifications": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The layer name."
                    }
                  },
                  "additionalProperties": true,
                  "description": "One modification returned by Bannerbear."
                },
                "description": "The modifications applied to the template."
              }
            },
            "additionalProperties": true,
            "description": "One Bannerbear image."
          }
        },
        "additionalProperties": false,
        "description": "The Bannerbear image result."
      }
    },
    {
      "id": "bannerbear.get_template",
      "service": "bannerbear",
      "name": "get_template",
      "description": "Retrieve one Bannerbear template by UID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "minLength": 1,
            "description": "The Bannerbear resource UID."
          },
          "extended": {
            "type": "boolean",
            "description": "Whether to include current layer defaults."
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Bannerbear project UID. Required when using a Full Access Master API Key."
          }
        },
        "additionalProperties": false,
        "required": [
          "uid"
        ],
        "description": "Input parameters for retrieving a Bannerbear template."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "template": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "string",
                "description": "The unique template UID."
              },
              "name": {
                "type": "string",
                "description": "The template name."
              },
              "self": {
                "type": "string",
                "description": "The API URL for this template.",
                "format": "uri"
              },
              "width": {
                "type": "integer",
                "description": "The template width in pixels."
              },
              "height": {
                "type": "integer",
                "description": "The template height in pixels."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "Tags assigned to this template."
              },
              "metadata": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Custom metadata stored with the template."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "preview_url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The template preview image URL.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "created_at": {
                "type": "string",
                "description": "The template creation timestamp."
              },
              "updated_at": {
                "type": "string",
                "description": "The template update timestamp."
              },
              "available_modifications": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The layer name."
                    }
                  },
                  "additionalProperties": true,
                  "description": "One modification returned by Bannerbear."
                },
                "description": "Available layer modifications for this template."
              },
              "current_defaults": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "One current layer default returned by Bannerbear."
                },
                "description": "Current layer defaults returned when extended=true."
              }
            },
            "additionalProperties": true,
            "description": "One Bannerbear template."
          }
        },
        "additionalProperties": false,
        "description": "The Bannerbear template result."
      }
    },
    {
      "id": "bannerbear.list_templates",
      "service": "bannerbear",
      "name": "list_templates",
      "description": "List Bannerbear templates in the connected project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page of results to retrieve. Bannerbear returns 25 items per page."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of templates to return, up to 100."
          },
          "tag": {
            "type": "string",
            "minLength": 1,
            "description": "Filter templates by tag."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filter templates by partial name match."
          },
          "extended": {
            "type": "boolean",
            "description": "Whether to include current layer defaults."
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Bannerbear project UID. Required when using a Full Access Master API Key."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Bannerbear templates."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "templates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uid": {
                  "type": "string",
                  "description": "The unique template UID."
                },
                "name": {
                  "type": "string",
                  "description": "The template name."
                },
                "self": {
                  "type": "string",
                  "description": "The API URL for this template.",
                  "format": "uri"
                },
                "width": {
                  "type": "integer",
                  "description": "The template width in pixels."
                },
                "height": {
                  "type": "integer",
                  "description": "The template height in pixels."
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  },
                  "description": "Tags assigned to this template."
                },
                "metadata": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Custom metadata stored with the template."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "preview_url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The template preview image URL.",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "created_at": {
                  "type": "string",
                  "description": "The template creation timestamp."
                },
                "updated_at": {
                  "type": "string",
                  "description": "The template update timestamp."
                },
                "available_modifications": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The layer name."
                      }
                    },
                    "additionalProperties": true,
                    "description": "One modification returned by Bannerbear."
                  },
                  "description": "Available layer modifications for this template."
                },
                "current_defaults": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "One current layer default returned by Bannerbear."
                  },
                  "description": "Current layer defaults returned when extended=true."
                }
              },
              "additionalProperties": true,
              "description": "One Bannerbear template."
            },
            "description": "Templates returned by Bannerbear."
          }
        },
        "additionalProperties": false,
        "description": "The Bannerbear templates list."
      }
    }
  ]
}
