# Slack Webhook

Source: https://recoupable.dev/docs/api-reference/content-agent/webhook

Webhook endpoint for the Recoup Content Agent Slack bot. Receives @mention events from Slack and triggers content generation for the mentioned artist. The bot parses the mention text for `<artist_account_id> [template] [batch=N] [lipsync]`, validates the artist, calls POST /api/content/create, and starts a background polling task that reports results back to the Slack thread.

## POST /api/content-agent/{platform}

Full OpenAPI specification: https://recoupable.dev/docs/spec/content.json

## Authentication

The supplied specification does not declare an OpenAPI security object for this operation. Its declared headers and parameters still apply. Consult the authentication guide and the full specification before calling it.

[Authentication guide](https://recoupable.dev/docs/authentication)

## Operation and referenced schemas

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Recoup API - Content",
    "description": "API documentation for the Recoup platform - an AI agent platform for the music industry",
    "license": {
      "name": "MIT"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.recoupable.dev"
    }
  ],
  "paths": {
    "/api/content-agent/{platform}": {
      "post": {
        "description": "Webhook endpoint for the Recoup Content Agent Slack bot. Receives @mention events from Slack and triggers content generation for the mentioned artist. The bot parses the mention text for `<artist_account_id> [template] [batch=N] [lipsync]`, validates the artist, calls POST /api/content/create, and starts a background polling task that reports results back to the Slack thread.\n\nFor Slack, also handles `url_verification` challenges during app setup.",
        "parameters": [
          {
            "name": "platform",
            "in": "path",
            "description": "Chat platform identifier. Currently supports `slack`.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "slack"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "Slack Events API payload (app_mention event or url_verification challenge)",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Slack Events API envelope — the shape depends on the event type"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Event processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown platform"
          }
        }
      }
    }
  }
}
```
