How to Create and Get Tags in Ghost via the Admin API

If you're building a blog with Ghost and want more control over your content structure, tags are essential. But there's a catch: the official Ghost Admin API documentation doesn’t currently include endpoints for managing tags.

Undocumented Tags

So I started digging. I realized that, if the documentation mentioned that the endpoints exists but they are not yet documented, they must exist. I just need to find them.

How I Discovered The Endpoints

I logged into my Ghost admin dashboard and opened my browser’s Developer Tools (usually F12 or Cmd + Option + I). Then I went to the Network tab, filtered the requests by XHR, and created a new tag through the UI.

Sure enough, I saw a POST request to /ghost/api/admin/tags/—complete with a JSON payload and authorization headers using the Admin API key.

Network Request 1
Network Request 2
Network Request 3

I used this information, together with the information on the Ghost Admin API docs about the documented endpoints, to put together the requests that enabled me to automate tag reading and creation.


Ghost Admin API Tag Endpoints

⚠️ All endpoints require authentication via the Admin API key (NOT the Content API key).

🔹 1. Get Tags

Endpoint:

GET /ghost/api/admin/tags/

Response:

{
  "tags": [
    {
      "id": "123",
      "name": "tech",
      "slug": "tech"
    }
  ]
}

🔹 2. Create Tag

Endpoint:

POST /ghost/api/admin/tags/

Payload:

{
  "tags": [
    {
      "name": "my-new-tag",
      "slug": "my-new-tag",
      "description": "This is a new tag"
    }
  ]
}

Response: Returns the created tag object.