# Hashnode > Hashnode is a blogging platform for developers. Its public API is a single > GraphQL endpoint covering posts, drafts, publications, users, tags, series and > comments. As of 2026-05-13 the API is a paid feature: anonymous public reads > still work, but every publication-scoped read and every mutation requires the > TARGET publication to hold an active Hashnode Pro plan. Hashnode ships no > OpenAPI and no MCP server — the schema is the contract, and the official agent > surface is an Agent Skill. Generated by API Evangelist on 2026-08-13. Hashnode does not publish an llms.txt for its own API: https://hashnode.com/llms.txt returns HTTP 200 with the site's HTML application shell. (Growth-plan customer publications do serve their own /llms.txt — that is a product feature of a customer's blog, not a document about this API.) ## Endpoint - [GraphQL endpoint](https://gql-beta.hashnode.com/): POST GraphQL here. Introspection is enabled and anonymous. - Retired: `https://gql.hashnode.com` now returns HTTP 301 to a deprecation notice on every request. - Retired: `apidocs.hashnode.com` no longer resolves (NXDOMAIN). ## Authentication - Personal Access Token in the `Authorization` header. The `Bearer` prefix is optional. - [Generate a token](https://hashnode.com/settings/developer) — Account Settings → Developer / API tokens. - Treat the token as a password: it grants full publish, edit and delete rights on the user's publications. - No OAuth, no OIDC, no scopes. ## Access rules - Public, no token: `post`, `feed`, `user`, `tag`, `documentationProject`, `checkCustomDomainAvailability`, `checkSubdomainAvailability`. - Pro publication required (no token needed): `publication`, `searchPostsOfPublication`, `topCommenters`. - Token required: `me`, `createImageUploadURL`. - Token + Pro publication required: `draft`, `scheduledPost`, and all 8 write mutations. - The Pro gate returns `FORBIDDEN` with "Publication does not have an active Pro plan." Do not retry — it will not clear. ## Specs - [GraphQL SDL](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/graphql/hashnode-gql-api.graphql): full introspection schema, 123 types, 13 queries, 9 mutations. - [Introspection response](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/graphql/hashnode-introspection.json): captured live 2026-08-13. - No OpenAPI. No AsyncAPI. No JSON Schema. ## Agent surface - [Official Agent Skill](https://github.com/Hashnode/gql-skill) — `npx skills add Hashnode/gql-skill`. Works with Claude Code, Cursor, GitHub Copilot and other skills-compatible agents. - No MCP server, by Hashnode's own stated design. - No A2A agent card. - Articles are readable as raw markdown: append `.md` to any article URL, or send `Accept: text/markdown`. ## Artifacts - [Authentication](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/authentication/hashnode-authentication.yml) - [Conventions](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/conventions/hashnode-conventions.yml) - [Error codes](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/errors/hashnode-error-codes.yml) - [Rate limits](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/rate-limits/hashnode-rate-limits.yml) - [Plans and pricing](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/plans/hashnode-plans-pricing.yml) - [Data model](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/data-model/hashnode-data-model.yml) - [Lifecycle](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/lifecycle/hashnode-lifecycle.yml) - [Changelog](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/changelog/hashnode-changelog.yml) - [Webhooks](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/asyncapi/hashnode-webhooks.yml) - [Conformance](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/conformance/hashnode-conformance.yml) - [Packages](https://raw.githubusercontent.com/api-evangelist/hashnode/refs/heads/main/packages/hashnode-packages.yml) ## Limits - Max query depth: 10. - Page size: 100 on most connections, 50 on drafts. Over-cap requests are silently clamped, not errored. - Request body: 100 KB. Image upload: 8 MB, `image/*` only, no SVG. - Tags per post: 15. Co-authors per post: 4. - Query responses may be cached ~25s; mutations are never cached. - Published rate targets are 20,000 queries/min and 500 mutations/min, but Hashnode states rate limiting is not currently enforced. - No idempotency key exists. A retried `publishPost` creates a duplicate post. ## Docs - [Hashnode Pro (pricing and API access)](https://hashnode.com/pro) - [Changelog](https://hashnode.com/changelog) - [GraphQL API paid-access announcement](https://hashnode.com/changelog/2026-05-13-graphql-api-paid-access) - [Status page](https://status.hashnode.com/) - [GitHub organization](https://github.com/Hashnode) - [Terms](https://hashnode.com/terms) - [Privacy Policy](https://hashnode.com/privacy-policy)