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

# Ghost posts webhook

> Webhook endpoint that Ghost calls when posts are created or updated. Creates or updates content in BeyondWords when a post is published or scheduled.

Webhook endpoint that Ghost calls when posts are created or updated. Creates or updates content in BeyondWords when a post is published or scheduled.

Configure this URL in your Ghost custom integration. Authenticate requests with the `api_key` query parameter using your project API key.

See the [Ghost integration guide](/docs-and-guides/integrations/publishing-platforms/ghost).


## OpenAPI

````yaml post /projects/{project_id}/integrations/ghost/posts
openapi: 3.0.1
info:
  title: BeyondWords REST API
  description: |-
    This is the documentation for the BeyondWords REST API.
              You can use this API to use BeyondWords programmatically.
              You can get your API Key and Project ID for each project in the Project settings tab in the BeyondWords
              <a href="https://dash.beyondwords.io/dashboard">dashboard</a>.
  version: 1.0.0
servers:
  - url: https://api.beyondwords.io/v1
security: []
paths:
  /projects/{project_id}/integrations/ghost/posts:
    parameters:
      - name: project_id
        in: path
        description: The numeric ID of your project
        required: true
        schema:
          type: string
      - name: api_key
        in: query
        description: Publisher API key
        schema:
          type: string
    post:
      tags:
        - Ghost
      summary: Ghost posts webhook
      description: >-
        Webhook endpoint that Ghost calls when posts are created or updated.
        Creates or updates content in BeyondWords when a post is published or
        scheduled.
      operationId: ghost#posts
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: unpublishes existing content item when skipped tag is added
        '201':
          description: creates new content item when post status is scheduled
        '204':
          description: does not create a new content item when skip tag is present
        '400':
          description: bad request when post key is missing
        '401':
          description: unauthorized when api_key is invalid
        '403':
          description: forbidden when existing content item has cms_update_enabled=false

````