All integrations

Hashnode

MESSAGING · MESSAGING

Posts, drafts, and publications, written as the author who connected.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

hashnode_mutation_confirm_image_uploadWRITE

Confirm an image uploaded via the presigned PUT from Create Image Upload URL: verifies the object's size and DELETES it if over 8 MB (ok=false, cdnUrl null -- re-upload smaller). Always call this after the PUT; the cap is not enforced at upload time. Auth-only, not Pro-gated. via GraphQL mutation confirmImageUpload

api
hashnode_mutation_create_draftWRITE

Create a draft in a publication without publishing (title, contentMarkdown, tags, series, SEO metaTags, cover image options; contributors' entry point). PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL mutation createDraft

api
hashnode_mutation_create_image_upload_u_r_lWRITE

Mint a presigned upload target for an image (contentType must start with image/, no SVG, max 8 MB). Returns presignedPut {url, cdnUrl, key}: PUT the raw bytes to url, then call Confirm Image Upload with key; cdnUrl is the final servable address. Auth-only, not Pro-gated. via GraphQL mutation createImageUploadURL

api
hashnode_mutation_delete_draftWRITE

Soft-delete a draft (sets it inactive). The draft's author can delete their own; owners/admins/authors can delete any draft in the publication. PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL mutation deleteDraft

api
hashnode_mutation_publish_draftWRITE

Publish an existing draft as a post; the draft is soft-deleted by the provider once the post exists. PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL mutation publishDraft

api
hashnode_mutation_publish_postWRITE

Publish a new post directly to a publication (title + contentMarkdown required; tags max 15, coAuthors max 4, optional slug/SEO/series/backdating). PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL mutation publishPost

api
hashnode_mutation_reject_draft_submissionWRITE

Reject a draft previously submitted for review, returning it to its author. Publication owners, admins and authors only. PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL mutation rejectDraftSubmission

api
hashnode_mutation_remove_postWRITE

Soft-delete a post: sets it inactive, drops it from feeds and listings, frees its slug. Role-restricted at the provider: the post's author or a publication admin only (co-authors get FORBIDDEN). Idempotent-safe: a second removal answers NOT_FOUND. PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL mutation removePost

api
hashnode_mutation_submit_draft_for_reviewWRITE

Submit a draft to a team publication's editor review queue -- the contributor path (contributors cannot publish directly). PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL mutation submitDraftForReview

api
hashnode_mutation_update_draftWRITE

Update an existing draft by draftId; all content fields optional. PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL mutation updateDraft

api
hashnode_mutation_update_postWRITE

Update an existing post by id; all content fields optional (mirrors Publish Post). PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL mutation updatePost

api
hashnode_query_check_custom_domain_availabilityREAD

Whether a custom domain is available for blog setup; returns {available, message}. Public read. via GraphQL query checkCustomDomainAvailability

api
hashnode_query_check_subdomain_availabilityREAD

Whether a hashnode.dev subdomain is available; returns {available, message}. Public read. via GraphQL query checkSubdomainAvailability

api
hashnode_query_documentation_projectREAD

A docs project by id or host, with its guides connection (cursor-paginated). Public read. via GraphQL query documentationProject

api
hashnode_query_draftREAD

A single draft by id. Requires authorization for the draft; an inaccessible draft answers NOT_FOUND by design (privacy), never FORBIDDEN -- do not retry expecting auth to fix it. PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL query draft

api
hashnode_query_feedREAD

The global post feed, cursor-paginated (first/after; filter by tags/publications and exclusions). Public read. via GraphQL query feed

api
hashnode_query_meREAD

The token's own account (id, username, email) plus its first 10 publications -- where publicationId for the write tools comes from. Requires the PAT. via GraphQL query me

api
hashnode_query_postREAD

A single post by id: content (markdown), author, tags, series, SEO and engagement counts. Public read. via GraphQL query post

api
hashnode_query_publicationREAD

A publication by id or host: metadata, SEO, AEO settings and a page of its posts (postsFirst/postsAfter). PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL query publication

api
hashnode_query_scheduled_postREAD

A scheduled post by id, including its underlying draft. Requires owning the scheduled post. PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL query scheduledPost

api
hashnode_query_search_posts_of_publicationREAD

Full-text/filtered search scoped to one publication (filter.publicationId required; author/tag/time filters, sortBy DATE_PUBLISHED_ASC|DESC). PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL query searchPostsOfPublication

api
hashnode_query_tagREAD

A tag by SLUG (always reference tags by slug) with follower and post counts and a page of its posts. Public read. via GraphQL query tag

api
hashnode_query_top_commentersREAD

Top commenters for a publication (publicationId required). PRO-GATED at the provider: answers FORBIDDEN unless the target publication has an active (paid) Pro plan -- a provider limit, not a credential problem. via GraphQL query topCommenters

api
hashnode_query_userREAD

A public profile by username: bio, social links, badges, follower counts and first publications. Public read. via GraphQL query user

api

Put Hashnode behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.