Ghost · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Ghost Org Posts API

7 actions 7 updates phrasing extends openapi/ghost-org-posts-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Ghost's API. It is a proposal applied on top of the contract, not a document Ghost publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 7

$.info
$.paths['/posts/'].get
$.paths['/posts/'].post
$.paths['/posts/{id}/'].get
$.paths['/posts/{id}/'].put
$.paths['/posts/{id}/'].delete
$.paths['/posts/slug/{slug}/'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Ghost Org Posts API
  version: 1.0.0
extends: openapi/ghost-org-posts-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 6
- target: $.paths['/posts/'].get
  update:
    x-apievangelist-phrasing:
      intent: List posts including drafts
      effect: read
      questions:
      - How do I list all my posts including drafts and scheduled ones?
      - Can I filter posts by tag and sort by publish date?
      - Which related data can I include when listing posts?
      instructions:
      - text: List posts matching {filter}.
        slots:
          filter: query.filter
      - text: Show me {limit} posts ordered by {order}.
        slots:
          limit: query.limit
          order: query.order
      - text: List posts with {include} in {formats} format.
        slots:
          include: query.include
          formats: query.formats
      method: generated
      generated: '2026-09-26'
- target: $.paths['/posts/'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a post
      effect: write
      questions:
      - How do I publish a new blog post programmatically?
      - Can I tag a new post with a tag that doesn't exist yet?
      - Is the title the only required field for a new post?
      instructions:
      - text: Create post {posts}.
        slots:
          posts: requestBody.posts
      - text: Write a new draft post with the title and HTML body in {posts}.
        slots:
          posts: requestBody.posts
      method: generated
      generated: '2026-09-26'
- target: $.paths['/posts/{id}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a post by ID
      effect: read
      questions:
      - How do I load one post by ID, including drafts and scheduled ones?
      - Can I get a single post's content as HTML?
      instructions:
      - text: Get post {id}.
        slots:
          id: path.id
      - text: Get post {id} with content in {formats}.
        slots:
          id: path.id
          formats: query.formats
      method: generated
      generated: '2026-09-26'
- target: $.paths['/posts/{id}/'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a post
      effect: write
      questions:
      - How do I edit a post without resending every field?
      - Why does editing a post need the current updated_at?
      instructions:
      - text: Update post {id} with {posts}.
        slots:
          id: path.id
          posts: requestBody.posts
      - text: Change the title of post {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/posts/{id}/'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a post
      effect: destructive
      questions:
      - How do I permanently delete a blog post?
      - Can a deleted post be restored?
      instructions:
      - text: Delete post {id}.
        slots:
          id: path.id
      - text: Permanently remove post {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/posts/slug/{slug}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a published post by slug
      effect: read
      questions:
      - How do I find a post when I know its URL but not its ID?
      - Can I look up a published post by slug?
      instructions:
      - text: Get the post with slug {slug}.
        slots:
          slug: path.slug
      - text: Look up post {slug} with {include}.
        slots:
          slug: path.slug
          include: query.include
      method: generated
      generated: '2026-09-26'