Ghost · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Ghost Content and Admin Admin - Posts API

7 actions 7 updates phrasing extends openapi/ghost-org-admin-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['/admin/posts/'].get
$.paths['/admin/posts/'].post
$.paths['/admin/posts/{id}/'].get
$.paths['/admin/posts/{id}/'].put
$.paths['/admin/posts/{id}/'].delete
$.paths['/admin/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 Content and Admin Admin - Posts API
  version: 1.0.0
extends: openapi/ghost-org-admin-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['/admin/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 sort posts by publish date and only return certain fields?
      - Which filters can narrow down my post list, like by tag or status?
      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} and only the {fields} fields.
        slots:
          include: query.include
          fields: query.fields
      method: generated
      generated: '2026-09-26'
- target: $.paths['/admin/posts/'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a post
      effect: write
      questions:
      - How do I create a new blog post through the Admin API?
      - Can I write the post content in HTML rather than Lexical?
      instructions:
      - text: Create a new post from {posts}.
        slots:
          posts: requestBody.posts
      - text: Create a draft post with {source} content.
        slots:
          source: query.source
      method: generated
      generated: '2026-09-26'
- target: $.paths['/admin/posts/{id}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a post by ID
      effect: read
      questions:
      - How do I get one post by its ID, even if it's unpublished?
      - Can I get a post's content back in HTML format?
      instructions:
      - text: Get post {id}.
        slots:
          id: path.id
      - text: Fetch post {id} with its content in {formats}.
        slots:
          id: path.id
          formats: query.formats
      method: generated
      generated: '2026-09-26'
- target: $.paths['/admin/posts/{id}/'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a post
      effect: write
      questions:
      - How do I edit a post that's already been created?
      - Why does updating a post need the current updated_at value?
      instructions:
      - text: Update post {id} with {posts}.
        slots:
          id: path.id
          posts: requestBody.posts
      - text: Edit post {id} and send the new body as {source}.
        slots:
          id: path.id
          source: query.source
      method: generated
      generated: '2026-09-26'
- target: $.paths['/admin/posts/{id}/'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a post
      effect: destructive
      questions:
      - How do I permanently remove a blog post?
      - Can I delete a post if I only know its ID?
      instructions:
      - text: Delete post {id}.
        slots:
          id: path.id
      - text: Remove post {id} from the blog.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/admin/posts/slug/{slug}/'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a post by its URL slug
      effect: read
      questions:
      - How do I find a post when I only know its URL slug?
      - Can I look up a post from the last part of its link?
      instructions:
      - text: Get the post with slug {slug}.
        slots:
          slug: path.slug
      - text: Look up post {slug} by its slug.
        slots:
          slug: path.slug
      method: generated
      generated: '2026-09-26'

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/ghost-org-admin-posts-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.