{ "openapi": "3.0.1", "info": { "title": "Farcaster Webhooks API", "version": "1.0", "description": "These APIs allow you to create and manage webhook subscriptions for listening to events on the Farcaster network." }, "servers": [ { "url": "https://webhooks.airstack.xyz" } ], "security": [ { "ApiKeyAuth": [] } ], "paths": { "/api/v1/webhooks": { "post": { "security": [ { "ApiKeyAuth": [] } ], "tags": ["Webhooks"], "summary": "Create a new webhook.", "operationId": "subscriptionsCreate", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "endpoint": { "description": "The endpoint that the webhook will push data to. For testing, you can use [webhook.site](https://webhook.site)", "example": "https://webhook.site/6833", "type": "string" }, "filter_config": { "required": ["eventTypes"], "type": "object", "description": "Webhook filter configurations.", "properties": { "eventTypes": { "type": "array", "items": { "type": "string" } }, "filter": { "type": "object" }, "payload": { "type": "object" } } } } } } } }, "responses": { "200": { "description": "The endpoint will response message whether the webhooks is created successfully or not", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "boolean" }, "webhook_id": { "type": "string" }, "portal_link": { "type": "string" }, "message": { "type": "string" }, "authentication": { "type": "object", "properties": { "api_key": { "type": "object", "properties": { "header_name": { "type": "string" }, "header_value": { "type": "string" } } } } } } }, "example": { "status": true, "webhook_id": "01HYCNMKBZJP6HXS164RYMY7ZY", "portal_link": "https://apiserver.instance-fm94fpopa.hc-fhtewk6q9.us-east-2.aws.f2e0a955bb84.cloud/portal?token=q2SOhdM1Oz7Hf5N90tXLrnoT", "message": "Successfully created webhook", "authentication": { "api_key": { "header_name": "", "header_value": "" } } } } } } } } }, "/api/v1/filters/test": { "post": { "security": [ { "ApiKeyAuth": [] } ], "tags": ["Webhooks"], "summary": "Validate webhook filter configuration.", "operationId": "subscriptionsTestFilter", "requestBody": { "content": { "application/json": { "schema": { "required": ["eventTypes"], "type": "object", "description": "Webhook filter configurations.", "properties": { "eventTypes": { "type": "array", "items": { "type": "string" } }, "filter": { "type": "object" }, "payload": { "type": "object" } } } } } }, "responses": { "200": { "description": "Status whether the filter configuration is valid or not.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "boolean" } } }, "example": { "status": true } } } } } } }, "/api/v1/webhooks/{webhook_id}": { "delete": { "security": [ { "ApiKeyAuth": [] } ], "tags": ["Webhooks"], "summary": "Delete an existing webhook.", "operationId": "subscriptionsDelete", "parameters": [ { "name": "webhook_id", "in": "path", "required": true, "description": "The webhook ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The endpoint will response message whether the webhooks is deleted successfully or not", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "status": { "type": "boolean" } } }, "example": { "message": "Webhook deleted successfully", "status": true } } } } } } } }, "components": { "securitySchemes": { "ApiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization" } } } }