> ## Documentation Index
> Fetch the complete documentation index at: https://docs.surnex.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Post v1webhooksmarketingblog



## OpenAPI

````yaml https://api.surnex.io/.well-known/openapi.json post /v1/webhooks/marketing/blog
openapi: 3.1.0
info:
  title: Surnex API
  version: 0.2.0
servers:
  - url: https://api.surnex.io
security: []
paths:
  /v1/webhooks/marketing/blog:
    post:
      tags:
        - marketing
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                event_id:
                  type: string
                  minLength: 1
                slug:
                  type: string
                  minLength: 1
                  maxLength: 190
                title:
                  type: string
                  minLength: 1
                description:
                  type: string
                  minLength: 1
                published_at:
                  type: string
                  format: date-time
                updated_at:
                  type: string
                  format: date-time
                author:
                  type: string
                  minLength: 1
                tags:
                  type: array
                  items:
                    type: string
                    minLength: 1
                  default: []
                status:
                  type: string
                  enum:
                    - draft
                    - published
                  default: published
                content_markdown:
                  type: string
                  minLength: 1
                hero_image_url:
                  type: string
                  format: uri
                excerpt:
                  type: string
                  minLength: 1
                checksum:
                  type: string
              required:
                - event_id
                - slug
                - title
                - description
                - published_at
                - updated_at
                - author
                - content_markdown
                - excerpt
              description: MarketingBlogIngestionInput
            examples:
              publish:
                value:
                  event_id: evt_3f2bce4a
                  slug: search-intent-update-q1
                  title: How LLM Search Changes Content Strategy in 2026
                  description: >-
                    A practical model for balancing traditional SEO and LLM
                    discoverability.
                  published_at: '2026-02-25T00:00:00Z'
                  updated_at: '2026-02-26T00:00:00Z'
                  author: Editorial Team
                  tags:
                    - seo
                    - ai
                    - llm
                  status: published
                  content_markdown: '# Heading\n\nKeep content structured...'
                  hero_image_url: https://surnex.io/assets/opengraph/default-hero.png
                  excerpt: >-
                    A practical model for balancing traditional SEO and LLM
                    discoverability.
                  checksum: abc123
      responses:
        '200':
          description: Webhook ingestion result
          content:
            application/json:
              schema:
                type: object
                properties:
                  request_id:
                    type: string
                  event_id:
                    type: string
                  slug:
                    type: string
                  status:
                    type: string
                    enum:
                      - accepted
                      - noop
                      - failed
                  commit_sha:
                    type: string
                required:
                  - request_id
                  - event_id
                  - slug
                  - status
                description: MarketingBlogIngestionResult
              examples:
                accepted:
                  value:
                    request_id: req_123
                    event_id: evt_3f2bce4a
                    slug: search-intent-update-q1
                    status: accepted
                    commit_sha: abc123456
                noop:
                  value:
                    request_id: req_123
                    event_id: evt_3f2bce4a
                    slug: search-intent-update-q1
                    status: noop
                failed:
                  value:
                    request_id: req_123
                    event_id: evt_3f2bce4a
                    slug: search-intent-update-q1
                    status: failed
        '400':
          description: Invalid payload
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                      details:
                        type: object
                        properties: {}
                        default: {}
                        additionalProperties: {}
                    required:
                      - code
                      - message
                      - request_id
                required:
                  - error
                description: ErrorResponse
              examples:
                badRequest:
                  value:
                    error:
                      code: VALIDATION_ERROR
                      message: Invalid request
                      request_id: req_123
                      details:
                        issues:
                          - path:
                              - slug
                            message: Invalid slug
                            code: invalid_format
        '401':
          description: Missing or invalid webhook signature
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      request_id:
                        type: string
                      details:
                        type: object
                        properties: {}
                        default: {}
                        additionalProperties: {}
                    required:
                      - code
                      - message
                      - request_id
                required:
                  - error
                description: ErrorResponse
              examples:
                unauthorized:
                  value:
                    error:
                      code: UNAUTHORIZED
                      message: Invalid webhook signature
                      request_id: req_123
                      details:
                        reason: missing_signature_header

````