Hashnode Public API Docs

Welcome

This document describes the Hashnode Public API. The Hashnode Public API is a GraphQL API that allows you to interact with Hashnode.

Make sure to join our Discord server to be in the loop about any updates.

If you're seeing Errors with a 502 status code, it's highly likely that you are using api.hashnode.com. This was our legacy API and is now officially discontinued. Please use these docs and the migration guide to transition to our new GQL API.

GQL Playground

All Hashnode Public API queries are made through a single GraphQL endpoint, which only accepts POST requests.

https://gql.hashnode.com

You can visit the same URL to check out Hashnode API Playground.

Hashnode API Playground

You can query user details, publication information, posts within publications, drafts, and more. Please explore the playground to view all available fields.

Additionally, mutations are at your disposal for actions such as publishing posts, subscribing to newsletters, and following users. The complete list of these available mutations can be found within the playground.

If you're not familiar with GraphQL, be sure to check out this beginner-friendly guide on freeCodeCamp

Caching

Almost all responses of queries are cached on the Edge. Cached data will automatically be purged if you mutate the data. For example, if you request a post of your blog:

Cache Example

The playground shows you if a response is cached or not. You can see it in the bottom right corner (MISS or HIT).

🚧 Important: You need to request the field id of each field. It is best practice to always request the id. If you don't do that it is possible that you get stale data.

Rate Limits

We have a very generous rate limit in place which are as follows:

  • Query users are allowed to send up to 20k requests per minute.
  • Mutations users can send up to 500 requests per per minute.

Authentication

Almost all queries can be accessed without any authentication mechanism. Some sensitive fields need authentication. All mutations need an authentication header.

You can include an Authorization header in your request to access restricted fields. The value of the Authorization header needs to be your Personal Access Token (PAT).

You can test it in the GQL playground and click on the Headers tab to add the header.

Header

To generate the token, go to https://hashnode.com/settings/developer and click on "Generate New Token".

Developer Settings

Once the token is generated, simply pass it as Authorization header.

An example of a restricted query could be getting drafts inside any blog, it can only be queried by their respective owners.

query Publication($first: Int!, $host: String) { publication(host: $host) { drafts(first: $first) { edges { node { title } } } } } 

Similarly, anyone can request user details but certain fields like unsubscribeCode and email require an authorization header to be present.

Please ensure that you pass the token when requesting restricted fields; otherwise, the API will throw an error.

Status and Error Codes

GraphQL APIs use HTTP status codes to indicate the success or failure of a request. A 200 OK status code means the request was successful. In addition to HTTP status codes, GraphQL APIs also return error objects in response to specific errors.

These error objects have a code and message property. The code is a string that identifies the type of error. For example, you'll receive something like this if you try to request restricted fields without passing the authorization header.

{ "errors": [ { "message": "You must be authenticated.", "locations": [ { "line": 2, "column": 3 } ], "path": ["me"], "extensions": { "code": "UNAUTHENTICATED" } } ], "data": null } 

Some of the error codes are:

  1. GRAPHQL_VALIDATION_FAILED
  2. UNAUTHENTICATED
  3. FORBIDDEN
  4. BAD_USER_INPUT
  5. NOT_FOUND

You can check out this article to understand error codes in detail.

You must check for the presence of error objects along with error codes and messages to handle GraphQL errors in a structured way.

Pagination

When handling extensive lists of items in an API, such as many blog posts, it's practical to fetch them in smaller sets rather than all at once. This process is known as pagination. For instance, if your blog has 500 posts, retrieving them all simultaneously can be inefficient. A better approach is to initially fetch a subset, like 10 posts, and then continue loading more in small groups.

Hashnode offers two distinct pagination methods, each suited for different scenarios:

  1. Cursor-Based Pagination
  2. Offset-Based Pagination

Only one type of pagination is available for a query. You can distinguish the types of the type of response connection that is available. For cursor-based pagination the type PageInfo is available. For offset-based pagination the type OffsetPageInfo is available.

1. Cursor-Based Pagination

Cursor-based pagination is ideal for an infinite scrolling mechanism, where there is no fixed concept of pages. It uses a field named endCursor to keep track of the last item fetched. This cursor is then used to request subsequent items.

In this approach, the first API request does not include a cursor, and the API responds with the first set of results along with a new cursor. This new cursor is then utilized to fetch the next set of results.

Example Query in GraphQL

query Publication { publication(host: "blog.developerdao.com") { isTeam title posts( first: 10 after: "NjQxZTc4NGY0M2NiMzc2YjAyNzNkMzU4XzIwMjMtMDMtMjVUMDQ6Mjc6NTkuNjQxWg==" ) { edges { node { title brief url } } pageInfo { endCursor hasNextPage } } } } 

In this example, edges contains a list of nodes (the data), and the pageInfo object provides pagination details. Use pageInfo.hasNextPage to check for more data and pageInfo.endCursor for subsequent requests.

For more information, visit Relay Pagination Specification.

2. Offset-Based Pagination

Offset-based pagination is more traditional, involving distinct pages. It is suitable when you want to display data on specific pages or embed page information in URLs.

Example Query in GraphQL

query Followers { user(username: "SandroVolpicella") { id followers(pageSize: 10, page: 1) { pageInfo { hasNextPage hasPreviousPage previousPage nextPage } } } } 

In this method, pageInfo includes information about the availability of next and previous pages, allowing for easy navigation between different sets of data.

Breaking Changes

Breaking changes, while rare, can occur. Our aim is to minimize them. Stay updated by joining our Discord server.

When a breaking change is imminent, rest assured, we'll notify you beforehand. Affected fields, queries, or mutations will be deprecated in advance, ensuring you're well-prepared for the upcoming change.

Thank you for your understanding and collaboration.

Legacy API Migration

Overview

After the deprecation phase, our old legacy GraphQL API is now shutdown. To ensure that your apps are still working, follow this migration guide from the old API to the new API (gql.hashnode.com).

Migration Steps

Update API Endpoint

Replace the old API endpoint https://api.hashnode.com with the new GraphQL endpoint https://gql.hashnode.com.

Authentication Changes

If you were using authentication for the old API, ensure that your authentication mechanism remains valid for the new API. Check the documentation for how Authentication works in our GraphQL API.

Adjust Queries

Review your existing GraphQL queries and mutations. Some types and fields may have changed. Refer to the documentation for Examples and below to review the latest schema, query and mutation definitions.

Check Pagination

If your application relies on pagination, ensure that you are using the updated pagination methods provided by the new API. We offer two kinds of pagination: Cursor-Based Pagination and Offset-Based Pagination. Review the pagination guide in the docs on how these two are working.

Update Error Handling

The new API might have different error responses or codes. Update your error handling mechanisms to accommodate any changes in error formats. You can check out this article to understand error codes in detail.

Counts

If you want to access a count of some entity we provide them via the field totalDocuments on the connection of the attribute.

Let's see an example:

query SeriesCount { publication(host: "engineering.hashnode.com") { seriesList(first: 0) { totalDocuments } } } 

The result looks like that:

{ "data": { "publication": { "seriesList": { "totalDocuments": 3 } } } } 

The field totalDocuments shows you how many series are in the publication with the host engineering.hashnode.com. The totalDocuments field doesn't refer to how many items you request with first. This is independent of each other.

We don't expose this field for all connections, but for most of them.

Examples

Let’s look at some examples which might help you get started:

Fetch details about your publication

query Publication { publication(host: "blog.developerdao.com") { isTeam title about { markdown } } } 

Fetch posts from your blog

query Publication { publication(host: "blog.developerdao.com") { isTeam title posts(first: 10) { edges { node { title brief url } } } } } 

The queries support pagination, and let you fetch a full list of the posts to recreate your blog home page.

Fetch a single article (blog post)

query Publication { publication(host: "blog.developerdao.com") { isTeam title post(slug: "the-developers-guide-to-chainlink-vrf-foundry-edition") { title content { markdown html } } } } 

As long as you have your publication hostname and article slug, you can fetch it like the above.

Fetch posts from a series

query Publication { publication(host: "lo-victoria.com") { isTeam title series(slug: "graphql") { posts(first: 10) { edges { node { title } } } } } } 

Fetch static pages

query Publication { publication(host: "lo-victoria.com") { isTeam title staticPages(first: 10) { edges { node { title slug } } } } } 

Fetch a single page

query Publication { publication(host: "lo-victoria.com") { isTeam title staticPage(slug: "about") { title content { markdown } } } } 

Queries

checkCustomDomainAvailability

Arguments
Name Description
input - CheckCustomDomainAvailabilityInput!

Example

Query
query CheckCustomDomainAvailability($input: CheckCustomDomainAvailabilityInput!) { checkCustomDomainAvailability(input: $input) { domainAvailable } } 
Variables
{"input": CheckCustomDomainAvailabilityInput} 
Response
{"data": {"checkCustomDomainAvailability": {"domainAvailable": false}}} 

checkSubdomainAvailability

Arguments
Name Description
subdomain - String!

Example

Query
query CheckSubdomainAvailability($subdomain: String!) { checkSubdomainAvailability(subdomain: $subdomain) { subdomainAvailable } } 
Variables
{"subdomain": "abc123"} 
Response
{"data": {"checkSubdomainAvailability": {"subdomainAvailable": true}}} 

documentationProject

Response

Returns a DocumentationProject

Arguments
Name Description
id - ID
host - String

Example

Query
query DocumentationProject( $id: ID, $host: String ) { documentationProject( id: $id, host: $host ) { id domain { hashnodeSubDomain customDomain { ...DocumentationProjectCustomDomainFragment } } name description settings { isRobotsAllowed isHashnodeLoginAllowed isHeadless } links { twitter instagram github website hashnode youtube dailydev linkedin mastodon githubRepository bluesky } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { views { ...ProjectViewsConnectionFragment } visitors { ...ProjectVisitorsConnectionFragment } } members { user { ...UserFragment } role } membersV2 { nodes { ...DocumentationProjectMemberV2Fragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { id title slug content { ...DocumentationPageContentFragment } ogMetaData { ...OpenGraphMetaDataFragment } seo { ...SEOFragment } lastModified visibility } customPages { nodes { ...DocsCustomPageFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } appearance { logoUrl logoDarkThemeUrl favIconUrl primaryColor defaultDocsTheme getStarted { ...DocumentationProjectGetStartedFragment } customScript } integrations { fbPixelID hotjarSiteID gaTrackingID gTagManagerID intercomID metaTags koalaPublicKey msClarityID } features { collaboration { ...CollaborationFeatureFragment } ghSync { ...GitHubSyncFeatureFragment } versioning { ...VersioningFeatureFragment } } url navigation { header {  ... on DocumentationNavbarItemLink { ...DocumentationNavbarItemLinkFragment } ... on DocumentationNavbarItemGuide { ...DocumentationNavbarItemGuideFragment } ... on DocumentationNavbarItemPage { ...DocumentationNavbarItemPageFragment } } footer { ...DocumentationNavbarColumnFragment } } searchUsers { nodes { ...UserFragment } edges { ...DocumentationProjectSearchUserEdgeFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } pendingInvites { nodes { ...DocumentationProjectInviteFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } owner { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } subscription { status productName nextBillingCycle maxSeats } ai { prompts { ...DocumentationProjectAIPromptFragment } settings { ...DocumentationProjectAISettingsFragment } } } } 
Variables
{"id": 4, "host": "abc123"} 
Response
{ "data": { "documentationProject": { "id": "4", "domain": DocumentationProjectDomainSettings, "name": "abc123", "description": "abc123", "settings": DocumentationProjectSettings, "links": DocumentationProjectLinks, "publishedGuides": [DocumentationGuide], "guides": [DocumentationGuide], "analytics": DocumentationProjectAnalytics, "members": [DocumentationProjectMember], "membersV2": DocumentationProjectMemberConnection, "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "guide": DocumentationGuide, "publishedGuide": DocumentationGuide, "defaultGuide": DocumentationGuide, "customPage": DocsCustomPage, "customPages": DocsCustomPageConnection, "appearance": DocumentationProjectAppearance, "integrations": DocumentationProjectIntegrations, "features": DocumentationProjectFeatures, "url": "abc123", "navigation": DocumentationProjectNavigation, "searchUsers": DocumentationProjectSearchUserConnection, "pendingInvites": DocumentationProjectPendingInviteConnection, "owner": User, "subscription": DocumentationProjectSubscription, "ai": DocumentationProjectAIPreference } } } 

draft

Description

Returns a draft by ID. Draft is a post that is not published yet.

Response

Returns a Draft

Arguments
Name Description
id - ObjectId! The ID of the draft to retrieve.

Example

Query
query Draft($id: ObjectId!) { draft(id: $id) { id slug title subtitle author { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } coAuthors { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } publishAs { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } tags { id name slug logo tagline info { ...ContentFragment } followersCount postsCount posts { ...FeedPostConnectionFragment } } tagsV2 {  ... on Tag { ...TagFragment } ... on DraftBaseTag { ...DraftBaseTagFragment } } canonicalUrl publication { id title displayTitle descriptionSEO about { ...ContentFragment } url canonicalURL author { ...UserFragment } favicon headerColor metaTags integrations { ...PublicationIntegrationsFragment } invites { ...PublicationInviteFragment } preferences { ...PreferencesFragment } followersCount imprint imprintV2 { ...ContentFragment } isTeam links { ...PublicationLinksFragment } domainInfo { ...DomainInfoFragment } isHeadless series { ...SeriesFragment } seriesList { ...SeriesConnectionFragment } posts { ...PublicationPostConnectionFragment } postsViaPage { ...PublicationPostPageConnectionFragment } pinnedPost { ...PostFragment } post { ...PostFragment } redirectedPost { ...PostFragment } ogMetaData { ...OpenGraphMetaDataFragment } features { ...PublicationFeaturesFragment } drafts { ...DraftConnectionFragment } allDrafts { ...DraftConnectionFragment } scheduledDrafts { ...DraftConnectionFragment } allScheduledDrafts { ...DraftConnectionFragment } staticPage { ...StaticPageFragment } staticPages { ...StaticPageConnectionFragment } submittedDrafts { ...DraftConnectionFragment } isGitHubBackupEnabled isGithubAsSourceConnected urlPattern emailImport { ...EmailImportFragment } redirectionRules { ...RedirectionRuleFragment } hasBadges sponsorship { ...PublicationSponsorshipFragment } recommendedPublications { ...UserRecommendedPublicationEdgeFragment } totalRecommendedPublications recommendingPublications { ...PublicationUserRecommendingPublicationConnectionFragment } allowContributorEdits members { ...PublicationMemberConnectionFragment } publicMembers { ...PublicationMemberConnectionFragment } } coverImage { url attribution photographer isAttributionHidden } bannerImage { url } readTimeInMinutes series { id name createdAt description { ...ContentFragment } coverImage author { ...UserFragment } cuid slug sortOrder posts { ...SeriesPostConnectionFragment } } content { markdown html text } dateUpdated updatedAt settings { disableComments stickCoverToBottom isDelisted } seo { title description } ogMetaData { image } features { tableOfContents { ...TableOfContentsFeatureFragment } } lastBackup { status at } lastSuccessfulBackupAt lastFailedBackupAt scheduledDate isSubmittedForReview publishedPost { id slug previousSlugs title subtitle author { ...UserFragment } coAuthors { ...UserFragment } tags { ...TagFragment } url canonicalUrl publication { ...PublicationFragment } cuid coverImage { ...PostCoverImageFragment } bannerImage { ...PostBannerImageFragment } brief readTimeInMinutes views series { ...SeriesFragment } reactionCount replyCount responseCount featured contributors { ...UserFragment } commenters { ...PostCommenterConnectionFragment } comments { ...PostCommentConnectionFragment } bookmarked content { ...ContentFragment } likedBy { ...PostLikerConnectionFragment } featuredAt publishedAt updatedAt preferences { ...PostPreferencesFragment } audioUrls { ...AudioUrlsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } hasLatexInPost isFollowed isAutoPublishedFromRSS features { ...PostFeaturesFragment } sourcedFromGithub } } } 
Variables
{"id": ObjectId} 
Response
{ "data": { "draft": { "id": "4", "slug": "abc123", "title": "abc123", "subtitle": "abc123", "author": User, "coAuthors": [User], "publishAs": User, "tags": [Tag], "tagsV2": [Tag], "canonicalUrl": "abc123", "publication": Publication, "coverImage": DraftCoverImage, "bannerImage": DraftBannerImage, "readTimeInMinutes": 987, "series": Series, "content": Content, "dateUpdated": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "settings": DraftSettings, "seo": SEO, "ogMetaData": OpenGraphMetaData, "features": DraftFeatures, "lastBackup": DraftBackup, "lastSuccessfulBackupAt": "2007-12-03T10:15:30Z", "lastFailedBackupAt": "2007-12-03T10:15:30Z", "scheduledDate": "2007-12-03T10:15:30Z", "isSubmittedForReview": true, "publishedPost": Post } } } 

feed

Description

Returns a paginated list of posts based on the provided filter. Used in Hashnode home feed.

Response

Returns a FeedPostConnection!

Arguments
Name Description
first - Int! The number of items to be returned per page.
after - String A cursor to the last item of the previous page.
filter - FeedFilter Filters to be applied to the feed.

Example

Query
query Feed( $first: Int!, $after: String, $filter: FeedFilter ) { feed( first: $first, after: $after, filter: $filter ) { edges { node { ...PostFragment } cursor } pageInfo { hasNextPage endCursor } } } 
Variables
{ "first": 987, "after": "xyz789", "filter": FeedFilter } 
Response
{ "data": { "feed": { "edges": [PostEdge], "pageInfo": PageInfo } } } 

me

Description

Returns the current authenticated user. Only available to the authenticated user.

Response

Returns a MyUser!

Example

Query
query Me { me { id username name bio { markdown html text } profilePicture socialMediaLinks { website github twitter instagram facebook stackoverflow linkedin youtube bluesky } emailNotificationPreferences { weeklyNewsletterEmails activityNotifications generalAnnouncements monthlyBlogStats newFollowersWeekly } badges { id name description image dateAssigned infoURL suppressed } publications { edges { ...UserPublicationsEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } posts { edges { ...UserPostEdgeFragment } nodes { ...PostFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { id name slug logo tagline info { ...ContentFragment } followersCount postsCount posts { ...FeedPostConnectionFragment } } ambassador provider deactivated betaFeatures { id key title description url enabled } email unverifiedEmail followers { nodes { ...UserFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } follows { nodes { ...UserFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } drafts { edges { ...UserDraftEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } role techStack { nodes { ...TagFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } } } 
Response
{ "data": { "me": { "id": "4", "username": "abc123", "name": "abc123", "bio": Content, "profilePicture": "abc123", "socialMediaLinks": SocialMediaLinks, "emailNotificationPreferences": EmailNotificationPreferences, "badges": [Badge], "publications": UserPublicationsConnection, "posts": UserPostConnection, "followersCount": 123, "followingsCount": 123, "tagline": "abc123", "dateJoined": "2007-12-03T10:15:30Z", "location": "abc123", "availableFor": "abc123", "tagsFollowing": [Tag], "ambassador": false, "provider": "abc123", "deactivated": true, "betaFeatures": [BetaFeature], "email": "xyz789", "unverifiedEmail": "abc123", "followers": UserConnection, "follows": UserConnection, "drafts": UserDraftConnection, "role": "SUPERUSER", "techStack": UserTagsConnection } } } 

post

Description

Returns post by ID. Can be used to render post page on blog.

Response

Returns a Post

Arguments
Name Description
id - ID! The ID of the post to be returned.

Example

Query
query Post($id: ID!) { post(id: $id) { id slug previousSlugs title subtitle author { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } coAuthors { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } tags { id name slug logo tagline info { ...ContentFragment } followersCount postsCount posts { ...FeedPostConnectionFragment } } url canonicalUrl publication { id title displayTitle descriptionSEO about { ...ContentFragment } url canonicalURL author { ...UserFragment } favicon headerColor metaTags integrations { ...PublicationIntegrationsFragment } invites { ...PublicationInviteFragment } preferences { ...PreferencesFragment } followersCount imprint imprintV2 { ...ContentFragment } isTeam links { ...PublicationLinksFragment } domainInfo { ...DomainInfoFragment } isHeadless series { ...SeriesFragment } seriesList { ...SeriesConnectionFragment } posts { ...PublicationPostConnectionFragment } postsViaPage { ...PublicationPostPageConnectionFragment } pinnedPost { ...PostFragment } post { ...PostFragment } redirectedPost { ...PostFragment } ogMetaData { ...OpenGraphMetaDataFragment } features { ...PublicationFeaturesFragment } drafts { ...DraftConnectionFragment } allDrafts { ...DraftConnectionFragment } scheduledDrafts { ...DraftConnectionFragment } allScheduledDrafts { ...DraftConnectionFragment } staticPage { ...StaticPageFragment } staticPages { ...StaticPageConnectionFragment } submittedDrafts { ...DraftConnectionFragment } isGitHubBackupEnabled isGithubAsSourceConnected urlPattern emailImport { ...EmailImportFragment } redirectionRules { ...RedirectionRuleFragment } hasBadges sponsorship { ...PublicationSponsorshipFragment } recommendedPublications { ...UserRecommendedPublicationEdgeFragment } totalRecommendedPublications recommendingPublications { ...PublicationUserRecommendingPublicationConnectionFragment } allowContributorEdits members { ...PublicationMemberConnectionFragment } publicMembers { ...PublicationMemberConnectionFragment } } cuid coverImage { url isPortrait attribution photographer isAttributionHidden } bannerImage { url } brief readTimeInMinutes views series { id name createdAt description { ...ContentFragment } coverImage author { ...UserFragment } cuid slug sortOrder posts { ...SeriesPostConnectionFragment } } reactionCount replyCount responseCount featured contributors { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } commenters { edges { ...PostCommenterEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } comments { edges { ...PostCommentEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } bookmarked content { markdown html text } likedBy { edges { ...PostLikerEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } featuredAt publishedAt updatedAt preferences { pinnedToBlog disableComments stickCoverToBottom isDelisted } audioUrls { male female } seo { title description } ogMetaData { image } hasLatexInPost isFollowed isAutoPublishedFromRSS features { tableOfContents { ...TableOfContentsFeatureFragment } badges { ...PostBadgesFeatureFragment } } sourcedFromGithub } } 
Variables
{"id": "4"} 
Response
{ "data": { "post": { "id": "4", "slug": "abc123", "previousSlugs": ["xyz789"], "title": "xyz789", "subtitle": "xyz789", "author": User, "coAuthors": [User], "tags": [Tag], "url": "xyz789", "canonicalUrl": "abc123", "publication": Publication, "cuid": "abc123", "coverImage": PostCoverImage, "bannerImage": PostBannerImage, "brief": "abc123", "readTimeInMinutes": 987, "views": 987, "series": Series, "reactionCount": 987, "replyCount": 123, "responseCount": 987, "featured": true, "contributors": [User], "commenters": PostCommenterConnection, "comments": PostCommentConnection, "bookmarked": false, "content": Content, "likedBy": PostLikerConnection, "featuredAt": "2007-12-03T10:15:30Z", "publishedAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "preferences": PostPreferences, "audioUrls": AudioUrls, "seo": SEO, "ogMetaData": OpenGraphMetaData, "hasLatexInPost": true, "isFollowed": true, "isAutoPublishedFromRSS": true, "features": PostFeatures, "sourcedFromGithub": false } } } 

publication

Description

Returns the publication with the given ID or host. User can pass anyone of them.

Response

Returns a Publication

Arguments
Name Description
id - ObjectId The ID of the publication.
host - String The host of the publication.

Example

Query
query Publication( $id: ObjectId, $host: String ) { publication( id: $id, host: $host ) { id title displayTitle descriptionSEO about { markdown html text } url canonicalURL author { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } favicon headerColor metaTags integrations { fbPixelID fathomSiteID fathomCustomDomainEnabled fathomCustomDomain hotjarSiteID matomoSiteID matomoURL gaTrackingID plausibleAnalyticsEnabled wmPaymentPointer umamiWebsiteUUID umamiShareId gTagManagerID koalaPublicKey msClarityID } invites { pendingInvites { ...PendingInviteConnectionFragment } roleBasedInvites { ...RoleBasedInviteConnectionFragment } areRoleBasedInviteLinksActive } preferences { logo darkMode { ...DarkModePreferencesFragment } enabledPages { ...PagesPreferencesFragment } navbarItems { ...PublicationNavbarItemFragment } layout disableFooterBranding isSubscriptionModalDisabled } followersCount imprint imprintV2 { markdown html text } isTeam links { twitter instagram github website hashnode youtube dailydev linkedin mastodon facebook bluesky } domainInfo { hashnodeSubdomain domain { ...DomainStatusFragment } wwwPrefixedDomain { ...DomainStatusFragment } } isHeadless series { id name createdAt description { ...ContentFragment } coverImage author { ...UserFragment } cuid slug sortOrder posts { ...SeriesPostConnectionFragment } } seriesList { edges { ...SeriesEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } posts { edges { ...PostEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } postsViaPage { nodes { ...PostFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } pinnedPost { id slug previousSlugs title subtitle author { ...UserFragment } coAuthors { ...UserFragment } tags { ...TagFragment } url canonicalUrl publication { ...PublicationFragment } cuid coverImage { ...PostCoverImageFragment } bannerImage { ...PostBannerImageFragment } brief readTimeInMinutes views series { ...SeriesFragment } reactionCount replyCount responseCount featured contributors { ...UserFragment } commenters { ...PostCommenterConnectionFragment } comments { ...PostCommentConnectionFragment } bookmarked content { ...ContentFragment } likedBy { ...PostLikerConnectionFragment } featuredAt publishedAt updatedAt preferences { ...PostPreferencesFragment } audioUrls { ...AudioUrlsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } hasLatexInPost isFollowed isAutoPublishedFromRSS features { ...PostFeaturesFragment } sourcedFromGithub } post { id slug previousSlugs title subtitle author { ...UserFragment } coAuthors { ...UserFragment } tags { ...TagFragment } url canonicalUrl publication { ...PublicationFragment } cuid coverImage { ...PostCoverImageFragment } bannerImage { ...PostBannerImageFragment } brief readTimeInMinutes views series { ...SeriesFragment } reactionCount replyCount responseCount featured contributors { ...UserFragment } commenters { ...PostCommenterConnectionFragment } comments { ...PostCommentConnectionFragment } bookmarked content { ...ContentFragment } likedBy { ...PostLikerConnectionFragment } featuredAt publishedAt updatedAt preferences { ...PostPreferencesFragment } audioUrls { ...AudioUrlsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } hasLatexInPost isFollowed isAutoPublishedFromRSS features { ...PostFeaturesFragment } sourcedFromGithub } redirectedPost { id slug previousSlugs title subtitle author { ...UserFragment } coAuthors { ...UserFragment } tags { ...TagFragment } url canonicalUrl publication { ...PublicationFragment } cuid coverImage { ...PostCoverImageFragment } bannerImage { ...PostBannerImageFragment } brief readTimeInMinutes views series { ...SeriesFragment } reactionCount replyCount responseCount featured contributors { ...UserFragment } commenters { ...PostCommenterConnectionFragment } comments { ...PostCommentConnectionFragment } bookmarked content { ...ContentFragment } likedBy { ...PostLikerConnectionFragment } featuredAt publishedAt updatedAt preferences { ...PostPreferencesFragment } audioUrls { ...AudioUrlsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } hasLatexInPost isFollowed isAutoPublishedFromRSS features { ...PostFeaturesFragment } sourcedFromGithub } ogMetaData { image } features { newsletter { ...NewsletterFeatureFragment } viewCount { ...ViewCountFeatureFragment } readTime { ...ReadTimeFeatureFragment } audioBlog { ...AudioBlogFeatureFragment } textSelectionSharer { ...TextSelectionSharerFeatureFragment } customCSS { ...CustomCSSFeatureFragment } headlessCMS { ...HeadlessCMSFeatureFragment } proTeam { ...ProTeamFeatureFragment } gptBotCrawling { ...GPTBotCrawlingFeatureFragment } } drafts { edges { ...DraftEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } allDrafts { edges { ...DraftEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } scheduledDrafts { edges { ...DraftEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } allScheduledDrafts { edges { ...DraftEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } staticPage { id title slug content { ...ContentFragment } hidden ogMetaData { ...OpenGraphMetaDataFragment } seo { ...SEOFragment } } staticPages { edges { ...StaticPageEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } submittedDrafts { edges { ...DraftEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } isGitHubBackupEnabled isGithubAsSourceConnected urlPattern emailImport { currentImport { ...EmailCurrentImportFragment } } redirectionRules { id type source destination } hasBadges sponsorship { content { ...ContentFragment } stripe { ...StripeConfigurationFragment } } recommendedPublications { node { ...PublicationFragment } totalFollowersGained } totalRecommendedPublications recommendingPublications { edges { ...UserRecommendingPublicationEdgeFragment } nodes { ...PublicationFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } allowContributorEdits members { nodes { ...PublicationMemberFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } publicMembers { nodes { ...PublicationMemberFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } } } 
Variables
{ "id": ObjectId, "host": "xyz789" } 
Response
{ "data": { "publication": { "id": "4", "title": "xyz789", "displayTitle": "abc123", "descriptionSEO": "xyz789", "about": Content, "url": "xyz789", "canonicalURL": "xyz789", "author": User, "favicon": "abc123", "headerColor": "xyz789", "metaTags": "xyz789", "integrations": PublicationIntegrations, "invites": PublicationInvite, "preferences": Preferences, "followersCount": 123, "imprint": "xyz789", "imprintV2": Content, "isTeam": true, "links": PublicationLinks, "domainInfo": DomainInfo, "isHeadless": false, "series": Series, "seriesList": SeriesConnection, "posts": PublicationPostConnection, "postsViaPage": PublicationPostPageConnection, "pinnedPost": Post, "post": Post, "redirectedPost": Post, "ogMetaData": OpenGraphMetaData, "features": PublicationFeatures, "drafts": DraftConnection, "allDrafts": DraftConnection, "scheduledDrafts": DraftConnection, "allScheduledDrafts": DraftConnection, "staticPage": StaticPage, "staticPages": StaticPageConnection, "submittedDrafts": DraftConnection, "isGitHubBackupEnabled": true, "isGithubAsSourceConnected": false, "urlPattern": "DEFAULT", "emailImport": EmailImport, "redirectionRules": [RedirectionRule], "hasBadges": false, "sponsorship": PublicationSponsorship, "recommendedPublications": [ UserRecommendedPublicationEdge ], "totalRecommendedPublications": 987, "recommendingPublications": PublicationUserRecommendingPublicationConnection, "allowContributorEdits": true, "members": PublicationMemberConnection, "publicMembers": PublicationMemberConnection } } } 

scheduledPost

Description

Get a scheduled post by ID.

Response

Returns a ScheduledPost

Arguments
Name Description
id - ObjectId The ID of the scheduled post to get.

Example

Query
query ScheduledPost($id: ObjectId) { scheduledPost(id: $id) { id author { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } draft { id slug title subtitle author { ...UserFragment } coAuthors { ...UserFragment } publishAs { ...UserFragment } tags { ...TagFragment } tagsV2 {  ... on Tag { ...TagFragment } ... on DraftBaseTag { ...DraftBaseTagFragment } } canonicalUrl publication { ...PublicationFragment } coverImage { ...DraftCoverImageFragment } bannerImage { ...DraftBannerImageFragment } readTimeInMinutes series { ...SeriesFragment } content { ...ContentFragment } dateUpdated updatedAt settings { ...DraftSettingsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } features { ...DraftFeaturesFragment } lastBackup { ...DraftBackupFragment } lastSuccessfulBackupAt lastFailedBackupAt scheduledDate isSubmittedForReview publishedPost { ...PostFragment } } scheduledDate scheduledBy { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } publication { id title displayTitle descriptionSEO about { ...ContentFragment } url canonicalURL author { ...UserFragment } favicon headerColor metaTags integrations { ...PublicationIntegrationsFragment } invites { ...PublicationInviteFragment } preferences { ...PreferencesFragment } followersCount imprint imprintV2 { ...ContentFragment } isTeam links { ...PublicationLinksFragment } domainInfo { ...DomainInfoFragment } isHeadless series { ...SeriesFragment } seriesList { ...SeriesConnectionFragment } posts { ...PublicationPostConnectionFragment } postsViaPage { ...PublicationPostPageConnectionFragment } pinnedPost { ...PostFragment } post { ...PostFragment } redirectedPost { ...PostFragment } ogMetaData { ...OpenGraphMetaDataFragment } features { ...PublicationFeaturesFragment } drafts { ...DraftConnectionFragment } allDrafts { ...DraftConnectionFragment } scheduledDrafts { ...DraftConnectionFragment } allScheduledDrafts { ...DraftConnectionFragment } staticPage { ...StaticPageFragment } staticPages { ...StaticPageConnectionFragment } submittedDrafts { ...DraftConnectionFragment } isGitHubBackupEnabled isGithubAsSourceConnected urlPattern emailImport { ...EmailImportFragment } redirectionRules { ...RedirectionRuleFragment } hasBadges sponsorship { ...PublicationSponsorshipFragment } recommendedPublications { ...UserRecommendedPublicationEdgeFragment } totalRecommendedPublications recommendingPublications { ...PublicationUserRecommendingPublicationConnectionFragment } allowContributorEdits members { ...PublicationMemberConnectionFragment } publicMembers { ...PublicationMemberConnectionFragment } } } } 
Variables
{"id": ObjectId} 
Response
{ "data": { "scheduledPost": { "id": 4, "author": User, "draft": Draft, "scheduledDate": "2007-12-03T10:15:30Z", "scheduledBy": User, "publication": Publication } } } 

searchPostsOfPublication

Description

Returns a paginated list of posts based on search query for a particular publication id.

Response

Returns a SearchPostConnection!

Arguments
Name Description
first - Int! The number of items to be returned per page.
after - String A cursor to the last item of the previous page.
sortBy - PostSortBy The sort order.
filter - SearchPostsOfPublicationFilter! The filter to be applied to the search.

Example

Query
query SearchPostsOfPublication( $first: Int!, $after: String, $sortBy: PostSortBy, $filter: SearchPostsOfPublicationFilter! ) { searchPostsOfPublication( first: $first, after: $after, sortBy: $sortBy, filter: $filter ) { edges { node { ...PostFragment } cursor } pageInfo { hasNextPage endCursor } } } 
Variables
{ "first": 123, "after": "xyz789", "sortBy": "DATE_PUBLISHED_ASC", "filter": SearchPostsOfPublicationFilter } 
Response
{ "data": { "searchPostsOfPublication": { "edges": [PostEdge], "pageInfo": PageInfo } } } 

tag

Description

Returns tag details by its slug.

Response

Returns a Tag

Arguments
Name Description
slug - String! The slug of the tag to retrieve.

Example

Query
query Tag($slug: String!) { tag(slug: $slug) { id name slug logo tagline info { markdown html text } followersCount postsCount posts { edges { ...PostEdgeFragment } pageInfo { ...PageInfoFragment } } } } 
Variables
{"slug": "abc123"} 
Response
{ "data": { "tag": { "id": "4", "name": "abc123", "slug": "xyz789", "logo": "xyz789", "tagline": "abc123", "info": Content, "followersCount": 987, "postsCount": 123, "posts": FeedPostConnection } } } 

topCommenters

Description

Returns users who have most actively participated in discussions by commenting in the last 7 days.

Response

Returns a CommenterUserConnection!

Arguments
Name Description
first - Int! The maximum number of users to return.
after - String A cursor to the last item of the previous page.

Example

Query
query TopCommenters( $first: Int!, $after: String ) { topCommenters( first: $first, after: $after ) { edges { node { ...UserFragment } cursor } pageInfo { hasNextPage endCursor } } } 
Variables
{"first": 123, "after": "abc123"} 
Response
{ "data": { "topCommenters": { "edges": [UserEdge], "pageInfo": PageInfo } } } 

user

Description

Returns the user with the username.

Response

Returns a User

Arguments
Name Description
username - String! The username of the user to retrieve.

Example

Query
query User($username: String!) { user(username: $username) { id username name bio { markdown html text } bioV2 { markdown html text } profilePicture socialMediaLinks { website github twitter instagram facebook stackoverflow linkedin youtube bluesky } badges { id name description image dateAssigned infoURL suppressed } publications { edges { ...UserPublicationsEdgeFragment } pageInfo { ...PageInfoFragment } totalDocuments } posts { edges { ...UserPostEdgeFragment } nodes { ...PostFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { id name slug logo tagline info { ...ContentFragment } followersCount postsCount posts { ...FeedPostConnectionFragment } } ambassador deactivated following followsBack followers { nodes { ...UserFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } follows { nodes { ...UserFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } techStack { nodes { ...TagFragment } pageInfo { ...OffsetPageInfoFragment } totalDocuments } } } 
Variables
{"username": "xyz789"} 
Response
{ "data": { "user": { "id": 4, "username": "abc123", "name": "xyz789", "bio": Content, "bioV2": Content, "profilePicture": "xyz789", "socialMediaLinks": SocialMediaLinks, "badges": [Badge], "publications": UserPublicationsConnection, "posts": UserPostConnection, "followersCount": 987, "followingsCount": 987, "tagline": "abc123", "dateJoined": "2007-12-03T10:15:30Z", "location": "xyz789", "availableFor": "xyz789", "tagsFollowing": [Tag], "ambassador": true, "deactivated": true, "following": false, "followsBack": false, "followers": UserConnection, "follows": UserConnection, "techStack": UserTagsConnection } } } 

Mutations

acceptInviteToDocumentationProject

Description

Mutation to accept an invite to a documentation project

Arguments
Name Description
input - AcceptInviteToDocumentationProjectInput!

Example

Query
mutation AcceptInviteToDocumentationProject($input: AcceptInviteToDocumentationProjectInput!) { acceptInviteToDocumentationProject(input: $input) { success project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": AcceptInviteToDocumentationProjectInput} 
Response
{ "data": { "acceptInviteToDocumentationProject": { "success": true, "project": DocumentationProject } } } 

acceptInviteToPublication

Description

Accepts an invitation to join a publication. The user is added as a member of the publication.

Response

Returns an AcceptInviteToPublicationPayload!

Arguments
Name Description
input - AcceptInviteToPublicationInput!

Example

Query
mutation AcceptInviteToPublication($input: AcceptInviteToPublicationInput!) { acceptInviteToPublication(input: $input) { success } } 
Variables
{"input": AcceptInviteToPublicationInput} 
Response
{"data": {"acceptInviteToPublication": {"success": false}}} 

acceptRoleBasedInvite

Description

Accepts a role based invite and adds the user as a member of the publication. The user is assigned the role specified in the invite.

Response

Returns an AcceptRoleBasedInvitePayload!

Arguments
Name Description
input - AcceptRoleBasedInviteInput!

Example

Query
mutation AcceptRoleBasedInvite($input: AcceptRoleBasedInviteInput!) { acceptRoleBasedInvite(input: $input) { success } } 
Variables
{"input": AcceptRoleBasedInviteInput} 
Response
{"data": {"acceptRoleBasedInvite": {"success": true}}} 

addComment

Description

Adds a comment to a post.

Response

Returns an AddCommentPayload!

Arguments
Name Description
input - AddCommentInput!

Example

Query
mutation AddComment($input: AddCommentInput!) { addComment(input: $input) { comment { id content { ...ContentFragment } author { ...UserFragment } replies { ...CommentReplyConnectionFragment } dateAdded stamp totalReactions myTotalReactions } } } 
Variables
{"input": AddCommentInput} 
Response
{"data": {"addComment": {"comment": Comment}}} 

addContentBlock

Response

Returns an AddContentBlockPayload!

Arguments
Name Description
input - AddContentBlockInput!

Example

Query
mutation AddContentBlock($input: AddContentBlockInput!) { addContentBlock(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": AddContentBlockInput} 
Response
{ "data": { "addContentBlock": {"project": DocumentationProject} } } 

addCustomMdxComponent

Response

Returns an AddCustomMdxComponentPayload!

Arguments
Name Description
input - AddCustomMdxComponentInput!

Example

Query
mutation AddCustomMdxComponent($input: AddCustomMdxComponentInput!) { addCustomMdxComponent(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": AddCustomMdxComponentInput} 
Response
{ "data": { "addCustomMdxComponent": { "project": DocumentationProject } } } 

addDocumentationProjectCustomDomain

Arguments
Name Description
input - AddDocumentationProjectCustomDomainInput!

Example

Query
mutation AddDocumentationProjectCustomDomain($input: AddDocumentationProjectCustomDomainInput!) { addDocumentationProjectCustomDomain(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } dnsVerificationEntries { type name value } wwwRedirectDnsVerificationEntries { type name value } } } 
Variables
{"input": AddDocumentationProjectCustomDomainInput} 
Response
{ "data": { "addDocumentationProjectCustomDomain": { "project": DocumentationProject, "dnsVerificationEntries": [DnsVerificationEntry], "wwwRedirectDnsVerificationEntries": [ DnsVerificationEntry ] } } } 

addPostToSeries

Description

Adds a post to a series.

Response

Returns an AddPostToSeriesPayload!

Arguments
Name Description
input - AddPostToSeriesInput!

Example

Query
mutation AddPostToSeries($input: AddPostToSeriesInput!) { addPostToSeries(input: $input) { series { id name createdAt description { ...ContentFragment } coverImage author { ...UserFragment } cuid slug sortOrder posts { ...SeriesPostConnectionFragment } } } } 
Variables
{"input": AddPostToSeriesInput} 
Response
{"data": {"addPostToSeries": {"series": Series}}} 

addReply

Description

Adds a reply to a comment.

Response

Returns an AddReplyPayload!

Arguments
Name Description
input - AddReplyInput!

Example

Query
mutation AddReply($input: AddReplyInput!) { addReply(input: $input) { reply { id content { ...ContentFragment } author { ...UserFragment } dateAdded stamp totalReactions myTotalReactions } } } 
Variables
{"input": AddReplyInput} 
Response
{"data": {"addReply": {"reply": Reply}}} 

cancelScheduledDraft

Response

Returns a CancelScheduledDraftPayload!

Arguments
Name Description
input - CancelScheduledDraftInput!

Example

Query
mutation CancelScheduledDraft($input: CancelScheduledDraftInput!) { cancelScheduledDraft(input: $input) { scheduledPost { id author { ...UserFragment } draft { ...DraftFragment } scheduledDate scheduledBy { ...UserFragment } publication { ...PublicationFragment } } } } 
Variables
{"input": CancelScheduledDraftInput} 
Response
{ "data": { "cancelScheduledDraft": { "scheduledPost": ScheduledPost } } } 

changePublicationMemberRole

Description

Changes the role of a user in a publication.

Arguments
Name Description
input - ChangePublicationMemberRoleInput!

Example

Query
mutation ChangePublicationMemberRole($input: ChangePublicationMemberRoleInput!) { changePublicationMemberRole(input: $input) { member { id user { ...UserFragment } role privacyState } } } 
Variables
{"input": ChangePublicationMemberRoleInput} 
Response
{ "data": { "changePublicationMemberRole": { "member": PublicationMember } } } 

changePublicationMemberVisibility

Description

Changes the privacy state of a user in a publication. PRIVATE members are not visible on the members page while PUBLIC members are visible.

Arguments
Name Description
input - ChangePublicationMemberVisibilityInput!

Example

Query
mutation ChangePublicationMemberVisibility($input: ChangePublicationMemberVisibilityInput!) { changePublicationMemberVisibility(input: $input) { member { id user { ...UserFragment } role privacyState } } } 
Variables
{"input": ChangePublicationMemberVisibilityInput} 
Response
{ "data": { "changePublicationMemberVisibility": { "member": PublicationMember } } } 

createDocumentationApiReference

Arguments
Name Description
input - CreateDocumentationApiReferenceInput!

Example

Query
mutation CreateDocumentationApiReference($input: CreateDocumentationApiReferenceInput!) { createDocumentationApiReference(input: $input) { guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url publishedUrl definition provider } } } 
Variables
{"input": CreateDocumentationApiReferenceInput} 
Response
{ "data": { "createDocumentationApiReference": { "guide": DocumentationApiReference } } } 

createDocumentationGuide

Arguments
Name Description
input - CreateDocumentationGuideInput!

Example

Query
mutation CreateDocumentationGuide($input: CreateDocumentationGuideInput!) { createDocumentationGuide(input: $input) { guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": CreateDocumentationGuideInput} 
Response
{ "data": { "createDocumentationGuide": { "guide": DocumentationGuide } } } 

createDocumentationPageDraft

Arguments
Name Description
input - CreateDocumentationPageDraftInput!

Example

Query
mutation CreateDocumentationPageDraft($input: CreateDocumentationPageDraftInput!) { createDocumentationPageDraft(input: $input) { page { id path title description createdAt updatedAt format content { ...DocumentationPageContentFragment } status visibility guideSlug draft { ...DocumentationPageDraftFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } url } guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": CreateDocumentationPageDraftInput} 
Response
{ "data": { "createDocumentationPageDraft": { "page": DocumentationPage, "guide": DocumentationGuide } } } 

createDocumentationProject

Arguments
Name Description
input - CreateDocumentationProjectInput!

Example

Query
mutation CreateDocumentationProject($input: CreateDocumentationProjectInput!) { createDocumentationProject(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": CreateDocumentationProjectInput} 
Response
{ "data": { "createDocumentationProject": { "project": DocumentationProject } } } 

createDocumentationSection

Arguments
Name Description
input - CreateDocumentationSectionInput!

Example

Query
mutation CreateDocumentationSection($input: CreateDocumentationSectionInput!) { createDocumentationSection(input: $input) { guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } section { id label path pages { ...DocumentationSidebarItemPageFragment } createdAt updatedAt status visibility } } } 
Variables
{"input": CreateDocumentationSectionInput} 
Response
{ "data": { "createDocumentationSection": { "guide": DocumentationGuide, "section": DocumentationSection } } } 

createDraft

Description

Creates a new draft for a post.

Response

Returns a CreateDraftPayload!

Arguments
Name Description
input - CreateDraftInput! Information about the draft to be created.

Example

Query
mutation CreateDraft($input: CreateDraftInput!) { createDraft(input: $input) { draft { id slug title subtitle author { ...UserFragment } coAuthors { ...UserFragment } publishAs { ...UserFragment } tags { ...TagFragment } tagsV2 {  ... on Tag { ...TagFragment } ... on DraftBaseTag { ...DraftBaseTagFragment } } canonicalUrl publication { ...PublicationFragment } coverImage { ...DraftCoverImageFragment } bannerImage { ...DraftBannerImageFragment } readTimeInMinutes series { ...SeriesFragment } content { ...ContentFragment } dateUpdated updatedAt settings { ...DraftSettingsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } features { ...DraftFeaturesFragment } lastBackup { ...DraftBackupFragment } lastSuccessfulBackupAt lastFailedBackupAt scheduledDate isSubmittedForReview publishedPost { ...PostFragment } } } } 
Variables
{"input": CreateDraftInput} 
Response
{"data": {"createDraft": {"draft": Draft}}} 

createRedirectionRule

Response

Returns a CreateRedirectionRulePayload!

Arguments
Name Description
input - CreateRedirectionRuleInput!

Example

Query
mutation CreateRedirectionRule($input: CreateRedirectionRuleInput!) { createRedirectionRule(input: $input) { redirectionRule { id type source destination } } } 
Variables
{"input": CreateRedirectionRuleInput} 
Response
{ "data": { "createRedirectionRule": { "redirectionRule": RedirectionRule } } } 

createRoleBasedInviteForPublication

Description

Creates a role based invite for a publication and returns a link to invite users to a publication.

Arguments
Name Description
input - CreateRoleBasedInviteForPublicationInput!

Example

Query
mutation CreateRoleBasedInviteForPublication($input: CreateRoleBasedInviteForPublicationInput!) { createRoleBasedInviteForPublication(input: $input) { invite { id role isUnlimitedCapacity usedCapacity capacity inviteLink createdAt expiryDate } } } 
Variables
{"input": CreateRoleBasedInviteForPublicationInput} 
Response
{ "data": { "createRoleBasedInviteForPublication": { "invite": RoleBasedInvite } } } 

createSeries

Description

Creates a new series.

Response

Returns a CreateSeriesPayload!

Arguments
Name Description
input - CreateSeriesInput!

Example

Query
mutation CreateSeries($input: CreateSeriesInput!) { createSeries(input: $input) { series { id name createdAt description { ...ContentFragment } coverImage author { ...UserFragment } cuid slug sortOrder posts { ...SeriesPostConnectionFragment } } } } 
Variables
{"input": CreateSeriesInput} 
Response
{"data": {"createSeries": {"series": Series}}} 

createWebhook

Response

Returns a CreateWebhookPayload!

Arguments
Name Description
input - CreateWebhookInput!

Example

Query
mutation CreateWebhook($input: CreateWebhookInput!) { createWebhook(input: $input) { webhook { id publication { ...PublicationFragment } url events secret createdAt updatedAt messages { ...WebhookMessageConnectionFragment } } } } 
Variables
{"input": CreateWebhookInput} 
Response
{"data": {"createWebhook": {"webhook": Webhook}}} 

deleteContentBlock

Response

Returns a DeleteContentBlockPayload!

Arguments
Name Description
input - DeleteContentBlockInput!

Example

Query
mutation DeleteContentBlock($input: DeleteContentBlockInput!) { deleteContentBlock(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": DeleteContentBlockInput} 
Response
{ "data": { "deleteContentBlock": { "project": DocumentationProject } } } 

deleteCustomMdxComponent

Arguments
Name Description
input - DeleteCustomMdxComponentInput!

Example

Query
mutation DeleteCustomMdxComponent($input: DeleteCustomMdxComponentInput!) { deleteCustomMdxComponent(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": DeleteCustomMdxComponentInput} 
Response
{ "data": { "deleteCustomMdxComponent": { "project": DocumentationProject } } } 

deleteRoleBasedInvite

Description

Deletes a role based invite.

Response

Returns a DeleteRoleBasedInvitePayload!

Arguments
Name Description
input - DeleteRoleBasedInviteInput!

Example

Query
mutation DeleteRoleBasedInvite($input: DeleteRoleBasedInviteInput!) { deleteRoleBasedInvite(input: $input) { invite { id role isUnlimitedCapacity usedCapacity capacity inviteLink createdAt expiryDate } } } 
Variables
{"input": DeleteRoleBasedInviteInput} 
Response
{ "data": { "deleteRoleBasedInvite": {"invite": RoleBasedInvite} } } 

deleteWebhook

Response

Returns a DeleteWebhookPayload!

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteWebhook($id: ID!) { deleteWebhook(id: $id) { webhook { id publication { ...PublicationFragment } url events secret createdAt updatedAt messages { ...WebhookMessageConnectionFragment } } } } 
Variables
{"id": "4"} 
Response
{"data": {"deleteWebhook": {"webhook": Webhook}}} 

disableDocumentationProjectAISearch

Description

Mutation to disable AI search for a documentation project

Arguments
Name Description
input - DisableDocumentationProjectAISearchInput!

Example

Query
mutation DisableDocumentationProjectAISearch($input: DisableDocumentationProjectAISearchInput!) { disableDocumentationProjectAISearch(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": DisableDocumentationProjectAISearchInput} 
Response
{ "data": { "disableDocumentationProjectAISearch": { "project": DocumentationProject } } } 

disableDocumentationProjectHeadlessCms

Example

Query
mutation DisableDocumentationProjectHeadlessCms($input: DisableDocumentationProjectHeadlessCmsInput!) { disableDocumentationProjectHeadlessCms(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": DisableDocumentationProjectHeadlessCmsInput} 
Response
{ "data": { "disableDocumentationProjectHeadlessCms": { "project": DocumentationProject } } } 

enableDocumentationProjectAISearch

Description

Mutation to enable AI search for a documentation project

Arguments
Name Description
input - EnableDocumentationProjectAISearchInput!

Example

Query
mutation EnableDocumentationProjectAISearch($input: EnableDocumentationProjectAISearchInput!) { enableDocumentationProjectAISearch(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": EnableDocumentationProjectAISearchInput} 
Response
{ "data": { "enableDocumentationProjectAISearch": { "project": DocumentationProject } } } 

enableDocumentationProjectHeadlessCms

Example

Query
mutation EnableDocumentationProjectHeadlessCms($input: EnableDocumentationProjectHeadlessCmsInput!) { enableDocumentationProjectHeadlessCms(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": EnableDocumentationProjectHeadlessCmsInput} 
Response
{ "data": { "enableDocumentationProjectHeadlessCms": { "project": DocumentationProject } } } 

followTags

Response

Returns a FollowTagsPayload!

Arguments
Name Description
input - FollowTagsInput!

Example

Query
mutation FollowTags($input: FollowTagsInput!) { followTags(input: $input) { tags { id name slug logo tagline info { ...ContentFragment } followersCount postsCount posts { ...FeedPostConnectionFragment } } } } 
Variables
{"input": FollowTagsInput} 
Response
{"data": {"followTags": {"tags": [Tag]}}} 

generateDocumentationProjectPreviewAuthorizationToken

Description

Will generate a authorization JWT to preview a docs project. A token is required to generate the JWT.

Example

Query
mutation GenerateDocumentationProjectPreviewAuthorizationToken($input: GenerateDocumentationProjectPreviewAuthorizationTokenInput!) { generateDocumentationProjectPreviewAuthorizationToken(input: $input) { authorizationToken project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{ "input": GenerateDocumentationProjectPreviewAuthorizationTokenInput } 
Response
{ "data": { "generateDocumentationProjectPreviewAuthorizationToken": { "authorizationToken": "xyz789", "project": DocumentationProject } } } 

generateDocumentationProjectPreviewToken

Description

Will generate a token that can be exchanged as a JWT to preview a docs project. Only the owner or editors of the project can generate the token.

Example

Query
mutation GenerateDocumentationProjectPreviewToken($input: GenerateDocumentationProjectPreviewTokenInput!) { generateDocumentationProjectPreviewToken(input: $input) { token project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": GenerateDocumentationProjectPreviewTokenInput} 
Response
{ "data": { "generateDocumentationProjectPreviewToken": { "token": "abc123", "project": DocumentationProject } } } 

inviteDocumentationProjectAdmin

Description

Mutation to invite an user to a documentation project

Arguments
Name Description
input - InviteDocumentationProjectAdminInput!

Example

Query
mutation InviteDocumentationProjectAdmin($input: InviteDocumentationProjectAdminInput!) { inviteDocumentationProjectAdmin(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } invitedMembers { user { ...UserFragment } email role } } } 
Variables
{"input": InviteDocumentationProjectAdminInput} 
Response
{ "data": { "inviteDocumentationProjectAdmin": { "project": DocumentationProject, "invitedMembers": [DocsProjectInvitedMembers] } } } 

inviteUsersToPublication

Description

Invites users to a publication. Either by username or email.

Response

Returns an InviteUsersToPublicationPayload!

Arguments
Name Description
input - InviteUsersToPublicationInput!

Example

Query
mutation InviteUsersToPublication($input: InviteUsersToPublicationInput!) { inviteUsersToPublication(input: $input) { success successfulInviteCount failedInvites { email username errorMessage } } } 
Variables
{"input": InviteUsersToPublicationInput} 
Response
{ "data": { "inviteUsersToPublication": { "success": false, "successfulInviteCount": 123, "failedInvites": [FailedInvite] } } } 

likeComment

Description

Likes a comment.

Response

Returns a LikeCommentPayload!

Arguments
Name Description
input - LikeCommentInput!

Example

Query
mutation LikeComment($input: LikeCommentInput!) { likeComment(input: $input) { comment { id content { ...ContentFragment } author { ...UserFragment } replies { ...CommentReplyConnectionFragment } dateAdded stamp totalReactions myTotalReactions } } } 
Variables
{"input": LikeCommentInput} 
Response
{"data": {"likeComment": {"comment": Comment}}} 

likePost

Description

Likes a post.

Response

Returns a LikePostPayload!

Arguments
Name Description
input - LikePostInput!

Example

Query
mutation LikePost($input: LikePostInput!) { likePost(input: $input) { post { id slug previousSlugs title subtitle author { ...UserFragment } coAuthors { ...UserFragment } tags { ...TagFragment } url canonicalUrl publication { ...PublicationFragment } cuid coverImage { ...PostCoverImageFragment } bannerImage { ...PostBannerImageFragment } brief readTimeInMinutes views series { ...SeriesFragment } reactionCount replyCount responseCount featured contributors { ...UserFragment } commenters { ...PostCommenterConnectionFragment } comments { ...PostCommentConnectionFragment } bookmarked content { ...ContentFragment } likedBy { ...PostLikerConnectionFragment } featuredAt publishedAt updatedAt preferences { ...PostPreferencesFragment } audioUrls { ...AudioUrlsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } hasLatexInPost isFollowed isAutoPublishedFromRSS features { ...PostFeaturesFragment } sourcedFromGithub } } } 
Variables
{"input": LikePostInput} 
Response
{"data": {"likePost": {"post": Post}}} 

likeReply

Description

Likes a reply.

Response

Returns a LikeReplyPayload!

Arguments
Name Description
input - LikeReplyInput!

Example

Query
mutation LikeReply($input: LikeReplyInput!) { likeReply(input: $input) { reply { id content { ...ContentFragment } author { ...UserFragment } dateAdded stamp totalReactions myTotalReactions } } } 
Variables
{"input": LikeReplyInput} 
Response
{"data": {"likeReply": {"reply": Reply}}} 

mapDocumentationProjectCustomDomainWwwRedirect

Example

Query
mutation MapDocumentationProjectCustomDomainWwwRedirect($input: MapDocumentationProjectCustomDomainWwwRedirectInput!) { mapDocumentationProjectCustomDomainWwwRedirect(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } dnsVerificationEntries { type name value } } } 
Variables
{ "input": MapDocumentationProjectCustomDomainWwwRedirectInput } 
Response
{ "data": { "mapDocumentationProjectCustomDomainWwwRedirect": { "project": DocumentationProject, "dnsVerificationEntries": [DnsVerificationEntry] } } } 

moveDocumentationSidebarItem

Arguments
Name Description
input - MoveDocumentationSidebarItemInput!

Example

Query
mutation MoveDocumentationSidebarItem($input: MoveDocumentationSidebarItemInput!) { moveDocumentationSidebarItem(input: $input) { guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": MoveDocumentationSidebarItemInput} 
Response
{ "data": { "moveDocumentationSidebarItem": { "guide": DocumentationGuide } } } 

publishDocumentationApiReference

Arguments
Name Description
input - PublishDocumentationApiReferenceInput!

Example

Query
mutation PublishDocumentationApiReference($input: PublishDocumentationApiReferenceInput!) { publishDocumentationApiReference(input: $input) { guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url publishedUrl definition provider } } } 
Variables
{"input": PublishDocumentationApiReferenceInput} 
Response
{ "data": { "publishDocumentationApiReference": { "guide": DocumentationApiReference } } } 

publishDocumentationGuide

Use publishDocumentationGuideVersion instead
Description

Publishes the default version of the guide.

Arguments
Name Description
input - PublishDocumentationGuideInput!

Example

Query
mutation PublishDocumentationGuide($input: PublishDocumentationGuideInput!) { publishDocumentationGuide(input: $input) { guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": PublishDocumentationGuideInput} 
Response
{ "data": { "publishDocumentationGuide": { "guide": DocumentationGuide } } } 

publishDocumentationPageDraft

Arguments
Name Description
input - PublishDocumentationPageDraftInput!

Example

Query
mutation PublishDocumentationPageDraft($input: PublishDocumentationPageDraftInput!) { publishDocumentationPageDraft(input: $input) { page { id path title description createdAt updatedAt format content { ...DocumentationPageContentFragment } status visibility guideSlug draft { ...DocumentationPageDraftFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } url } guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": PublishDocumentationPageDraftInput} 
Response
{ "data": { "publishDocumentationPageDraft": { "page": DocumentationPage, "guide": DocumentationGuide } } } 

publishDraft

Description

Publishes an existing draft as a post.

Response

Returns a PublishDraftPayload!

Arguments
Name Description
input - PublishDraftInput! Information about the draft to be published.

Example

Query
mutation PublishDraft($input: PublishDraftInput!) { publishDraft(input: $input) { post { id slug previousSlugs title subtitle author { ...UserFragment } coAuthors { ...UserFragment } tags { ...TagFragment } url canonicalUrl publication { ...PublicationFragment } cuid coverImage { ...PostCoverImageFragment } bannerImage { ...PostBannerImageFragment } brief readTimeInMinutes views series { ...SeriesFragment } reactionCount replyCount responseCount featured contributors { ...UserFragment } commenters { ...PostCommenterConnectionFragment } comments { ...PostCommentConnectionFragment } bookmarked content { ...ContentFragment } likedBy { ...PostLikerConnectionFragment } featuredAt publishedAt updatedAt preferences { ...PostPreferencesFragment } audioUrls { ...AudioUrlsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } hasLatexInPost isFollowed isAutoPublishedFromRSS features { ...PostFeaturesFragment } sourcedFromGithub } } } 
Variables
{"input": PublishDraftInput} 
Response
{"data": {"publishDraft": {"post": Post}}} 

publishPost

Description

Creates a new post.

Response

Returns a PublishPostPayload!

Arguments
Name Description
input - PublishPostInput! Information about the post to be published.

Example

Query
mutation PublishPost($input: PublishPostInput!) { publishPost(input: $input) { post { id slug previousSlugs title subtitle author { ...UserFragment } coAuthors { ...UserFragment } tags { ...TagFragment } url canonicalUrl publication { ...PublicationFragment } cuid coverImage { ...PostCoverImageFragment } bannerImage { ...PostBannerImageFragment } brief readTimeInMinutes views series { ...SeriesFragment } reactionCount replyCount responseCount featured contributors { ...UserFragment } commenters { ...PostCommenterConnectionFragment } comments { ...PostCommentConnectionFragment } bookmarked content { ...ContentFragment } likedBy { ...PostLikerConnectionFragment } featuredAt publishedAt updatedAt preferences { ...PostPreferencesFragment } audioUrls { ...AudioUrlsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } hasLatexInPost isFollowed isAutoPublishedFromRSS features { ...PostFeaturesFragment } sourcedFromGithub } } } 
Variables
{"input": PublishPostInput} 
Response
{"data": {"publishPost": {"post": Post}}} 

recommendPublications

Response

Returns a RecommendPublicationsPayload!

Arguments
Name Description
input - RecommendPublicationsInput!

Example

Query
mutation RecommendPublications($input: RecommendPublicationsInput!) { recommendPublications(input: $input) { recommendedPublications { node { ...PublicationFragment } totalFollowersGained } } } 
Variables
{"input": RecommendPublicationsInput} 
Response
{ "data": { "recommendPublications": { "recommendedPublications": [ UserRecommendedPublicationEdge ] } } } 

reinviteUserToPublication

Description

Resends an invitation to a user to join a publication. The user must have been previously invited. Sends an email to the user.

Arguments
Name Description
input - ReinviteUserToPublicationInput!

Example

Query
mutation ReinviteUserToPublication($input: ReinviteUserToPublicationInput!) { reinviteUserToPublication(input: $input) { success } } 
Variables
{"input": ReinviteUserToPublicationInput} 
Response
{"data": {"reinviteUserToPublication": {"success": true}}} 

removeComment

Description

Removes a comment from a post.

Response

Returns a RemoveCommentPayload!

Arguments
Name Description
input - RemoveCommentInput!

Example

Query
mutation RemoveComment($input: RemoveCommentInput!) { removeComment(input: $input) { comment { id content { ...ContentFragment } author { ...UserFragment } replies { ...CommentReplyConnectionFragment } dateAdded stamp totalReactions myTotalReactions } } } 
Variables
{"input": RemoveCommentInput} 
Response
{"data": {"removeComment": {"comment": Comment}}} 

removeDocumentationGuide

Arguments
Name Description
input - RemoveDocumentationGuideInput!

Example

Query
mutation RemoveDocumentationGuide($input: RemoveDocumentationGuideInput!) { removeDocumentationGuide(input: $input) { guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } } } 
Variables
{"input": RemoveDocumentationGuideInput} 
Response
{ "data": { "removeDocumentationGuide": { "guide": DocumentationGuide } } } 

removeDocumentationProject

Description

Mutation to remove a documentation project. This will free the custom domain and subdomain and removes all guides and pages.

Arguments
Name Description
input - RemoveDocumentationProjectInput!

Example

Query
mutation RemoveDocumentationProject($input: RemoveDocumentationProjectInput!) { removeDocumentationProject(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": RemoveDocumentationProjectInput} 
Response
{ "data": { "removeDocumentationProject": { "project": DocumentationProject } } } 

removeDocumentationProjectAIPrompt

Description

Mutation to remove a prompt from the AI search

Arguments
Name Description
input - RemoveDocumentationProjectAIPromptInput!

Example

Query
mutation RemoveDocumentationProjectAIPrompt($input: RemoveDocumentationProjectAIPromptInput!) { removeDocumentationProjectAIPrompt(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": RemoveDocumentationProjectAIPromptInput} 
Response
{ "data": { "removeDocumentationProjectAIPrompt": { "project": DocumentationProject } } } 

removeDocumentationProjectCustomDomain

Example

Query
mutation RemoveDocumentationProjectCustomDomain($input: RemoveDocumentationProjectCustomDomainInput!) { removeDocumentationProjectCustomDomain(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": RemoveDocumentationProjectCustomDomainInput} 
Response
{ "data": { "removeDocumentationProjectCustomDomain": { "project": DocumentationProject } } } 

removeDocumentationProjectMember

Description

Mutation to remove a Member from a Documentation Project

Arguments
Name Description
input - RemoveDocumentationProjectMemberInput!

Example

Query
mutation RemoveDocumentationProjectMember($input: RemoveDocumentationProjectMemberInput!) { removeDocumentationProjectMember(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } removedMember { user { ...UserFragment } role } } } 
Variables
{"input": RemoveDocumentationProjectMemberInput} 
Response
{ "data": { "removeDocumentationProjectMember": { "project": DocumentationProject, "removedMember": DocumentationProjectMember } } } 

removeDocumentationSidebarItem

Arguments
Name Description
input - RemoveDocumentationSidebarItemInput!

Example

Query
mutation RemoveDocumentationSidebarItem($input: RemoveDocumentationSidebarItemInput!) { removeDocumentationSidebarItem(input: $input) { guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": RemoveDocumentationSidebarItemInput} 
Response
{ "data": { "removeDocumentationSidebarItem": { "guide": DocumentationGuide } } } 

removePost

Description

Removes a post.

Response

Returns a RemovePostPayload!

Arguments
Name Description
input - RemovePostInput!

Example

Query
mutation RemovePost($input: RemovePostInput!) { removePost(input: $input) { post { id slug previousSlugs title subtitle author { ...UserFragment } coAuthors { ...UserFragment } tags { ...TagFragment } url canonicalUrl publication { ...PublicationFragment } cuid coverImage { ...PostCoverImageFragment } bannerImage { ...PostBannerImageFragment } brief readTimeInMinutes views series { ...SeriesFragment } reactionCount replyCount responseCount featured contributors { ...UserFragment } commenters { ...PostCommenterConnectionFragment } comments { ...PostCommentConnectionFragment } bookmarked content { ...ContentFragment } likedBy { ...PostLikerConnectionFragment } featuredAt publishedAt updatedAt preferences { ...PostPreferencesFragment } audioUrls { ...AudioUrlsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } hasLatexInPost isFollowed isAutoPublishedFromRSS features { ...PostFeaturesFragment } sourcedFromGithub } } } 
Variables
{"input": RemovePostInput} 
Response
{"data": {"removePost": {"post": Post}}} 

removePublicationMember

Description

Removes a user from a teams publication.

Response

Returns a RemovePublicationMemberPayload!

Arguments
Name Description
input - RemovePublicationMemberInput!

Example

Query
mutation RemovePublicationMember($input: RemovePublicationMemberInput!) { removePublicationMember(input: $input) { member { id user { ...UserFragment } role privacyState } } } 
Variables
{"input": RemovePublicationMemberInput} 
Response
{ "data": { "removePublicationMember": { "member": PublicationMember } } } 

removeRecommendation

Response

Returns a RemoveRecommendationPayload!

Arguments
Name Description
input - RemoveRecommendationInput!

Example

Query
mutation RemoveRecommendation($input: RemoveRecommendationInput!) { removeRecommendation(input: $input) { recommendedPublication { id title displayTitle descriptionSEO about { ...ContentFragment } url canonicalURL author { ...UserFragment } favicon headerColor metaTags integrations { ...PublicationIntegrationsFragment } invites { ...PublicationInviteFragment } preferences { ...PreferencesFragment } followersCount imprint imprintV2 { ...ContentFragment } isTeam links { ...PublicationLinksFragment } domainInfo { ...DomainInfoFragment } isHeadless series { ...SeriesFragment } seriesList { ...SeriesConnectionFragment } posts { ...PublicationPostConnectionFragment } postsViaPage { ...PublicationPostPageConnectionFragment } pinnedPost { ...PostFragment } post { ...PostFragment } redirectedPost { ...PostFragment } ogMetaData { ...OpenGraphMetaDataFragment } features { ...PublicationFeaturesFragment } drafts { ...DraftConnectionFragment } allDrafts { ...DraftConnectionFragment } scheduledDrafts { ...DraftConnectionFragment } allScheduledDrafts { ...DraftConnectionFragment } staticPage { ...StaticPageFragment } staticPages { ...StaticPageConnectionFragment } submittedDrafts { ...DraftConnectionFragment } isGitHubBackupEnabled isGithubAsSourceConnected urlPattern emailImport { ...EmailImportFragment } redirectionRules { ...RedirectionRuleFragment } hasBadges sponsorship { ...PublicationSponsorshipFragment } recommendedPublications { ...UserRecommendedPublicationEdgeFragment } totalRecommendedPublications recommendingPublications { ...PublicationUserRecommendingPublicationConnectionFragment } allowContributorEdits members { ...PublicationMemberConnectionFragment } publicMembers { ...PublicationMemberConnectionFragment } } } } 
Variables
{"input": RemoveRecommendationInput} 
Response
{ "data": { "removeRecommendation": { "recommendedPublication": Publication } } } 

removeRedirectionRule

Response

Returns a RemoveRedirectionRulePayload!

Arguments
Name Description
input - RemoveRedirectionRuleInput!

Example

Query
mutation RemoveRedirectionRule($input: RemoveRedirectionRuleInput!) { removeRedirectionRule(input: $input) { redirectionRule { id type source destination } } } 
Variables
{"input": RemoveRedirectionRuleInput} 
Response
{ "data": { "removeRedirectionRule": { "redirectionRule": RedirectionRule } } } 

removeReply

Description

Removes a reply from a comment.

Response

Returns a RemoveReplyPayload!

Arguments
Name Description
input - RemoveReplyInput!

Example

Query
mutation RemoveReply($input: RemoveReplyInput!) { removeReply(input: $input) { reply { id content { ...ContentFragment } author { ...UserFragment } dateAdded stamp totalReactions myTotalReactions } } } 
Variables
{"input": RemoveReplyInput} 
Response
{"data": {"removeReply": {"reply": Reply}}} 

removeSeries

Description

Removes a series.

Response

Returns a RemoveSeriesPayload!

Arguments
Name Description
input - RemoveSeriesInput!

Example

Query
mutation RemoveSeries($input: RemoveSeriesInput!) { removeSeries(input: $input) { series { id name createdAt description { ...ContentFragment } coverImage author { ...UserFragment } cuid slug sortOrder posts { ...SeriesPostConnectionFragment } } } } 
Variables
{"input": RemoveSeriesInput} 
Response
{"data": {"removeSeries": {"series": Series}}} 

renameDocumentationGuide

Arguments
Name Description
input - RenameDocumentationGuideItemInput!

Example

Query
mutation RenameDocumentationGuide($input: RenameDocumentationGuideItemInput!) { renameDocumentationGuide(input: $input) { guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } } } 
Variables
{"input": RenameDocumentationGuideItemInput} 
Response
{ "data": { "renameDocumentationGuide": { "guide": DocumentationGuide } } } 

renameDocumentationSidebarItem

Arguments
Name Description
input - RenameDocumentationSidebarItemInput!

Example

Query
mutation RenameDocumentationSidebarItem($input: RenameDocumentationSidebarItemInput!) { renameDocumentationSidebarItem(input: $input) { item {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": RenameDocumentationSidebarItemInput} 
Response
{ "data": { "renameDocumentationSidebarItem": { "item": DocumentationSection, "guide": DocumentationGuide } } } 

rescheduleDraft

Description

Reschedule a draft.

Response

Returns a RescheduleDraftPayload!

Arguments
Name Description
input - RescheduleDraftInput!

Example

Query
mutation RescheduleDraft($input: RescheduleDraftInput!) { rescheduleDraft(input: $input) { scheduledPost { id author { ...UserFragment } draft { ...DraftFragment } scheduledDate scheduledBy { ...UserFragment } publication { ...PublicationFragment } } } } 
Variables
{"input": RescheduleDraftInput} 
Response
{ "data": { "rescheduleDraft": {"scheduledPost": ScheduledPost} } } 

resendWebhookRequest

Response

Returns a ResendWebhookRequestPayload!

Arguments
Name Description
input - ResendWebhookRequestInput!

Example

Query
mutation ResendWebhookRequest($input: ResendWebhookRequestInput!) { resendWebhookRequest(input: $input) { webhookMessage { id url event isError isTest isResent request { ...WebhookMessageRequestFragment } response { ...WebhookMessageResponseFragment } createdAt } } } 
Variables
{"input": ResendWebhookRequestInput} 
Response
{ "data": { "resendWebhookRequest": { "webhookMessage": WebhookMessage } } } 

restorePost

Description

Restores a deleted post.

Response

Returns a RestorePostPayload!

Arguments
Name Description
input - RestorePostInput!

Example

Query
mutation RestorePost($input: RestorePostInput!) { restorePost(input: $input) { post { id slug previousSlugs title subtitle author { ...UserFragment } coAuthors { ...UserFragment } tags { ...TagFragment } url canonicalUrl publication { ...PublicationFragment } cuid coverImage { ...PostCoverImageFragment } bannerImage { ...PostBannerImageFragment } brief readTimeInMinutes views series { ...SeriesFragment } reactionCount replyCount responseCount featured contributors { ...UserFragment } commenters { ...PostCommenterConnectionFragment } comments { ...PostCommentConnectionFragment } bookmarked content { ...ContentFragment } likedBy { ...PostLikerConnectionFragment } featuredAt publishedAt updatedAt preferences { ...PostPreferencesFragment } audioUrls { ...AudioUrlsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } hasLatexInPost isFollowed isAutoPublishedFromRSS features { ...PostFeaturesFragment } sourcedFromGithub } } } 
Variables
{"input": RestorePostInput} 
Response
{"data": {"restorePost": {"post": Post}}} 

retryDocumentationProjectCustomDomainVerification

Example

Query
mutation RetryDocumentationProjectCustomDomainVerification($input: RetryDocumentationProjectCustomDomainVerificationInput!) { retryDocumentationProjectCustomDomainVerification(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{ "input": RetryDocumentationProjectCustomDomainVerificationInput } 
Response
{ "data": { "retryDocumentationProjectCustomDomainVerification": { "project": DocumentationProject } } } 

revokeInviteToDocumentationProject

Description

Mutation to revoke documentation project invite

Arguments
Name Description
input - RevokeInviteToDocumentationProjectInput!

Example

Query
mutation RevokeInviteToDocumentationProject($input: RevokeInviteToDocumentationProjectInput!) { revokeInviteToDocumentationProject(input: $input) { success project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": RevokeInviteToDocumentationProjectInput} 
Response
{ "data": { "revokeInviteToDocumentationProject": { "success": true, "project": DocumentationProject } } } 

revokeUserInviteToPublication

Description

Revokes a user invitation that was sent to join a publication.

Arguments
Name Description
input - RevokeUserInviteToPublicationInput!

Example

Query
mutation RevokeUserInviteToPublication($input: RevokeUserInviteToPublicationInput!) { revokeUserInviteToPublication(input: $input) { success } } 
Variables
{"input": RevokeUserInviteToPublicationInput} 
Response
{"data": {"revokeUserInviteToPublication": {"success": true}}} 

saveDocumentationPageDraftContent

Arguments
Name Description
input - SaveDocumentationPageDraftContentInput!

Example

Query
mutation SaveDocumentationPageDraftContent($input: SaveDocumentationPageDraftContentInput!) { saveDocumentationPageDraftContent(input: $input) { page { id path title description createdAt updatedAt format content { ...DocumentationPageContentFragment } status visibility guideSlug draft { ...DocumentationPageDraftFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } url } } } 
Variables
{"input": SaveDocumentationPageDraftContentInput} 
Response
{ "data": { "saveDocumentationPageDraftContent": { "page": DocumentationPage } } } 

scheduleDraft

Response

Returns a ScheduleDraftPayload!

Arguments
Name Description
input - ScheduleDraftInput! Information about the draft to be published.

Example

Query
mutation ScheduleDraft($input: ScheduleDraftInput!) { scheduleDraft(input: $input) { scheduledPost { id author { ...UserFragment } draft { ...DraftFragment } scheduledDate scheduledBy { ...UserFragment } publication { ...PublicationFragment } } } } 
Variables
{"input": ScheduleDraftInput} 
Response
{ "data": { "scheduleDraft": {"scheduledPost": ScheduledPost} } } 

setDocumentationSidebarItemVisibility

Example

Query
mutation SetDocumentationSidebarItemVisibility($input: SetDocumentationSidebarItemVisibilityInput!) { setDocumentationSidebarItemVisibility(input: $input) { item {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": SetDocumentationSidebarItemVisibilityInput} 
Response
{ "data": { "setDocumentationSidebarItemVisibility": { "item": DocumentationSection, "guide": DocumentationGuide } } } 

subscribeToNewsletter

Response

Returns a SubscribeToNewsletterPayload!

Arguments
Name Description
input - SubscribeToNewsletterInput!

Example

Query
mutation SubscribeToNewsletter($input: SubscribeToNewsletterInput!) { subscribeToNewsletter(input: $input) { status } } 
Variables
{"input": SubscribeToNewsletterInput} 
Response
{"data": {"subscribeToNewsletter": {"status": "PENDING"}}} 

syncDocumentationProjectApiDefinition

Description

Mutation to sync documentation API reference definition

Example

Query
mutation SyncDocumentationProjectApiDefinition($input: SyncDocumentationProjectApiDefinitionInput!) { syncDocumentationProjectApiDefinition(input: $input) { success } } 
Variables
{"input": SyncDocumentationProjectApiDefinitionInput} 
Response
{"data": {"syncDocumentationProjectApiDefinition": {"success": true}}} 

toggleAllowContributorEdits

Description

Toggle allowContributorEdits flag to allow or restrict external contributors to further edit published articles.

Arguments
Name Description
input - ToggleAllowContributorEditsInput!

Example

Query
mutation ToggleAllowContributorEdits($input: ToggleAllowContributorEditsInput!) { toggleAllowContributorEdits(input: $input) { publication { id title displayTitle descriptionSEO about { ...ContentFragment } url canonicalURL author { ...UserFragment } favicon headerColor metaTags integrations { ...PublicationIntegrationsFragment } invites { ...PublicationInviteFragment } preferences { ...PreferencesFragment } followersCount imprint imprintV2 { ...ContentFragment } isTeam links { ...PublicationLinksFragment } domainInfo { ...DomainInfoFragment } isHeadless series { ...SeriesFragment } seriesList { ...SeriesConnectionFragment } posts { ...PublicationPostConnectionFragment } postsViaPage { ...PublicationPostPageConnectionFragment } pinnedPost { ...PostFragment } post { ...PostFragment } redirectedPost { ...PostFragment } ogMetaData { ...OpenGraphMetaDataFragment } features { ...PublicationFeaturesFragment } drafts { ...DraftConnectionFragment } allDrafts { ...DraftConnectionFragment } scheduledDrafts { ...DraftConnectionFragment } allScheduledDrafts { ...DraftConnectionFragment } staticPage { ...StaticPageFragment } staticPages { ...StaticPageConnectionFragment } submittedDrafts { ...DraftConnectionFragment } isGitHubBackupEnabled isGithubAsSourceConnected urlPattern emailImport { ...EmailImportFragment } redirectionRules { ...RedirectionRuleFragment } hasBadges sponsorship { ...PublicationSponsorshipFragment } recommendedPublications { ...UserRecommendedPublicationEdgeFragment } totalRecommendedPublications recommendingPublications { ...PublicationUserRecommendingPublicationConnectionFragment } allowContributorEdits members { ...PublicationMemberConnectionFragment } publicMembers { ...PublicationMemberConnectionFragment } } } } 
Variables
{"input": ToggleAllowContributorEditsInput} 
Response
{ "data": { "toggleAllowContributorEdits": { "publication": Publication } } } 

toggleFollowUser

Description

Update the follow state for the user that is provided via id or username. If the authenticated user does not follow the user, the mutation will follow the user. If the authenticated user already follows the user, the mutation will un-follow the user. Only available to the authenticated user.

Response

Returns a ToggleFollowUserPayload!

Arguments
Name Description
id - ID
username - String

Example

Query
mutation ToggleFollowUser( $id: ID, $username: String ) { toggleFollowUser( id: $id, username: $username ) { user { id username name bio { ...ContentFragment } bioV2 { ...ContentFragment } profilePicture socialMediaLinks { ...SocialMediaLinksFragment } badges { ...BadgeFragment } publications { ...UserPublicationsConnectionFragment } posts { ...UserPostConnectionFragment } followersCount followingsCount tagline dateJoined location availableFor tagsFollowing { ...TagFragment } ambassador deactivated following followsBack followers { ...UserConnectionFragment } follows { ...UserConnectionFragment } techStack { ...UserTagsConnectionFragment } } } } 
Variables
{"id": 4, "username": "abc123"} 
Response
{"data": {"toggleFollowUser": {"user": User}}} 

toggleGPTBotCrawling

Description

Toggle GPT bot crawling feature.

Response

Returns a ToggleGPTBotCrawlingPayload!

Arguments
Name Description
input - ToggleGPTBotCrawlingInput!

Example

Query
mutation ToggleGPTBotCrawling($input: ToggleGPTBotCrawlingInput!) { toggleGPTBotCrawling(input: $input) { publication { id title displayTitle descriptionSEO about { ...ContentFragment } url canonicalURL author { ...UserFragment } favicon headerColor metaTags integrations { ...PublicationIntegrationsFragment } invites { ...PublicationInviteFragment } preferences { ...PreferencesFragment } followersCount imprint imprintV2 { ...ContentFragment } isTeam links { ...PublicationLinksFragment } domainInfo { ...DomainInfoFragment } isHeadless series { ...SeriesFragment } seriesList { ...SeriesConnectionFragment } posts { ...PublicationPostConnectionFragment } postsViaPage { ...PublicationPostPageConnectionFragment } pinnedPost { ...PostFragment } post { ...PostFragment } redirectedPost { ...PostFragment } ogMetaData { ...OpenGraphMetaDataFragment } features { ...PublicationFeaturesFragment } drafts { ...DraftConnectionFragment } allDrafts { ...DraftConnectionFragment } scheduledDrafts { ...DraftConnectionFragment } allScheduledDrafts { ...DraftConnectionFragment } staticPage { ...StaticPageFragment } staticPages { ...StaticPageConnectionFragment } submittedDrafts { ...DraftConnectionFragment } isGitHubBackupEnabled isGithubAsSourceConnected urlPattern emailImport { ...EmailImportFragment } redirectionRules { ...RedirectionRuleFragment } hasBadges sponsorship { ...PublicationSponsorshipFragment } recommendedPublications { ...UserRecommendedPublicationEdgeFragment } totalRecommendedPublications recommendingPublications { ...PublicationUserRecommendingPublicationConnectionFragment } allowContributorEdits members { ...PublicationMemberConnectionFragment } publicMembers { ...PublicationMemberConnectionFragment } } } } 
Variables
{"input": ToggleGPTBotCrawlingInput} 
Response
{ "data": { "toggleGPTBotCrawling": {"publication": Publication} } } 

toggleTextSelectionSharer

Description

Toggle text selection sharer feature.

Arguments
Name Description
input - ToggleTextSelectionSharerInput!

Example

Query
mutation ToggleTextSelectionSharer($input: ToggleTextSelectionSharerInput!) { toggleTextSelectionSharer(input: $input) { publication { id title displayTitle descriptionSEO about { ...ContentFragment } url canonicalURL author { ...UserFragment } favicon headerColor metaTags integrations { ...PublicationIntegrationsFragment } invites { ...PublicationInviteFragment } preferences { ...PreferencesFragment } followersCount imprint imprintV2 { ...ContentFragment } isTeam links { ...PublicationLinksFragment } domainInfo { ...DomainInfoFragment } isHeadless series { ...SeriesFragment } seriesList { ...SeriesConnectionFragment } posts { ...PublicationPostConnectionFragment } postsViaPage { ...PublicationPostPageConnectionFragment } pinnedPost { ...PostFragment } post { ...PostFragment } redirectedPost { ...PostFragment } ogMetaData { ...OpenGraphMetaDataFragment } features { ...PublicationFeaturesFragment } drafts { ...DraftConnectionFragment } allDrafts { ...DraftConnectionFragment } scheduledDrafts { ...DraftConnectionFragment } allScheduledDrafts { ...DraftConnectionFragment } staticPage { ...StaticPageFragment } staticPages { ...StaticPageConnectionFragment } submittedDrafts { ...DraftConnectionFragment } isGitHubBackupEnabled isGithubAsSourceConnected urlPattern emailImport { ...EmailImportFragment } redirectionRules { ...RedirectionRuleFragment } hasBadges sponsorship { ...PublicationSponsorshipFragment } recommendedPublications { ...UserRecommendedPublicationEdgeFragment } totalRecommendedPublications recommendingPublications { ...PublicationUserRecommendingPublicationConnectionFragment } allowContributorEdits members { ...PublicationMemberConnectionFragment } publicMembers { ...PublicationMemberConnectionFragment } } } } 
Variables
{"input": ToggleTextSelectionSharerInput} 
Response
{ "data": { "toggleTextSelectionSharer": { "publication": Publication } } } 

triggerWebhookTest

Response

Returns a TriggerWebhookTestPayload!

Arguments
Name Description
input - TriggerWebhookTestInput!

Example

Query
mutation TriggerWebhookTest($input: TriggerWebhookTestInput!) { triggerWebhookTest(input: $input) { webhook { id publication { ...PublicationFragment } url events secret createdAt updatedAt messages { ...WebhookMessageConnectionFragment } } } } 
Variables
{"input": TriggerWebhookTestInput} 
Response
{"data": {"triggerWebhookTest": {"webhook": Webhook}}} 

unfollowTags

Response

Returns an UnfollowTagsPayload!

Arguments
Name Description
input - UnfollowTagsInput!

Example

Query
mutation UnfollowTags($input: UnfollowTagsInput!) { unfollowTags(input: $input) { tags { id name slug logo tagline info { ...ContentFragment } followersCount postsCount posts { ...FeedPostConnectionFragment } } } } 
Variables
{"input": UnfollowTagsInput} 
Response
{"data": {"unfollowTags": {"tags": [Tag]}}} 

unsubscribeFromNewsletter

Response

Returns an UnsubscribeFromNewsletterPayload!

Arguments
Name Description
input - UnsubscribeFromNewsletterInput!

Example

Query
mutation UnsubscribeFromNewsletter($input: UnsubscribeFromNewsletterInput!) { unsubscribeFromNewsletter(input: $input) { status } } 
Variables
{"input": UnsubscribeFromNewsletterInput} 
Response
{"data": {"unsubscribeFromNewsletter": {"status": "UNSUBSCRIBED"}}} 

updateComment

Description

Updates a comment on a post.

Response

Returns an UpdateCommentPayload!

Arguments
Name Description
input - UpdateCommentInput!

Example

Query
mutation UpdateComment($input: UpdateCommentInput!) { updateComment(input: $input) { comment { id content { ...ContentFragment } author { ...UserFragment } replies { ...CommentReplyConnectionFragment } dateAdded stamp totalReactions myTotalReactions } } } 
Variables
{"input": UpdateCommentInput} 
Response
{"data": {"updateComment": {"comment": Comment}}} 

updateContentBlock

Response

Returns an UpdateContentBlockPayload!

Arguments
Name Description
input - UpdateContentBlockInput!

Example

Query
mutation UpdateContentBlock($input: UpdateContentBlockInput!) { updateContentBlock(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": UpdateContentBlockInput} 
Response
{ "data": { "updateContentBlock": { "project": DocumentationProject } } } 

updateCustomMdxComponent

Response

Returns an UpdateCustomMdxComponentPayload!

Arguments
Name Description
input - UpdateCustomMdxComponentInput!

Example

Query
mutation UpdateCustomMdxComponent($input: UpdateCustomMdxComponentInput!) { updateCustomMdxComponent(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": UpdateCustomMdxComponentInput} 
Response
{ "data": { "updateCustomMdxComponent": { "project": DocumentationProject } } } 

updateDocumentationAppearance

Arguments
Name Description
input - UpdateDocumentationAppearanceInput!

Example

Query
mutation UpdateDocumentationAppearance($input: UpdateDocumentationAppearanceInput!) { updateDocumentationAppearance(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": UpdateDocumentationAppearanceInput} 
Response
{ "data": { "updateDocumentationAppearance": { "project": DocumentationProject } } } 

updateDocumentationGeneralSettings

Arguments
Name Description
input - UpdateDocumentationGeneralSettingsInput!

Example

Query
mutation UpdateDocumentationGeneralSettings($input: UpdateDocumentationGeneralSettingsInput!) { updateDocumentationGeneralSettings(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": UpdateDocumentationGeneralSettingsInput} 
Response
{ "data": { "updateDocumentationGeneralSettings": { "project": DocumentationProject } } } 

updateDocumentationGuide

Response

Returns an UpdateDocumentationGuidePayload!

Arguments
Name Description
input - UpdateDocumentationGuideInput!

Example

Query
mutation UpdateDocumentationGuide($input: UpdateDocumentationGuideInput!) { updateDocumentationGuide(input: $input) { guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": UpdateDocumentationGuideInput} 
Response
{ "data": { "updateDocumentationGuide": { "guide": DocumentationGuide } } } 

updateDocumentationIntegrations

Arguments
Name Description
input - UpdateDocumentationIntegrationsInput!

Example

Query
mutation UpdateDocumentationIntegrations($input: UpdateDocumentationIntegrationsInput!) { updateDocumentationIntegrations(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": UpdateDocumentationIntegrationsInput} 
Response
{ "data": { "updateDocumentationIntegrations": { "project": DocumentationProject } } } 

updateDocumentationPageSettings

Arguments
Name Description
input - UpdateDocumentationPageSettingsInput!

Example

Query
mutation UpdateDocumentationPageSettings($input: UpdateDocumentationPageSettingsInput!) { updateDocumentationPageSettings(input: $input) { page { id path title description createdAt updatedAt format content { ...DocumentationPageContentFragment } status visibility guideSlug draft { ...DocumentationPageDraftFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } url } sidebarItem { id path label pages { ...DocumentationSidebarItemPageFragment } visibility status hasChanges createdAt updatedAt url } guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": UpdateDocumentationPageSettingsInput} 
Response
{ "data": { "updateDocumentationPageSettings": { "page": DocumentationPage, "sidebarItem": DocumentationSidebarItemPage, "guide": DocumentationGuide } } } 

updateDocumentationProjectAIPrompt

Description

Mutation to update the AI search prompts

Arguments
Name Description
input - UpdateDocumentationProjectAIPromptInput!

Example

Query
mutation UpdateDocumentationProjectAIPrompt($input: UpdateDocumentationProjectAIPromptInput!) { updateDocumentationProjectAIPrompt(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": UpdateDocumentationProjectAIPromptInput} 
Response
{ "data": { "updateDocumentationProjectAIPrompt": { "project": DocumentationProject } } } 

updateDocumentationProjectSubdomain

Arguments
Name Description
input - UpdateDocumentationProjectSubdomainInput!

Example

Query
mutation UpdateDocumentationProjectSubdomain($input: UpdateDocumentationProjectSubdomainInput!) { updateDocumentationProjectSubdomain(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } } } 
Variables
{"input": UpdateDocumentationProjectSubdomainInput} 
Response
{ "data": { "updateDocumentationProjectSubdomain": { "project": DocumentationProject } } } 

updateDocumentationSection

Description

Mutation to update a section in a guide

Arguments
Name Description
input - UpdateDocumentationSectionInput!

Example

Query
mutation UpdateDocumentationSection($input: UpdateDocumentationSectionInput!) { updateDocumentationSection(input: $input) { section { id label path pages { ...DocumentationSidebarItemPageFragment } createdAt updatedAt status visibility } guide { id slug name status seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } isLocked lastModified versionId url sidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } publishedSidebarItems {  ... on DocumentationSection { ...DocumentationSectionFragment } ... on DocumentationSidebarItemPage { ...DocumentationSidebarItemPageFragment } ... on DocumentationLink { ...DocumentationLinkFragment } } page { ...DocumentationPageFragment } publishedPage { ...DocumentationPageFragment } redirectedPublishedPage { ...DocumentationPageFragment } hasChanges provider } } } 
Variables
{"input": UpdateDocumentationSectionInput} 
Response
{ "data": { "updateDocumentationSection": { "section": DocumentationSection, "guide": DocumentationGuide } } } 

updatePost

Response

Returns an UpdatePostPayload!

Arguments
Name Description
input - UpdatePostInput!

Example

Query
mutation UpdatePost($input: UpdatePostInput!) { updatePost(input: $input) { post { id slug previousSlugs title subtitle author { ...UserFragment } coAuthors { ...UserFragment } tags { ...TagFragment } url canonicalUrl publication { ...PublicationFragment } cuid coverImage { ...PostCoverImageFragment } bannerImage { ...PostBannerImageFragment } brief readTimeInMinutes views series { ...SeriesFragment } reactionCount replyCount responseCount featured contributors { ...UserFragment } commenters { ...PostCommenterConnectionFragment } comments { ...PostCommentConnectionFragment } bookmarked content { ...ContentFragment } likedBy { ...PostLikerConnectionFragment } featuredAt publishedAt updatedAt preferences { ...PostPreferencesFragment } audioUrls { ...AudioUrlsFragment } seo { ...SEOFragment } ogMetaData { ...OpenGraphMetaDataFragment } hasLatexInPost isFollowed isAutoPublishedFromRSS features { ...PostFeaturesFragment } sourcedFromGithub } } } 
Variables
{"input": UpdatePostInput} 
Response
{"data": {"updatePost": {"post": Post}}} 

updateRedirectionRule

Response

Returns an UpdateRedirectionRulePayload!

Arguments
Name Description
input - UpdateRedirectionRuleInput!

Example

Query
mutation UpdateRedirectionRule($input: UpdateRedirectionRuleInput!) { updateRedirectionRule(input: $input) { redirectionRule { id type source destination } } } 
Variables
{"input": UpdateRedirectionRuleInput} 
Response
{ "data": { "updateRedirectionRule": { "redirectionRule": RedirectionRule } } } 

updateReply

Description

Updates a reply

Response

Returns an UpdateReplyPayload!

Arguments
Name Description
input - UpdateReplyInput!

Example

Query
mutation UpdateReply($input: UpdateReplyInput!) { updateReply(input: $input) { reply { id content { ...ContentFragment } author { ...UserFragment } dateAdded stamp totalReactions myTotalReactions } } } 
Variables
{"input": UpdateReplyInput} 
Response
{"data": {"updateReply": {"reply": Reply}}} 

updateRoleBasedInvite

Description

Updates a role based invite for a publication.

Response

Returns an UpdateRoleBasedInvitePayload!

Arguments
Name Description
input - UpdateRoleBasedInviteInput!

Example

Query
mutation UpdateRoleBasedInvite($input: UpdateRoleBasedInviteInput!) { updateRoleBasedInvite(input: $input) { invite { id role isUnlimitedCapacity usedCapacity capacity inviteLink createdAt expiryDate } } } 
Variables
{"input": UpdateRoleBasedInviteInput} 
Response
{ "data": { "updateRoleBasedInvite": {"invite": RoleBasedInvite} } } 

updateSeries

Description

Updates a series.

Response

Returns an UpdateSeriesPayload!

Arguments
Name Description
input - UpdateSeriesInput!

Example

Query
mutation UpdateSeries($input: UpdateSeriesInput!) { updateSeries(input: $input) { series { id name createdAt description { ...ContentFragment } coverImage author { ...UserFragment } cuid slug sortOrder posts { ...SeriesPostConnectionFragment } } } } 
Variables
{"input": UpdateSeriesInput} 
Response
{"data": {"updateSeries": {"series": Series}}} 

updateWebhook

Response

Returns an UpdateWebhookPayload!

Arguments
Name Description
input - UpdateWebhookInput!

Example

Query
mutation UpdateWebhook($input: UpdateWebhookInput!) { updateWebhook(input: $input) { webhook { id publication { ...PublicationFragment } url events secret createdAt updatedAt messages { ...WebhookMessageConnectionFragment } } } } 
Variables
{"input": UpdateWebhookInput} 
Response
{"data": {"updateWebhook": {"webhook": Webhook}}} 

verifyDocumentationProjectCustomDomain

Example

Query
mutation VerifyDocumentationProjectCustomDomain($input: VerifyDocumentationProjectCustomDomainInput!) { verifyDocumentationProjectCustomDomain(input: $input) { project { id domain { ...DocumentationProjectDomainSettingsFragment } name description settings { ...DocumentationProjectSettingsFragment } links { ...DocumentationProjectLinksFragment } publishedGuides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } guides {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } analytics { ...DocumentationProjectAnalyticsFragment } members { ...DocumentationProjectMemberFragment } membersV2 { ...DocumentationProjectMemberConnectionFragment } createdAt updatedAt guide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } publishedGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } defaultGuide {  ... on DocumentationGuide { ...DocumentationGuideFragment } ... on DocumentationApiReference { ...DocumentationApiReferenceFragment } } customPage { ...DocsCustomPageFragment } customPages { ...DocsCustomPageConnectionFragment } appearance { ...DocumentationProjectAppearanceFragment } integrations { ...DocumentationProjectIntegrationsFragment } features { ...DocumentationProjectFeaturesFragment } url navigation { ...DocumentationProjectNavigationFragment } searchUsers { ...DocumentationProjectSearchUserConnectionFragment } pendingInvites { ...DocumentationProjectPendingInviteConnectionFragment } owner { ...UserFragment } subscription { ...DocumentationProjectSubscriptionFragment } ai { ...DocumentationProjectAIPreferenceFragment } } dnsVerificationEntries { type name value } } } 
Variables
{"input": VerifyDocumentationProjectCustomDomainInput} 
Response
{ "data": { "verifyDocumentationProjectCustomDomain": { "project": DocumentationProject, "dnsVerificationEntries": [DnsVerificationEntry] } } } 

Types

AbsoluteTimeRange

Fields
Input Field Description
from - DateTime

The start date of the views. The time range will include this date (using >=).

Defaults to the unix epoch start (1970-01-01).

to - DateTime

The end date of the views. The time range will include this date (using <=).

Defaults to the current date.

Example
{ "from": "2007-12-03T10:15:30Z", "to": "2007-12-03T10:15:30Z" } 

AcceptInviteToDocumentationProjectInput

Description

The input for accepting an invitation to join a documentation project.

Fields
Input Field Description
inviteToken - String! The invitation token to accept.
Example
{"inviteToken": "xyz789"} 

AcceptInviteToDocumentationProjectPayload

Description

Response to accepting an invitation to join a documentation project.

Fields
Field Name Description
success - Boolean! Signifies the success of the mutation.
project - DocumentationProject The documentation project that the user has been invited to.
Example
{"success": true, "project": DocumentationProject} 

AcceptInviteToPublicationInput

Fields
Input Field Description
inviteToken - String! The invitation token to accept.
Example
{"inviteToken": "xyz789"} 

AcceptInviteToPublicationPayload

Description

Response to accepting an invitation to join a publication.

Fields
Field Name Description
success - Boolean! Signifies if the mutation was successful.
Example
{"success": false} 

AcceptRoleBasedInviteInput

Description

Input to accept a role based invite.

Fields
Input Field Description
inviteToken - String! Invite token of the role based invite.
Example
{"inviteToken": "abc123"} 

AcceptRoleBasedInvitePayload

Description

Input to toggle role based invite links.

Fields
Field Name Description
success - Boolean! Signifies if the mutation was successful.
Example
{"success": true} 

AddCommentInput

Fields
Input Field Description
postId - ID!
contentMarkdown - String!
Example
{ "postId": "4", "contentMarkdown": "xyz789" } 

AddCommentPayload

Fields
Field Name Description
comment - Comment
Example
{"comment": Comment} 

AddContentBlockInput

Fields
Input Field Description
projectId - ID!
embedId - String!
label - String!
content - String!
Example
{ "projectId": 4, "embedId": "xyz789", "label": "xyz789", "content": "xyz789" } 

AddContentBlockPayload

Fields
Field Name Description
project - DocumentationProject!
Example
{"project": DocumentationProject} 

AddCustomMdxComponentInput

Fields
Input Field Description
projectId - ID!
componentId - String!
code - String!
Example
{ "projectId": "4", "componentId": "abc123", "code": "abc123" } 

AddCustomMdxComponentPayload

Fields
Field Name Description
project - DocumentationProject!
Example
{"project": DocumentationProject} 

AddDocumentationProjectCustomDomainInput

Fields
Input Field Description
projectId - ID!
domain - String!
wwwDomain - Boolean!
Example
{ "projectId": "4", "domain": "xyz789", "wwwDomain": true } 

AddDocumentationProjectCustomDomainPayload

Fields
Field Name Description
project - DocumentationProject
dnsVerificationEntries - [DnsVerificationEntry!]! Additional DNS entries required to verify the domain. There are cases where additional records in the DNS config are required to successfully verify the domain.
wwwRedirectDnsVerificationEntries - [DnsVerificationEntry!]!
Example
{ "project": DocumentationProject, "dnsVerificationEntries": [DnsVerificationEntry], "wwwRedirectDnsVerificationEntries": [ DnsVerificationEntry ] } 

AddPostToSeriesInput

Fields
Input Field Description
postId - ObjectId! The ID of the post to be added to the series.
seriesId - ObjectId! The ID of the series to which the post is to be added.
Example
{ "postId": ObjectId, "seriesId": ObjectId } 

AddPostToSeriesPayload

Fields
Field Name Description
series - Series The series to which the post was added.
Example
{"series": Series} 

AddReplyInput

Fields
Input Field Description
commentId - ID!
contentMarkdown - String!
Example
{ "commentId": "4", "contentMarkdown": "xyz789" } 

AddReplyPayload

Fields
Field Name Description
reply - Reply
Example
{"reply": Reply} 

AudioBlogFeature

Description

Contains the flag indicating if the audio blog feature is enabled or not. User can enable or disable the audio blog feature from the publication settings. Shows audio player on blogs if enabled.

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the audio blog feature is enabled or not.
voiceType - AudioBlogVoiceType! The voice type for the audio blog.
Example
{"isEnabled": true, "voiceType": "FEMALE"} 

AudioBlogVoiceType

Description

The voice type for the audio blog.

Values
Enum Value Description

FEMALE

Enum for the female voice type of the audio blog.

MALE

Enum for the male voice type of the audio blog.
Example
"FEMALE" 

AudioUrls

Description

Used when Audioblog feature is enabled. Contains URLs to the audioblog of the post.

Fields
Field Name Description
male - String Male version of audio url of the post.
female - String Female version of audio url of the post.
Example
{ "male": "xyz789", "female": "abc123" } 

BackupStatus

Description

The status of the backup i.e., success or failure.

Values
Enum Value Description

success

The backup was successful.

failed

The backup failed.
Example
"success" 

Badge

Description

A badge that the user has earned.

Fields
Field Name Description
id - ID! The ID of the badge.
name - String! The name of the badge.
description - String The description of the badge.
image - String! The image of the badge.
dateAssigned - DateTime The date the badge was earned.
infoURL - String Link to badge page on Hashnode.
suppressed - Boolean A flag to determine if the badge is hidden.
Example
{ "id": 4, "name": "xyz789", "description": "abc123", "image": "abc123", "dateAssigned": "2007-12-03T10:15:30Z", "infoURL": "abc123", "suppressed": true } 

BannerImageOptionsInput

Description

Contains information about banner image options of the post. Like URL of the banner image, attribution, etc.

Fields
Input Field Description
bannerImageURL - String The URL of the banner image.
Example
{"bannerImageURL": "abc123"} 

BetaFeature

Description

Contains basic information about the beta feature. A beta feature is a feature that is not yet released to all users.

Fields
Field Name Description
id - ID! The ID of the beta feature.
key - String! The key of the beta feature.
title - String The title of the beta feature.
description - String The description of the beta feature.
url - String The url of the beta feature.
enabled - Boolean! The date the beta feature was created.
Example
{ "id": "4", "key": "xyz789", "title": "abc123", "description": "abc123", "url": "xyz789", "enabled": true } 

Boolean

Description

The Boolean scalar type represents true or false.

Example
true 

CancelScheduledDraftInput

Fields
Input Field Description
draftId - ID! The Draft ID of the scheduled draft.
Example
{"draftId": 4} 

CancelScheduledDraftPayload

Fields
Field Name Description
scheduledPost - ScheduledPost! Payload returned in response of cancel scheduled post mutation.
Example
{"scheduledPost": ScheduledPost} 

ChangePublicationMemberRoleInput

Description

Input to change the role of a user in a publication.

Fields
Input Field Description
publicationId - ID! The publication ID the user is a member of.
username - String! The username of the user to change the role for.
role - UserPublicationRole! The role of the user in the publication.
Example
{ "publicationId": "4", "username": "xyz789", "role": "OWNER" } 

ChangePublicationMemberRolePayload

Description

Response to changing the role of a user in a publication.

Fields
Field Name Description
member - PublicationMember! The updated publication member.
Example
{"member": PublicationMember} 

ChangePublicationMemberVisibilityInput

Description

Input to change the privacy state of a user in a publication.

Fields
Input Field Description
publicationId - ID! The publication ID the user is a member of.
username - String! The username of the user to change the role for.
privacyState - PublicationMemberPrivacyState! The privacy state of the user in the publication. PRIVATE members are not visible on the members page while PUBLIC members are visible.
Example
{ "publicationId": "4", "username": "xyz789", "privacyState": "PRIVATE" } 

ChangePublicationMemberVisibilityPayload

Description

Response to changing the privacy state of a user in a publication.

Fields
Field Name Description
member - PublicationMember! The updated publication member.
Example
{"member": PublicationMember} 

CheckCustomDomainAvailabilityInput

Fields
Input Field Description
domain - String!
withWWWRedirect - Boolean!
Example
{ "domain": "abc123", "withWWWRedirect": false } 

CheckCustomDomainAvailabilityResult

Fields
Field Name Description
domainAvailable - Boolean!
Example
{"domainAvailable": false} 

CheckSubdomainAvailabilityResult

Fields
Field Name Description
subdomainAvailable - Boolean!
Example
{"subdomainAvailable": false} 

CollaborationFeature

Description

Contains the flag indicating if the collaboration feature is enabled or not.

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the collaboration feature is enabled or not.
Example
{"isEnabled": false} 

Comment

Description

Contains basic information about the comment. A comment is a response to a post.

Fields
Field Name Description
id - ID! The ID of the comment.
content - Content! The content of the comment in markdown and html format.
author - User! The author of the comment.
replies - CommentReplyConnection! Returns a list of replies to the comment.
Arguments
first - Int!

The number of replies to return. Max is 50.

after - String

Returns the elements in the list that come after the specified cursor.

dateAdded - DateTime! The date the comment was created.
stamp - String A unique string identifying the comment. Used as element id in the DOM on hashnode blogs.
totalReactions - Int! Total number of reactions on the comment. Reactions are hearts added to any comment.
myTotalReactions - Int! Total number of reactions on the comment by the authenticated user. User must be authenticated to use this field.
Example
{ "id": "4", "content": Content, "author": User, "replies": CommentReplyConnection, "dateAdded": "2007-12-03T10:15:30Z", "stamp": "abc123", "totalReactions": 123, "myTotalReactions": 987 } 

CommentReplyConnection

Description

Connection to get list of replies to a comment. Returns a list of edges which contains the posts in publication and cursor to the last item of the previous page.

Fields
Field Name Description
edges - [CommentReplyEdge!]! A list of edges containing nodes in the connection. A node contains a reply to a comment.
pageInfo - PageInfo! Information to aid in pagination.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "edges": [CommentReplyEdge], "pageInfo": PageInfo, "totalDocuments": 987 } 

CommentReplyEdge

Description

An edge that contains a node of type reply and cursor to the node.

Fields
Field Name Description
node - Reply! The node containing a reply to a comment.
cursor - String! A cursor to the last item of the previous page.
Example
{ "node": Reply, "cursor": "xyz789" } 

CommenterUserConnection

Description

Connection to get list of top commenters. Contains a list of edges containing nodes. Each node is a user who commented recently. Page info contains information about pagination like hasNextPage and endCursor.

Fields
Field Name Description
edges - [UserEdge!]! A list of edges of commenters.
pageInfo - PageInfo! Information to aid in pagination.
Example
{ "edges": [UserEdge], "pageInfo": PageInfo } 

Connection

Description

Connection to get list of items. Returns a list of edges which contains the items and cursor to the last item of the previous page. This is a common interface for all connections.

Fields
Field Name Description
edges - [Edge!]! A list of edges of items connection.
pageInfo - PageInfo! Information to aid in pagination.
Example
{ "edges": [Edge], "pageInfo": PageInfo } 

Content

Fields
Field Name Description
markdown - String! The Markdown version of the content.
html - String! The HTML version of the content.
text - String! The text version from sanitized html content. HTML tags are stripped and only text is returned.
Example
{ "markdown": "xyz789", "html": "abc123", "text": "xyz789" } 

CountryCodeAlpha2

Description

Two letter ISO 3166-1 alpha-2 country code.

Values
Enum Value Description

AD

Andorra

AE

United Arab Emirates

AF

Afghanistan

AG

Antigua and Barbuda

AI

Anguilla

AL

Albania

AM

Armenia

AO

Angola

AQ

Antarctica

AR

Argentina

AS

American Samoa

AT

Austria

AU

Australia

AW

Aruba

AX

Åland Islands

AZ

Azerbaijan

BA

Bosnia and Herzegovina

BB

Barbados

BD

Bangladesh

BE

Belgium

BF

Burkina Faso

BG

Bulgaria

BH

Bahrain

BI

Burundi

BJ

Benin

BL

Saint Barthélemy

BM

Bermuda

BN

Brunei Darussalam

BO

Bolivia (Plurinational State of)

BQ

Bonaire, Sint Eustatius and Saba

BR

Brazil

BS

Bahamas

BT

Bhutan

BV

Bouvet Island

BW

Botswana

BY

Belarus

BZ

Belize

CA

Canada

CC

Cocos (Keeling) Islands

CD

Congo, Democratic Republic of the

CF

Central African Republic

CG

Congo

CH

Switzerland

CI

Côte d'Ivoire

CK

Cook Islands

CL

Chile

CM

Cameroon

CN

China

CO

Colombia

CR

Costa Rica

CU

Cuba

CV

Cabo Verde

CW

Curaçao

CX

Christmas Island

CY

Cyprus

CZ

Czechia

DE

Germany

DJ

Djibouti

DK

Denmark

DM

Dominica

DO

Dominican Republic

DZ

Algeria

EC

Ecuador

EE

Estonia

EG

Egypt

EH

Western Sahara

ER

Eritrea

ES

Spain

ET

Ethiopia

FI

Finland

FJ

Fiji

FK

Falkland Islands (Malvinas)

FM

Micronesia (Federated States of)

FO

Faroe Islands

FR

France

GA

Gabon

GB

United Kingdom of Great Britain and Northern Ireland

GD

Grenada

GE

Georgia

GF

French Guiana

GG

Guernsey

GH

Ghana

GI

Gibraltar

GL

Greenland

GM

Gambia

GN

Guinea

GP

Guadeloupe

GQ

Equatorial Guinea

GR

Greece

GS

South Georgia and the South Sandwich Islands

GT

Guatemala

GU

Guam

GW

Guinea-Bissau

GY

Guyana

HK

Hong Kong

HM

Heard Island and McDonald Islands

HN

Honduras

HR

Croatia

HT

Haiti

HU

Hungary

ID

Indonesia

IE

Ireland

IL

Israel

IM

Isle of Man

IN

India

IO

British Indian Ocean Territory

IQ

Iraq

IR

Iran (Islamic Republic of)

IS

Iceland

IT

Italy

JE

Jersey

JM

Jamaica

JO

Jordan

JP

Japan

KE

Kenya

KG

Kyrgyzstan

KH

Cambodia

KI

Kiribati

KM

Comoros

KN

Saint Kitts and Nevis

KP

Korea (Democratic People's Republic of)

KR

Korea, Republic of

KW

Kuwait

KY

Cayman Islands

KZ

Kazakhstan

LA

Lao People's Democratic Republic

LB

Lebanon

LC

Saint Lucia

LI

Liechtenstein

LK

Sri Lanka

LR

Liberia

LS

Lesotho

LT

Lithuania

LU

Luxembourg

LV

Latvia

LY

Libya

MA

Morocco

MC

Monaco

MD

Moldova, Republic of

ME

Montenegro

MF

Saint Martin (French part)

MG

Madagascar

MH

Marshall Islands

MK

North Macedonia

ML

Mali

MM

Myanmar

MN

Mongolia

MO

Macao

MP

Northern Mariana Islands

MQ

Martinique

MR

Mauritania

MS

Montserrat

MT

Malta

MU

Mauritius

MV

Maldives

MW

Malawi

MX

Mexico

MY

Malaysia

MZ

Mozambique

NA

Namibia

NC

New Caledonia

NE

Niger

NF

Norfolk Island

NG

Nigeria

NI

Nicaragua

NL

Netherlands

NO

Norway

NP

Nepal

NR

Nauru

NU

Niue

NZ

New Zealand

OM

Oman

PA

Panama

PE

Peru

PF

French Polynesia

PG

Papua New Guinea

PH

Philippines

PK

Pakistan

PL

Poland

PM

Saint Pierre and Miquelon

PN

Pitcairn

PR

Puerto Rico

PS

Palestine, State of

PT

Portugal

PW

Palau

PY

Paraguay

QA

Qatar

RE

Réunion

RO

Romania

RS

Serbia

RU

Russian Federation

RW

Rwanda

SA

Saudi Arabia

SB

Solomon Islands

SC

Seychelles

SD

Sudan

SE

Sweden

SG

Singapore

SH

Saint Helena, Ascension and Tristan da Cunha

SI

Slovenia

SJ

Svalbard and Jan Mayen

SK

Slovakia

SL

Sierra Leone

SM

San Marino

SN

Senegal

SO

Somalia

SR

Suriname

SS

South Sudan

ST

Sao Tome and Principe

SV

El Salvador

SX

Sint Maarten (Dutch part)

SY

Syrian Arab Republic

SZ

Eswatini

TC

Turks and Caicos Islands

TD

Chad

TF

French Southern Territories

TG

Togo

TH

Thailand

TJ

Tajikistan

TK

Tokelau

TL

Timor-Leste

TM

Turkmenistan

TN

Tunisia

TO

Tonga

TR

Turkey

TT

Trinidad and Tobago

TV

Tuvalu

TW

Taiwan, Province of China

TZ

Tanzania, United Republic of

UA

Ukraine

UG

Uganda

UM

United States Minor Outlying Islands

US

United States of America

UY

Uruguay

UZ

Uzbekistan

VA

Holy See

VC

Saint Vincent and the Grenadines

VE

Venezuela (Bolivarian Republic of)

VG

Virgin Islands (British)

VI

Virgin Islands (U.S.)

VN

Viet Nam

VU

Vanuatu

WF

Wallis and Futuna

WS

Samoa

YE

Yemen

YT

Mayotte

ZA

South Africa

ZM

Zambia

ZW

Zimbabwe

ZZ

Unknown
Example
"AD" 

CoverImageOptionsInput

Description

Contains information about cover image options of the post. Like URL of the cover image, attribution, etc.

Fields
Input Field Description
coverImageURL - String The URL of the cover image.
isCoverAttributionHidden - Boolean A flag to indicate if the cover attribution is hidden, used when cover was chosen from unsplash.
coverImageAttribution - String Information about the cover image attribution.
coverImagePhotographer - String The name of the cover image photographer, used when cover was chosen from unsplash.
stickCoverToBottom - Boolean A flag to indicate if the cover image is sticked to bottom.
Example
{ "coverImageURL": "xyz789", "isCoverAttributionHidden": true, "coverImageAttribution": "xyz789", "coverImagePhotographer": "abc123", "stickCoverToBottom": false } 

CreateDocumentationApiReferenceInput

Fields
Input Field Description
projectId - ID!
url - String!
name - String
slug - String
Example
{ "projectId": "4", "url": "xyz789", "name": "xyz789", "slug": "xyz789" } 

CreateDocumentationApiReferencePayload

Fields
Field Name Description
guide - DocumentationApiReference!
Example
{"guide": DocumentationApiReference} 

CreateDocumentationGuideInput

Fields
Input Field Description
projectId - ID!
name - String!
slug - String
Example
{ "projectId": "4", "name": "xyz789", "slug": "abc123" } 

CreateDocumentationGuidePayload

Fields
Field Name Description
guide - DocumentationGuide!
Example
{"guide": DocumentationGuide} 

CreateDocumentationLinkInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
versionSlug - String

The slug of the version the new link should be created in.

Defaults to the default version slug.

label - String!
url - String!
Example
{ "projectId": 4, "guideSlug": "abc123", "versionSlug": "abc123", "label": "abc123", "url": "xyz789" } 

CreateDocumentationLinkPayload

Fields
Field Name Description
guide - DocumentationGuide
link - DocumentationLink
Example
{ "guide": DocumentationGuide, "link": DocumentationLink } 

CreateDocumentationPageDraftInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
versionSlug - String

The slug of the version the new page should be created in.

Defaults to the default version slug.

title - String
label - String
description - String
content - String
parentId - ID
slug - String The slug of the path used to generate the path.
metaTags - MetaTagsInput The meta tags for the page.
visibility - DocumentationSidebarItemVisibility The visibility of the page.
Example
{ "projectId": "4", "guideSlug": "abc123", "versionSlug": "xyz789", "title": "abc123", "label": "abc123", "description": "abc123", "content": "xyz789", "parentId": 4, "slug": "xyz789", "metaTags": MetaTagsInput, "visibility": "PUBLIC" } 

CreateDocumentationPageDraftPayload

Fields
Field Name Description
page - DocumentationPage
guide - DocumentationGuide
Example
{ "page": DocumentationPage, "guide": DocumentationGuide } 

CreateDocumentationPreviewPageInput

Description

The input for creating a documentation preview page

Fields
Input Field Description
id - ID The ID of the page to create
title - String The title of the page. Default = "Untitled Page"
label - String! The label of the page on the sidebar
description - String The description of the page
content - String The content of the page
slug - String The slug of the page used to create the path
metaTags - MetaTagsInput The meta tags of the page
visibility - DocumentationSidebarItemVisibility The visibility of the page
pages - [CreateDocumentationPreviewPageInput!]! The nested pages of the page
format - DocumentationPageFormat The format of the page. Could be MDX or MD.
Example
{ "id": 4, "title": "xyz789", "label": "abc123", "description": "xyz789", "content": "xyz789", "slug": "xyz789", "metaTags": MetaTagsInput, "visibility": "PUBLIC", "pages": [CreateDocumentationPreviewPageInput], "format": "MDX" } 

CreateDocumentationProjectInput

Fields
Input Field Description
name - String!
subdomain - String!
logoUrl - String
favIconUrl - String
logoDarkThemeUrl - String
description - String
settings - DocumentationProjectSettingsInput
links - DocumentationProjectLinksInput
Example
{ "name": "xyz789", "subdomain": "abc123", "logoUrl": "xyz789", "favIconUrl": "xyz789", "logoDarkThemeUrl": "abc123", "description": "xyz789", "settings": DocumentationProjectSettingsInput, "links": DocumentationProjectLinksInput } 

CreateDocumentationProjectPayload

Fields
Field Name Description
project - DocumentationProject!
Example
{"project": DocumentationProject} 

CreateDocumentationSectionInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
versionSlug - String

The slug of the version the new section should be created in.

Defaults to the default version slug.

label - String
slug - String The slug of the section used to generate the path.
Example
{ "projectId": 4, "guideSlug": "abc123", "versionSlug": "xyz789", "label": "abc123", "slug": "abc123" } 

CreateDocumentationSectionPayload

Fields
Field Name Description
guide - DocumentationGuide
section - DocumentationSection
Example
{ "guide": DocumentationGuide, "section": DocumentationSection } 

CreateDraftInput

Fields
Input Field Description
title - String The title of the resulting draft.
subtitle - String The subtitle of the resulting draft.
publicationId - ID! The ID of publication the draft and resulting post belongs to.
contentMarkdown - String Content of the resulting draft in markdown format.
publishedAt - DateTime Date when the resulting draft is published.
coverImageOptions - CoverImageOptionsInput Options for the cover image of the resulting draft.
bannerImageOptions - BannerImageOptionsInput Options for the banner image of the resulting draft.
slug - String Slug of the resulting draft.
originalArticleURL - String The URL of the original article if the draft is imported from an external source.
tags - [CreateDraftTagInput!] A list of tags added to the resulting draft.
disableComments - Boolean A flag to indicate if the comments are disabled for the resulting draft.
metaTags - MetaTagsInput Information about the meta tags added to the resulting draft, used for SEO purpose.
publishAs - ObjectId

Publish the draft on behalf of another user who is a member of the publication.

Only applicable for team publications.

seriesId - ObjectId Providing a seriesId will add the resulting draft to that series.
settings - CreateDraftSettingsInput Settings for the resulting draft like table of contents and newsletter activation.
coAuthors - [ObjectId!] Ids of the co-authors of the resulting draft.
draftOwner - ID The id of the user who owns the draft. When this field is supplied, the draft is created directly under that user's account. Only applicable for team publications.
Example
{ "title": "xyz789", "subtitle": "abc123", "publicationId": "4", "contentMarkdown": "xyz789", "publishedAt": "2007-12-03T10:15:30Z", "coverImageOptions": CoverImageOptionsInput, "bannerImageOptions": BannerImageOptionsInput, "slug": "abc123", "originalArticleURL": "abc123", "tags": [CreateDraftTagInput], "disableComments": false, "metaTags": MetaTagsInput, "publishAs": ObjectId, "seriesId": ObjectId, "settings": CreateDraftSettingsInput, "coAuthors": [ObjectId], "draftOwner": "4" } 

CreateDraftPayload

Fields
Field Name Description
draft - Draft The newly created draft
Example
{"draft": Draft} 

CreateDraftSettingsInput

Fields
Input Field Description
enableTableOfContent - Boolean A flag to indicate if the resulting draft'S post should contain a table of content
slugOverridden - Boolean Flag to indicate if the slug is overridden by the user.
activateNewsletter - Boolean Whether to send a newsletter for the resulting draft's post.
delist - Boolean A flag to indicate if the resulting draft should be delisted, used to hide the post created from the draft from public feed.
Example
{ "enableTableOfContent": false, "slugOverridden": false, "activateNewsletter": false, "delist": true } 

CreateDraftTagInput

Fields
Input Field Description
id - ObjectId

A tag id that is referencing an existing tag.

Either this or name and slug should be provided. If both are provided, the id will be used.

slug - String

A slug of a new tag to create.

Either this and name or id should be provided. If both are provided, the id will be used.

name - String

A name of a new tag to create.

Either this and slug or id should be provided. If both are provided, the id will be used.

Example
{ "id": ObjectId, "slug": "xyz789", "name": "xyz789" } 

CreateRedirectionRuleInput

Fields
Input Field Description
publicationId - ID!
source - String!
destination - URL!
type - HttpRedirectionType!
Example
{ "publicationId": "4", "source": "xyz789", "destination": "http://www.test.com/", "type": "TEMPORARY" } 

CreateRedirectionRulePayload

Fields
Field Name Description
redirectionRule - RedirectionRule!
Example
{"redirectionRule": RedirectionRule} 

CreateRoleBasedInviteForPublicationInput

Description

Input to create a role based invite for a publication.

Fields
Input Field Description
publicationId - ID! The publication ID to create the invite for.
role - UserPublicationInviteRole! The role to assign to the user in the publication.
enableUnlimitedCapacity - Boolean Boolean to enable unlimited capacity.
capacity - Int The capacity of how many members to be invited by the link.
inviteToken - String Invite token set for the invitation
expiryDate - DateTime The expiry date of the invite.
Example
{ "publicationId": 4, "role": "EDITOR", "enableUnlimitedCapacity": true, "capacity": 987, "inviteToken": "xyz789", "expiryDate": "2007-12-03T10:15:30Z" } 

CreateRoleBasedInviteForPublicationPayload

Description

Response to creating a role based invite for a publication.

Fields
Field Name Description
invite - RoleBasedInvite! The created role based invite.
Example
{"invite": RoleBasedInvite} 

CreateSeriesInput

Fields
Input Field Description
name - String! The name of the series.
slug - String! The slug of the series. Used to access series page. Example https://johndoe.com/series/series-slug
publicationId - ID! The id of the publication the series belongs to.
descriptionMarkdown - String The description of the series. Accepts markdown.
coverImage - String The cover image of the series.
sortOrder - SortOrder The sort order of the series, determines if the latest posts should appear first or last in series.
Example
{ "name": "abc123", "slug": "xyz789", "publicationId": "4", "descriptionMarkdown": "xyz789", "coverImage": "xyz789", "sortOrder": "asc" } 

CreateSeriesPayload

Fields
Field Name Description
series - Series! Returns the created series.
Example
{"series": Series} 

CreateWebhookInput

Fields
Input Field Description
publicationId - ID!
url - String!
events - [WebhookEvent!]!
secret - String!
Example
{ "publicationId": 4, "url": "xyz789", "events": ["POST_PUBLISHED"], "secret": "abc123" } 

CreateWebhookPayload

Fields
Field Name Description
webhook - Webhook
Example
{"webhook": Webhook} 

CustomCSS

Fields
Field Name Description
home - String Custom CSS that will be applied on the publication homepage.
post - String Custom CSS that will be applied on all posts of the publication.
static - String Custom CSS that will be applied on all static pages of the publication.
homeMinified - String The same as home but minified.
postMinified - String The same as post but minified.
staticMinified - String The same as static but minified.
Example
{ "home": "abc123", "post": "xyz789", "static": "abc123", "homeMinified": "abc123", "postMinified": "xyz789", "staticMinified": "abc123" } 

CustomCSSFeature

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the custom CSS feature is enabled or not.
published - CustomCSS CSS that is live.
draft - CustomCSS CSS that is not published yet.
Example
{ "isEnabled": false, "published": CustomCSS, "draft": CustomCSS } 

CustomDomainStatus

Values
Enum Value Description

VALID

VERIFYING

INVALID

Example
"VALID" 

DarkModePreferences

Description

Contains the publication's dark mode preferences.

Fields
Field Name Description
enabled - Boolean A flag indicating if the dark mode is enabled for the publication.
logo - String The custom dark mode logo of the publication.
Example
{"enabled": false, "logo": "abc123"} 

DateTime

Description

A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the date-time format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.

Example
"2007-12-03T10:15:30Z" 

DefaultDocsTheme

Values
Enum Value Description

LIGHT

DARK

Example
"LIGHT" 

DeleteContentBlockInput

Fields
Input Field Description
projectId - ID!
embedId - String!
Example
{ "projectId": "4", "embedId": "xyz789" } 

DeleteContentBlockPayload

Fields
Field Name Description
project - DocumentationProject!
Example
{"project": DocumentationProject} 

DeleteCustomMdxComponentInput

Fields
Input Field Description
projectId - ID!
componentId - String!
Example
{"projectId": 4, "componentId": "xyz789"} 

DeleteCustomMdxComponentPayload

Fields
Field Name Description
project - DocumentationProject!
Example
{"project": DocumentationProject} 

DeleteRoleBasedInviteInput

Description

Input to delete a role based invite.

Fields
Input Field Description
inviteId - ID! The ID of the role based invite.
publicationId - ID!
Example
{"inviteId": "4", "publicationId": 4} 

DeleteRoleBasedInvitePayload

Description

Response to deleting a role based invite.

Fields
Field Name Description
invite - RoleBasedInvite! Deleted invite.
Example
{"invite": RoleBasedInvite} 

DeleteWebhookPayload

Fields
Field Name Description
webhook - Webhook
Example
{"webhook": Webhook} 

DeviceType

Values
Enum Value Description

DESKTOP

LAPTOP

TABLET

MOBILE

Example
"DESKTOP" 

DisableDocumentationProjectAISearchInput

Description

The input for disabling AI search for a documentation project

Fields
Input Field Description
projectId - ID! The ID of the documentation project
Example
{"projectId": 4} 

DisableDocumentationProjectAISearchPayload

Description

The response to disabling AI search for a documentation project

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

DisableDocumentationProjectHeadlessCmsInput

Fields
Input Field Description
projectId - ID!
Example
{"projectId": "4"} 

DisableDocumentationProjectHeadlessCmsPayload

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

DnsVerificationEntry

Fields
Field Name Description
type - DnsVerificationType!
name - String!
value - String!
Example
{ "type": "TXT_RECORD", "name": "xyz789", "value": "abc123" } 

DnsVerificationType

Values
Enum Value Description

TXT_RECORD

CNAME_RECORD

A_RECORD

Example
"TXT_RECORD" 

DocsAnalyticsDimension

Values
Enum Value Description

DOCUMENTATION_GUIDE

API_REFERENCE_GUIDE

PAGE

PATH

OPERATING_SYSTEM

DEVICE_TYPE

BROWSER

COUNTRY

REFERRER_HOST

Example
"DOCUMENTATION_GUIDE" 

DocsCustomPage

Description

Contains basic information about the docs custom page. Docs custom pages are pages that can be written in mdx and can be added to docs. It can be used for changelog or other such requirements.

Fields
Field Name Description
id - ID! The ID of the docs custom page.
title - String! The title of the docs custom page.
slug - String! the slug of the docs custom page. Used to access docs custom page. Example https://mydocs.com/my-page.
content - DocumentationPageContent! Content of the docs custom page. Contains mdx version of the docs custom page's content.
ogMetaData - OpenGraphMetaData Information about the docs custom page's Open Graph metadata i.e. image.
seo - SEO Information about the docs custom page's SEO metadata i.e. title and description
lastModified - DateTime! Last modified date of the docs custom page.
visibility - DocumentationSidebarItemVisibility! Visibility of the docs custom page.
Example
{ "id": "4", "title": "abc123", "slug": "xyz789", "content": DocumentationPageContent, "ogMetaData": OpenGraphMetaData, "seo": SEO, "lastModified": "2007-12-03T10:15:30Z", "visibility": "PUBLIC" } 

DocsCustomPageConnection

Fields
Field Name Description
nodes - [DocsCustomPage!]! A list docs custom pages
pageInfo - OffsetPageInfo! Information to aid in pagination.
totalDocuments - Int! Total number of docs custom pages.
Example
{ "nodes": [DocsCustomPage], "pageInfo": OffsetPageInfo, "totalDocuments": 123 } 

DocsGitHubActivityDeploymentType

Values
Enum Value Description

PREVIEW

The deployment is a preview deployment.

PRODUCTION

The deployment is a production deployment.
Example
"PREVIEW" 

DocsProjectInvitedMembers

Fields
Field Name Description
user - User Invited Hashnode user, returns null if the user is not a Hashnode user.
email - String!
role - DocumentationMemberRole!
Example
{ "user": User, "email": "abc123", "role": "OWNER" } 

DocsViews

DocsVisitors

DocumentationApiReference

Fields
Field Name Description
id - ID!
slug - String!
name - String!
status - DocumentationGuideItemStatus!
seo - SEO SEO information of the page. Contains title and description used in meta tags.
ogMetaData - OpenGraphMetaData OG meta-data of the page. Contains image url used in open graph meta tags.
isLocked - Boolean!

A guide can be locked if the subscription doesn't cover to having this guide.

A locked guide is readonly. It can only be removed or edited after subscribing.

lastModified - DateTime!
versionId - String The ID of the default version.
url - String! URL of the OpenAPI definition used by the default version of this guide.
publishedUrl - String URL of the published api reference.
definition - String! The base64 encoded gzip compressed string of the parsed OpenAPI Definition of the API Reference.
provider - GuideProvider! The provider of the guide.
Example
{ "id": "4", "slug": "xyz789", "name": "xyz789", "status": "UNPUBLISHED", "seo": SEO, "ogMetaData": OpenGraphMetaData, "isLocked": true, "lastModified": "2007-12-03T10:15:30Z", "versionId": "abc123", "url": "abc123", "publishedUrl": "abc123", "definition": "xyz789", "provider": "HASHNODE" } 

DocumentationGuide

Fields
Field Name Description
id - ID!
slug - String!
name - String!
status - DocumentationGuideItemStatus!
seo - SEO SEO information of the page. Contains title and description used in meta tags.
ogMetaData - OpenGraphMetaData OG meta-data of the page. Contains image url used in open graph meta tags.
isLocked - Boolean!

A guide can be locked if the subscription doesn't cover to having this guide.

A locked guide is readonly. It can only be removed or edited after subscribing.

lastModified - DateTime!
versionId - String The ID of the default version.
url - String

URL of the published guide.

Example: https://example.com/my-guide-slug

sidebarItems - [DocumentationSidebarItem!]! Sidebar items of the default version of this guide.
publishedSidebarItems - [DocumentationSidebarItem!]! Only published sidebar items of the default version of this guide.
page - DocumentationPage Page of any version of this guide.
Arguments
id - ID
path - String
publishedPage - DocumentationPage Only published page of any version of this guide.
Arguments
id - ID
path - String
redirectedPublishedPage - DocumentationPage

Only published page of any version of this guide. The path may include the version slug.

Takes redirects into account and may return the page that the requested page redirects to.

If the path is only a version slug, it will redirect to the first page of that version.

Arguments
id - ID
path - String
hasChanges - Boolean!
provider - GuideProvider!
Example
{ "id": "4", "slug": "xyz789", "name": "xyz789", "status": "UNPUBLISHED", "seo": SEO, "ogMetaData": OpenGraphMetaData, "isLocked": true, "lastModified": "2007-12-03T10:15:30Z", "versionId": "xyz789", "url": "xyz789", "sidebarItems": [DocumentationSection], "publishedSidebarItems": [DocumentationSection], "page": DocumentationPage, "publishedPage": DocumentationPage, "redirectedPublishedPage": DocumentationPage, "hasChanges": false, "provider": "HASHNODE" } 

DocumentationGuideItem

Example
DocumentationGuide 

DocumentationGuideItemStatus

Values
Enum Value Description

UNPUBLISHED

PUBLISHED

Example
"UNPUBLISHED" 

DocumentationGuideVisibility

Description

Visibility options for documentation guides.

Values
Enum Value Description

PUBLIC

Visible to all users.

HIDDEN

Not visible in public listings. Only visible to users with access to the project.
Example
"PUBLIC" 

DocumentationMemberRole

Values
Enum Value Description

OWNER

ADMIN

Example
"OWNER" 

DocumentationNavbarColumn

Description

A column for the navigation. Used in the footer

Fields
Field Name Description
id - ID! The ID of the column.
label - String! The label of the column.
logo - URL The logo of the column.
items - [DocumentationNavbarItem!]! The navigation items in the column.
createdAt - DateTime! The date the column was created.
updatedAt - DateTime The date the column was last updated.
Example
{ "id": "4", "label": "abc123", "logo": "http://www.test.com/", "items": [DocumentationNavbarItemLink], "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z" } 

DocumentationNavbarItem

Example
DocumentationNavbarItemLink 

DocumentationNavbarItemGuide

Description

A navigation item pointing to a guide.

Fields
Field Name Description
id - ID! The ID of the item.
label - String! The label of the item.
guide - DocumentationGuideItem! The guide the item points to.
createdAt - DateTime! The date the item was created.
updatedAt - DateTime The date the item was last updated.
Example
{ "id": "4", "label": "abc123", "guide": DocumentationGuide, "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z" } 

DocumentationNavbarItemPage

Description

A navigation item pointing to an custom page

Fields
Field Name Description
id - ID! The ID of the item.
label - String! The label of the item.
page - DocsCustomPage! The page this item points to.
openInNewTab - Boolean! Indicates if the page should open in a new tab.
createdAt - DateTime! The date the item was created.
updatedAt - DateTime The date the item was last updated.
Example
{ "id": 4, "label": "xyz789", "page": DocsCustomPage, "openInNewTab": false, "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z" } 

DocumentationPage

Fields
Field Name Description
id - ID!
path - String!
title - String!
description - String
createdAt - DateTime!
updatedAt - DateTime
format - DocumentationPageFormat!
content - DocumentationPageContent!
status - DocumentationSidebarItemStatus!
visibility - DocumentationSidebarItemVisibility!
guideSlug - String!
draft - DocumentationPageDraft!
seo - SEO SEO information of the page. Contains title and description used in meta tags.
ogMetaData - OpenGraphMetaData OG meta-data of the page. Contains image url used in open graph meta tags.
url - String

URL of the published page.

Returns null if the page is not published.

Example
{ "id": "4", "path": "abc123", "title": "abc123", "description": "abc123", "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "format": "MDX", "content": DocumentationPageContent, "status": "PUBLISHED", "visibility": "PUBLIC", "guideSlug": "abc123", "draft": DocumentationPageDraft, "seo": SEO, "ogMetaData": OpenGraphMetaData, "url": "xyz789" } 

DocumentationPageContent

Fields
Field Name Description
mdx - String
md - String
Example
{ "mdx": "abc123", "md": "xyz789" } 

DocumentationPageDraft

Fields
Field Name Description
title - String!
description - String
content - DocumentationPageContent!
Example
{ "title": "abc123", "description": "xyz789", "content": DocumentationPageContent } 

DocumentationPageFormat

Values
Enum Value Description

MDX

MD

Example
"MDX" 

DocumentationProject

Fields
Field Name Description
id - ID!
domain - DocumentationProjectDomainSettings
name - String!
description - String
settings - DocumentationProjectSettings!
links - DocumentationProjectLinks!
publishedGuides - [DocumentationGuideItem!]!
guides - [DocumentationGuideItem!]!
analytics - DocumentationProjectAnalytics!
members - [DocumentationProjectMember!]! Use membersV2
membersV2 - DocumentationProjectMemberConnection!
Arguments
pageSize - Int!

The number of members to return on a single page.

page - Int!

The page number that should be returned.

filter - DocumentationProjectMemberConnectionFilter

Filters to be applied to the member list.

createdAt - DateTime!
updatedAt - DateTime
guide - DocumentationGuideItem
Arguments
id - ID
slug - String
publishedGuide - DocumentationGuideItem
Arguments
id - ID
slug - String
defaultGuide - DocumentationGuideItem
customPage - DocsCustomPage Returns a custom page with the given slug.
Arguments
slug - String!

The slug of the docs custom page to retrieve.

customPages - DocsCustomPageConnection! Returns a list of custom pages belonging to the project.
Arguments
pageSize - Int!

The number of custom pages to return in a single page.

page - Int!

The page number that should be returned.

appearance - DocumentationProjectAppearance!
integrations - DocumentationProjectIntegrations
features - DocumentationProjectFeatures! Object containing information about beta features enabled for the documentation project.
url - String! URL of the documentation project.
navigation - DocumentationProjectNavigation! The navigation configuration for the documentation project.
searchUsers - DocumentationProjectSearchUserConnection! A user search to find users with a specific status
pendingInvites - DocumentationProjectPendingInviteConnection! Details of publication invites. Returns null if publication is not a team publication.
Arguments
pageSize - Int!

The number of pending invites to return on a single page.

page - Int!

The page number that should be returned.

owner - User! The Owner of the documentation project.
subscription - DocumentationProjectSubscription
ai - DocumentationProjectAIPreference
Example
{ "id": "4", "domain": DocumentationProjectDomainSettings, "name": "abc123", "description": "abc123", "settings": DocumentationProjectSettings, "links": DocumentationProjectLinks, "publishedGuides": [DocumentationGuide], "guides": [DocumentationGuide], "analytics": DocumentationProjectAnalytics, "members": [DocumentationProjectMember], "membersV2": DocumentationProjectMemberConnection, "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "guide": DocumentationGuide, "publishedGuide": DocumentationGuide, "defaultGuide": DocumentationGuide, "customPage": DocsCustomPage, "customPages": DocsCustomPageConnection, "appearance": DocumentationProjectAppearance, "integrations": DocumentationProjectIntegrations, "features": DocumentationProjectFeatures, "url": "abc123", "navigation": DocumentationProjectNavigation, "searchUsers": DocumentationProjectSearchUserConnection, "pendingInvites": DocumentationProjectPendingInviteConnection, "owner": User, "subscription": DocumentationProjectSubscription, "ai": DocumentationProjectAIPreference } 

DocumentationProjectAIPreference

Fields
Field Name Description
prompts - [DocumentationProjectAIPrompt!]! The prompts for the documentation project. These prompts are shown to the user when AI Search chatbot is opened.
settings - DocumentationProjectAISettings! The settings for the AI feature.
Example
{ "prompts": [DocumentationProjectAIPrompt], "settings": DocumentationProjectAISettings } 

DocumentationProjectAIPrompt

Fields
Field Name Description
id - ID! The ID of the prompt.
prompt - String! The prompt text.
createdAt - DateTime! The date the prompt was created.
Example
{ "id": "4", "prompt": "xyz789", "createdAt": "2007-12-03T10:15:30Z" } 

DocumentationProjectAISettings

Fields
Field Name Description
isSearchEnabled - Boolean! A flag to indicate if the AI search feature is enabled.
Example
{"isSearchEnabled": true} 

DocumentationProjectAnalytics

Fields
Field Name Description
views - ProjectViewsConnection
Arguments
first - Int!

The number of view nodes to be returned per page.

after - String

A cursor to the last item of the previous page.

visitors - ProjectVisitorsConnection!
Arguments
first - Int!

The number of view nodes to be returned per page.

after - String

A cursor to the last item of the previous page.

Example
{ "views": ProjectViewsConnection, "visitors": ProjectVisitorsConnection } 

DocumentationProjectAppearance

Fields
Field Name Description
logoUrl - String
logoDarkThemeUrl - String
favIconUrl - String
primaryColor - String
defaultDocsTheme - DefaultDocsTheme!
getStarted - DocumentationProjectGetStarted
customScript - String
Example
{ "logoUrl": "xyz789", "logoDarkThemeUrl": "xyz789", "favIconUrl": "xyz789", "primaryColor": "abc123", "defaultDocsTheme": "LIGHT", "getStarted": DocumentationProjectGetStarted, "customScript": "xyz789" } 

DocumentationProjectAppearanceInput

Fields
Input Field Description
logoUrl - String
logoDarkThemeUrl - String
favIconUrl - String
primaryColor - String
defaultDocsTheme - DefaultDocsTheme
getStarted - DocumentationProjectGetStartedInput
customScript - String
Example
{ "logoUrl": "xyz789", "logoDarkThemeUrl": "xyz789", "favIconUrl": "abc123", "primaryColor": "xyz789", "defaultDocsTheme": "LIGHT", "getStarted": DocumentationProjectGetStartedInput, "customScript": "abc123" } 

DocumentationProjectContentBlock

Fields
Field Name Description
id - ID! The unique identifier for the content block
label - String! label, can be used to identify the content block from the dropdown in the editor.
embedId - String! embedId, which can be used to embed the content block in the editor.
content - String! The MDX string of the content block.
Example
{ "id": 4, "label": "xyz789", "embedId": "abc123", "content": "abc123" } 

DocumentationProjectCustomComponent

Fields
Field Name Description
id - ID! The unique identifier of the custom component
componentId - String! componentId, can be embedded as %%[componentId] in the docs
code - String! The code of the custom component.
transpiledCode - String! The transpiled code of the custom component.
Example
{ "id": 4, "componentId": "xyz789", "code": "xyz789", "transpiledCode": "xyz789" } 

DocumentationProjectCustomDomain

Fields
Field Name Description
domain - String!
status - CustomDomainStatus!
verifiedAt - DateTime
wwwDomain - DocumentationProjectCustomWwwDomain
Example
{ "domain": "xyz789", "status": "VALID", "verifiedAt": "2007-12-03T10:15:30Z", "wwwDomain": DocumentationProjectCustomWwwDomain } 

DocumentationProjectCustomWwwDomain

Fields
Field Name Description
status - CustomDomainStatus!
verifiedAt - DateTime
Example
{ "status": "VALID", "verifiedAt": "2007-12-03T10:15:30Z" } 

DocumentationProjectDomainSettings

Fields
Field Name Description
hashnodeSubDomain - String!
customDomain - DocumentationProjectCustomDomain
Example
{ "hashnodeSubDomain": "abc123", "customDomain": DocumentationProjectCustomDomain } 

DocumentationProjectFeatures

Description

Contains the documentation project's beta features.

Fields
Field Name Description
collaboration - CollaborationFeature! Collaboration feature for the docs project which enables collaborative editing in the page editor.
ghSync - GitHubSyncFeature! GitHub sync feature for the docs project which enables syncing the docs project with a GitHub repository.
versioning - VersioningFeature! Versioning feature for the docs project which enables creating different versions of docs guides.
Example
{ "collaboration": CollaborationFeature, "ghSync": GitHubSyncFeature, "versioning": VersioningFeature } 

DocumentationProjectGetStarted

Fields
Field Name Description
label - String!
url - URL!
Example
{ "label": "xyz789", "url": "http://www.test.com/" } 

DocumentationProjectGetStartedInput

Fields
Input Field Description
label - String
url - URL
Example
{ "label": "xyz789", "url": "http://www.test.com/" } 

DocumentationProjectIntegrations

Fields
Field Name Description
fbPixelID - String FB Pixel ID for integration with Facebook Pixel.
hotjarSiteID - String Hotjar Site ID for integration with Hotjar.
gaTrackingID - String Google Analytics Tracking ID for integration with Google Analytics.
gTagManagerID - String Google Tag Manager ID for integration with Google Tag Manager.
intercomID - String Intercom ID for integration with Intercom
metaTags - String The meta tags associated with the documentation project.
koalaPublicKey - String Koala Public Key for integration with Koala.
msClarityID - String MS Clarity ID for integration with Microsoft Clarity.
Example
{ "fbPixelID": "xyz789", "hotjarSiteID": "xyz789", "gaTrackingID": "xyz789", "gTagManagerID": "abc123", "intercomID": "xyz789", "metaTags": "xyz789", "koalaPublicKey": "xyz789", "msClarityID": "abc123" } 

DocumentationProjectIntegrationsInput

Fields
Input Field Description
gaTrackingID - String
gTagManagerID - String
intercomID - String
fbPixelID - String
hotjarSiteID - String
metaTags - String
koalaPublicKey - String
msClarityID - String
Example
{ "gaTrackingID": "abc123", "gTagManagerID": "abc123", "intercomID": "abc123", "fbPixelID": "xyz789", "hotjarSiteID": "abc123", "metaTags": "xyz789", "koalaPublicKey": "xyz789", "msClarityID": "abc123" } 

DocumentationProjectInvite

Description

Contains the pending invite information.

Fields
Field Name Description
id - ID! The ID of the pending invite.
user - User! Invited Hashnode user, returns null if the user is not a Hashnode user.
role - DocumentationMemberRole! The role assigned to the user in the publication.
Example
{ "id": "4", "user": User, "role": "OWNER" } 

DocumentationProjectLinksInput

Fields
Input Field Description
twitter - String
instagram - String
github - String
website - String
hashnode - String
youtube - String
dailydev - String
linkedin - String
mastodon - String
githubRepository - String
bluesky - String
Example
{ "twitter": "abc123", "instagram": "xyz789", "github": "abc123", "website": "abc123", "hashnode": "abc123", "youtube": "abc123", "dailydev": "xyz789", "linkedin": "xyz789", "mastodon": "xyz789", "githubRepository": "abc123", "bluesky": "abc123" } 

DocumentationProjectMember

Fields
Field Name Description
user - User! The user who is a member of the documentation project.
role - DocumentationMemberRole! The role of the member in the documentation project.
Example
{"user": User, "role": "OWNER"} 

DocumentationProjectMemberConnection

Fields
Field Name Description
nodes - [DocumentationProjectMemberV2!]! A list of members.
pageInfo - OffsetPageInfo! Information to aid in pagination.
totalDocuments - Int! Total number of nodes available i.e. number of members.
Example
{ "nodes": [DocumentationProjectMemberV2], "pageInfo": OffsetPageInfo, "totalDocuments": 123 } 

DocumentationProjectMemberConnectionFilter

Description

The filter for the documentation member connection.

Fields
Input Field Description
searchTerm - String Search filter can be used to filter members by their username or email.
Example
{"searchTerm": "abc123"} 

DocumentationProjectMemberV2

Fields
Field Name Description
id - ID! The ID of the member.
user - User! The user who is a member of the documentation project.
role - DocumentationMemberRole! The role of the member in the documentation project.
Example
{"id": 4, "user": User, "role": "OWNER"} 

DocumentationProjectNavigation

Description

Contains the header and footer navigation for the documentation project.

Fields
Field Name Description
header - [DocumentationNavbarItem!]! The items in the header navigation.
footer - [DocumentationNavbarColumn!]! The columns in the footer navigation.
Example
{ "header": [DocumentationNavbarItemLink], "footer": [DocumentationNavbarColumn] } 

DocumentationProjectPendingInviteConnection

Description

A connection for the user search result.

Fields
Field Name Description
nodes - [DocumentationProjectInvite!]! A list of invites
pageInfo - OffsetPageInfo! Information to aid in pagination.
totalDocuments - Int! The total number of invites.
Example
{ "nodes": [DocumentationProjectInvite], "pageInfo": OffsetPageInfo, "totalDocuments": 987 } 

DocumentationProjectProductName

Values
Enum Value Description

STARTUP

ENTERPRISE

Example
"STARTUP" 

DocumentationProjectSearchUserConnection

Description

A connection for the user search result.

Fields
Field Name Description
nodes - [User!]! A list user nodes.
edges - [DocumentationProjectSearchUserEdge!]! The edges containing the user and the status of the user.
pageInfo - OffsetPageInfo! Information to aid in pagination.
totalDocuments - Int! Total number of nodes available i.e. number of user search results.
Example
{ "nodes": [User], "edges": [DocumentationProjectSearchUserEdge], "pageInfo": OffsetPageInfo, "totalDocuments": 987 } 

DocumentationProjectSearchUserEdge

Fields
Field Name Description
status - UserInviteStatus!
node - User!
Example
{"status": "INVITED", "node": User} 

DocumentationProjectSearchUsersInput

Fields
Input Field Description
status - UserInviteStatus!
searchTerm - String!
pageSize - Int! The number of users to return on a single page.
page - Int! The page number that should be returned.
Example
{ "status": "INVITED", "searchTerm": "abc123", "pageSize": 987, "page": 123 } 

DocumentationProjectSettings

Fields
Field Name Description
isRobotsAllowed - Boolean!
isHashnodeLoginAllowed - Boolean!
isHeadless - Boolean! A flag to indicate if the documentation project is using Headless CMS.
Example
{"isRobotsAllowed": false, "isHashnodeLoginAllowed": true, "isHeadless": true} 

DocumentationProjectSettingsInput

Fields
Input Field Description
allowRobots - Boolean
allowHashnodeLogin - Boolean
Example
{"allowRobots": false, "allowHashnodeLogin": false} 

DocumentationProjectSubscription

Fields
Field Name Description
status - DocumentationProjectSubscriptionStatus!
productName - DocumentationProjectProductName!
nextBillingCycle - DateTime
maxSeats - Int!
Example
{ "status": "ACTIVE", "productName": "STARTUP", "nextBillingCycle": "2007-12-03T10:15:30Z", "maxSeats": 123 } 

DocumentationProjectSubscriptionStatus

Values
Enum Value Description

ACTIVE

PAST_DUE

CANCELED

UNPAID

Example
"ACTIVE" 

DocumentationSection

Fields
Field Name Description
id - ID!
label - String!
path - String!
pages - [DocumentationSidebarItemPage!]!
createdAt - DateTime!
updatedAt - DateTime
status - DocumentationSidebarItemStatus!
visibility - DocumentationSidebarItemVisibility!
Example
{ "id": 4, "label": "xyz789", "path": "xyz789", "pages": [DocumentationSidebarItemPage], "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "status": "PUBLISHED", "visibility": "PUBLIC" } 

DocumentationSidebarItem

Example
DocumentationSection 

DocumentationSidebarItemPage

Fields
Field Name Description
id - ID!
path - String!
label - String!
pages - [DocumentationSidebarItemPage!]!
visibility - DocumentationSidebarItemVisibility!
status - DocumentationSidebarItemStatus!
hasChanges - Boolean!
createdAt - DateTime!
updatedAt - DateTime
url - String

URL of the published page.

Returns null if the page is not published.

Example
{ "id": "4", "path": "xyz789", "label": "xyz789", "pages": [DocumentationSidebarItemPage], "visibility": "PUBLIC", "status": "PUBLISHED", "hasChanges": true, "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "url": "xyz789" } 

DocumentationSidebarItemStatus

Values
Enum Value Description

PUBLISHED

UNPUBLISHED

Example
"PUBLISHED" 

DocumentationSidebarItemVisibility

Values
Enum Value Description

PUBLIC

HIDDEN

Example
"PUBLIC" 

DomainInfo

Description

Contains the publication's domain information.

Fields
Field Name Description
hashnodeSubdomain - String

The subdomain of the publication on hashnode.dev.

It will redirect to you custom domain if it is present and ready.

domain - DomainStatus The domain of the publication.
wwwPrefixedDomain - DomainStatus The www prefixed domain of the publication. Says if redirect to www domain is configured.
Example
{ "hashnodeSubdomain": "xyz789", "domain": DomainStatus, "wwwPrefixedDomain": DomainStatus } 

DomainStatus

Description

Contains the publication's domain status.

Fields
Field Name Description
host - String! The host of the publication domain.
ready - Boolean! A flag indicating if the publication domain is ready.
status - CustomDomainStatus! A flag indicating the status of a publication domain
verifiedAt - DateTime A timestamp indicating when the domain was verified. It is only present if the domain is verified.
Example
{ "host": "abc123", "ready": true, "status": "VALID", "verifiedAt": "2007-12-03T10:15:30Z" } 

Draft

Description

Contains basic information about the draft. A draft is a post that is not published yet.

Fields
Field Name Description
id - ID! The ID of the draft.
slug - String!
title - String The title of the draft. It would become the title of the post when published.
subtitle - String The subtitle of the draft. It would become the subtitle of the post when published.
author - User! The author of the draft.
coAuthors - [User!]

Returns the user details of the co-authors of the post.

Only available for team publications.

publishAs - User
tags - [Tag!]! Returns list of tags added to the draft. Contains tag id, name, slug, etc. Use tagsV2 instead. Will be removed on 26/02/2024.
tagsV2 - [DraftTag!]!
canonicalUrl - String
publication - Publication The publication the draft belongs to.
coverImage - DraftCoverImage The cover image preference of the draft. Contains cover image URL and other details.
bannerImage - DraftBannerImage The banner image preference of the draft. Contains banner image URL and other details. Similar to cover image but user can use banner image as alternate cover on single post page.
readTimeInMinutes - Int!
series - Series Information of the series the draft belongs to.
content - Content Content of the draft in HTML and markdown
dateUpdated - DateTime! The date the draft was updated. Use updatedAt instead. Will be removed on 26/12/2023.
updatedAt - DateTime!
settings - DraftSettings!
seo - SEO SEO information of the draft. Contains title and description used in meta tags.
ogMetaData - OpenGraphMetaData OG meta-data of the draft. Contains image url used in open graph meta tags.
features - DraftFeatures! Draft feature-related fields.
lastBackup - DraftBackup Information about the last backup of the draft.
lastSuccessfulBackupAt - DateTime The date the draft was last successfully backed up.
lastFailedBackupAt - DateTime The date the draft last failed to back up.
scheduledDate - DateTime The date the draft is scheduled to be published.
isSubmittedForReview - Boolean

Whether or not the draft has been submitted for review.

Only applicable to drafts in team publications.

publishedPost - Post Returns the published post when the draft is published, returns null otherwise
Example
{ "id": 4, "slug": "xyz789", "title": "abc123", "subtitle": "abc123", "author": User, "coAuthors": [User], "publishAs": User, "tags": [Tag], "tagsV2": [Tag], "canonicalUrl": "xyz789", "publication": Publication, "coverImage": DraftCoverImage, "bannerImage": DraftBannerImage, "readTimeInMinutes": 123, "series": Series, "content": Content, "dateUpdated": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "settings": DraftSettings, "seo": SEO, "ogMetaData": OpenGraphMetaData, "features": DraftFeatures, "lastBackup": DraftBackup, "lastSuccessfulBackupAt": "2007-12-03T10:15:30Z", "lastFailedBackupAt": "2007-12-03T10:15:30Z", "scheduledDate": "2007-12-03T10:15:30Z", "isSubmittedForReview": true, "publishedPost": Post } 

DraftBackup

Fields
Field Name Description
status - BackupStatus The status of the backup i.e., success or failure.
at - DateTime The date the backup was created.
Example
{ "status": "success", "at": "2007-12-03T10:15:30Z" } 

DraftBannerImage

Description

Contains information about the banner image of the draft.

Fields
Field Name Description
url - String! The URL of the banner image.
Example
{"url": "xyz789"} 

DraftBaseTag

Description

Contains basic information about a Tag within a Draft. A tag in a draft is a tag that is not published yet.

Fields
Field Name Description
name - String! The name of the tag. Shown in tag page.
slug - String! The slug of the tag. Used to access tags feed. Example https://hashnode.com/n/graphql
Example
{ "name": "abc123", "slug": "abc123" } 

DraftConnection

Description

Connection to get list of drafts. Returns a list of edges which contains the draft and cursor to the last item of the previous page.

Fields
Field Name Description
edges - [DraftEdge!]! A list of edges of drafts connection.
pageInfo - PageInfo! Information to aid in pagination.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "edges": [DraftEdge], "pageInfo": PageInfo, "totalDocuments": 123 } 

DraftCoverImage

Description

Contains information about the cover image of the draft.

Fields
Field Name Description
url - String! The URL of the cover image.
attribution - String Provides attribution information for the cover image, if available.
photographer - String The name of the photographer who captured the cover image.
isAttributionHidden - Boolean! True if the image attribution should be hidden.
Example
{ "url": "abc123", "attribution": "xyz789", "photographer": "abc123", "isAttributionHidden": true } 

DraftEdge

Description

An edge that contains a node of type draft and cursor to the node.

Fields
Field Name Description
node - Draft! A node in the connection containing a draft.
cursor - String! A cursor for use in pagination.
Example
{ "node": Draft, "cursor": "xyz789" } 

DraftFeatures

Fields
Field Name Description
tableOfContents - TableOfContentsFeature!
Example
{"tableOfContents": TableOfContentsFeature} 

DraftRevision

Fields
Field Name Description
id - ID! The ID of the draft revision.
content - Content! The content of the draft revision.
createdAt - DateTime! The time the revision has been created.
authorName - String! The name of the user who created the revision.
Example
{ "id": "4", "content": Content, "createdAt": "2007-12-03T10:15:30Z", "authorName": "xyz789" } 

DraftRevisionEdge

Fields
Field Name Description
node - DraftRevision! A node in the connection containing a draft revision.
cursor - String! A cursor for use in pagination.
Example
{ "node": DraftRevision, "cursor": "xyz789" } 

DraftSettings

Fields
Field Name Description
disableComments - Boolean! A flag to indicate if the comments are disabled for the post.
stickCoverToBottom - Boolean! A flag to indicate if the cover image is shown below title of the post. Default position of cover is top of title.
isDelisted - Boolean! Whether or not the post is hidden from the Hashnode community.
Example
{"disableComments": true, "stickCoverToBottom": true, "isDelisted": true} 

DraftTag

Types
Union Types

Tag

DraftBaseTag

Example
Tag 

Edge

Description

An edge that contains a node and cursor to the node. This is a common interface for all edges.

Fields
Field Name Description
node - Node! A node in the connection.
cursor - String! A cursor for use in pagination.
Example
{ "node": Node, "cursor": "abc123" } 

EmailCurrentImport

Description

The input for the email import acknowledgement mutation.

Fields
Field Name Description
status - EmailImportStatus! The status of the import
importStartedAt - DateTime! The date the import started
successfullyImported - Int The number of subscribers that have been successfully imported
attemptedToImport - Int The number of subscribers that have attempted to import
filename - String The filename of the csv file containing emails
Example
{ "status": "INITIALIZED", "importStartedAt": "2007-12-03T10:15:30Z", "successfullyImported": 123, "attemptedToImport": 123, "filename": "xyz789" } 

EmailImport

Description

Contains information about the email import.

Fields
Field Name Description
currentImport - EmailCurrentImport Contains information about the current import example if it is in progress or has finished, date started, etc
Example
{"currentImport": EmailCurrentImport} 

EmailImportStatus

Description

The status of the email import.

Values
Enum Value Description

INITIALIZED

Import has been initialized but is not yet in progress.

IN_PROGRESS

Import is in progress.

IN_REVIEW

Import has to be reviewed by Hashnode. It is not yet reviewed.

SUCCESS

Import was successful. New emails have been imported.

FAILED

There was an error during the import.

REJECTED

The has been rejected. Nothing has been imported.

FINISHED

The import has been acknowledged by the user.
Example
"INITIALIZED" 

EmailNotificationPreferences

Description

User's email notification preferences.

Fields
Field Name Description
weeklyNewsletterEmails - Boolean! Indicates if the user has opted in to receive the Hashnode Weekly newsletter.
activityNotifications - Boolean! Indicates if the user has opted in to receive activity notifications.
generalAnnouncements - Boolean! Indicates if the user has opted in to receive general announcements.
monthlyBlogStats - Boolean! Indicates if the user has opted in to receive monthly blog performance stats.
newFollowersWeekly - Boolean! Indicates if the user has opted in to receive new followers weekly.
Example
{ "weeklyNewsletterEmails": true, "activityNotifications": false, "generalAnnouncements": false, "monthlyBlogStats": true, "newFollowersWeekly": true } 

EnableDocumentationProjectAISearchInput

Description

The input for enabling AI search for a documentation project

Fields
Input Field Description
projectId - ID! The ID of the documentation project
Example
{"projectId": "4"} 

EnableDocumentationProjectAISearchPayload

Description

The response to enabling AI search for a documentation project

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

EnableDocumentationProjectHeadlessCmsInput

Fields
Input Field Description
projectId - ID!
Example
{"projectId": 4} 

EnableDocumentationProjectHeadlessCmsPayload

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

FailedInvite

Description

Invitations that failed to be sent to the user

Fields
Field Name Description
email - String The email of the user that failed to invite.
username - String The username of the user that failed to invite.
errorMessage - String! The reason why the user failed to invite.
Example
{ "email": "xyz789", "username": "abc123", "errorMessage": "xyz789" } 

Feature

Description

Common fields that describe a feature.

Fields
Field Name Description
isEnabled - Boolean! Whether the feature is enabled or not.
Example
{"isEnabled": false} 

FeedFilter

Fields
Input Field Description
type - FeedType The type of feed to be returned.
minReadTime - Int Adds a filter to return posts with minimum number of minutes required to read the post.
maxReadTime - Int Adds a filter to return posts with maximum number of minutes required to read the post.
tags - [ObjectId!] Adds a filter to return posts with tagged with provided tags only.
Example
{ "type": "FOLLOWING", "minReadTime": 987, "maxReadTime": 123, "tags": [ObjectId] } 

FeedPostConnection

Description

Connection for posts within a feed. Contains a list of edges containing nodes. Each node is a post. Page info contains information about pagination like hasNextPage and endCursor.

Fields
Field Name Description
edges - [PostEdge!]! A list of edges containing Post information
pageInfo - PageInfo! Information for pagination in Post connection.
Example
{ "edges": [PostEdge], "pageInfo": PageInfo } 

FeedType

Description

Contains information about type of feed to be returned.

Values
Enum Value Description

FOLLOWING

Returns only posts of the users you follow or publications you have subscribed to.

Note: You have to be authenticated to use this feed type.

PERSONALIZED

Returns only posts based on users following and interactions.

Personalised feed is curated per requesting user basis.

RECENT

Returns posts which were published recently, sorted based on recency.

RELEVANT

Returns posts based on old personalization algorithm.

FEATURED

Returns posts which were featured, sorted based on recency.

BOOKMARKS

Returns posts which were bookmarked by the user, sorted based on recency.

READING_HISTORY

Returns posts which were viewed by the user, sorted based on recency.
Example
"FOLLOWING" 

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45 

FollowTagsInput

Fields
Input Field Description
ids - [ID!]! List of tag ids to follow.
Example
{"ids": ["4"]} 

FollowTagsPayload

Fields
Field Name Description
tags - [Tag!] List of tags followed by the user.
Example
{"tags": [Tag]} 

GPTBotCrawlingFeature

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the GPT Bot Crawler feature is enabled or not.
Example
{"isEnabled": true} 

GenerateDocumentationProjectPreviewAuthorizationTokenInput

Description

The input for the exchange of token to a JWT to preview token for a documentation project.

Fields
Input Field Description
token - String!
Example
{"token": "abc123"} 

GenerateDocumentationProjectPreviewAuthorizationTokenPayload

Description

The payload for the exchange of token to a JWT to preview token for a documentation project.

Fields
Field Name Description
authorizationToken - String The JWT that can be used to preview the documentation project.
project - DocumentationProject The project for which the JWT is generated. With this request, authenticated fields are not accessible.
Example
{ "authorizationToken": "abc123", "project": DocumentationProject } 

GenerateDocumentationProjectPreviewTokenInput

Description

The input for the generation of a exchangeable preview token for a documentation project.

Fields
Input Field Description
projectId - ID!
Example
{"projectId": "4"} 

GenerateDocumentationProjectPreviewTokenPayload

Description

The payload for the generation of a exchangeable preview token for a documentation project.

Fields
Field Name Description
token - String The token that can be exchanged for a JWT to preview the documentation project.
project - DocumentationProject The project for which the token is generated.
Example
{ "token": "xyz789", "project": DocumentationProject } 

GitHubActivityLog

Fields
Field Name Description
id - ID! The ID of the log.
createdAt - DateTime! The date the log was created.
branchName - String! The branch name that the commit belongs to.
status - GitHubSyncStatus! The status of the sync.
gitCommitId - String! The commit ID.
gitCommitMessage - String! The commit message.
gitCommitUrl - String! The commit URL.
deploymentType - DocsGitHubActivityDeploymentType! The deployment type related to the log.
deploymentUrl - String! The deployment URL. For preview activities, the deployment URL is different for every commit. For production deployments, the deploymentUrl points to the main project subdomain.
errors - [GitHubSyncError!]! The errors occurred during the sync.
Example
{ "id": 4, "createdAt": "2007-12-03T10:15:30Z", "branchName": "abc123", "status": "READY", "gitCommitId": "abc123", "gitCommitMessage": "xyz789", "gitCommitUrl": "abc123", "deploymentType": "PREVIEW", "deploymentUrl": "abc123", "errors": [GitHubSyncError] } 

GitHubSyncError

Fields
Field Name Description
code - GitHubSyncErrorCode! The error code denoting the reason of failure for GitHub sync.
messages - [String!]! List of error messages
Example
{ "code": "CONFIGURATION_ERROR", "messages": ["abc123"] } 

GitHubSyncErrorCode

Values
Enum Value Description

CONFIGURATION_ERROR

Indicates that the project has configuration errors.

DUPLICATE_SLUGS

Indicates that the project has duplicate slugs.

DUPLICATE_PATHS

Indicates that the project has duplicate paths.

MISSING_FILES

Indicates that the project has missing files.

CONTENT_ERROR

Indicates that the project has invalid content.
Example
"CONFIGURATION_ERROR" 

GitHubSyncFeature

Description

Contains the flag indicating if the GitHub sync feature is enabled or not.

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the GitHub sync feature is enabled or not.
Example
{"isEnabled": true} 

GitHubSyncStatus

Values
Enum Value Description

READY

The sync is complete

BUILDING

The sync is in progress

FAILED

The sync failed
Example
"READY" 

GroupedByBrowserViews

Description

Views implementation that will be returned if grouping by browser.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
browser - String! The browser that these views belong to.
Example
{"id": 4, "total": 987, "browser": "xyz789"} 

GroupedByBrowserVisitors

Description

Visitors implementation that will be returned if grouping by browser.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
browser - String! The browser that these views belong to.
Example
{"id": 4, "total": 987, "browser": "abc123"} 

GroupedByCountryViews

Description

Views implementation that will be returned if grouping by country.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
country - CountryCodeAlpha2! The country that these views belong to.
Example
{"id": "4", "total": 987, "country": "AD"} 

GroupedByCountryVisitors

Description

Visitors implementation that will be returned if grouping by country.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
country - CountryCodeAlpha2! The country that these views belong to.
Example
{"id": "4", "total": 123, "country": "AD"} 

GroupedByDeviceTypeViews

Description

Views implementation that will be returned if grouping by device type.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
deviceType - DeviceType! The type of device that these views belong to.
Example
{"id": 4, "total": 987, "deviceType": "DESKTOP"} 

GroupedByDeviceTypeVisitors

Description

Visitors implementation that will be returned if grouping by device type.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
deviceType - DeviceType! The type of device that these views belong to.
Example
{ "id": "4", "total": 123, "deviceType": "DESKTOP" } 

GroupedByDocsBrowserViews

Description

Views implementation that will be returned if grouping by browser.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
browser - String! The browser that these views belong to.
Example
{ "id": "4", "total": 987, "browser": "abc123" } 

GroupedByDocsBrowserVisitors

Description

Visitors implementation that will be returned if grouping by browser.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
browser - String! The browser that these views belong to.
Example
{"id": 4, "total": 987, "browser": "abc123"} 

GroupedByDocsCountryViews

Description

Views implementation that will be returned if grouping by country.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
country - CountryCodeAlpha2! The country that these views belong to.
Example
{"id": "4", "total": 987, "country": "AD"} 

GroupedByDocsCountryVisitors

Description

Visitors implementation that will be returned if grouping by country.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
country - CountryCodeAlpha2! The country that these views belong to.
Example
{"id": "4", "total": 987, "country": "AD"} 

GroupedByDocsDeviceTypeViews

Description

Views implementation that will be returned if grouping by device type.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
deviceType - DeviceType! The type of device that these views belong to.
Example
{ "id": "4", "total": 123, "deviceType": "DESKTOP" } 

GroupedByDocsDeviceTypeVisitors

Description

Visitors implementation that will be returned if grouping by device type.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
deviceType - DeviceType! The type of device that these views belong to.
Example
{ "id": "4", "total": 987, "deviceType": "DESKTOP" } 

GroupedByDocsGuideViews

Description

Grouped views by documentation guide or API reference guide.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
guide - DocumentationGuideItem The documentation Guide or the API reference guide that these views belong to.
Example
{ "id": "4", "total": 987, "guide": DocumentationGuide } 

GroupedByDocsGuideVisitors

Description

Grouped visitors by documentation guide or API reference guide.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
guide - DocumentationGuideItem The documentation Guide or the API reference guide that these views belong to.
Example
{ "id": "4", "total": 123, "guide": DocumentationGuide } 

GroupedByDocsOperatingSystemViews

Description

Views implementation that will be returned if grouping by operating system.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
operatingSystem - String! The operating system that these views belong to.
Example
{ "id": 4, "total": 123, "operatingSystem": "xyz789" } 

GroupedByDocsOperatingSystemVisitors

Description

Visitors implementation that will be returned if grouping by operating system.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
operatingSystem - String! The operating system that these views belong to.
Example
{ "id": 4, "total": 123, "operatingSystem": "xyz789" } 

GroupedByDocsPageViews

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
page - DocumentationPage The page that these views belong to.
Example
{ "id": "4", "total": 123, "page": DocumentationPage } 

GroupedByDocsPageVisitors

Description

Visitors implementation that will be returned if grouping by docs page.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
page - DocumentationPage The page that these views belong to.
Example
{ "id": "4", "total": 123, "page": DocumentationPage } 

GroupedByDocsPathViews

Description

Views implementation that will be returned if grouping by path.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
path - String! The path that these views belong to.
Example
{ "id": "4", "total": 123, "path": "abc123" } 

GroupedByDocsPathVisitors

Description

Visitors implementation that will be returned if grouping by path.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
path - String! The path that these views belong to.
Example
{"id": 4, "total": 987, "path": "abc123"} 

GroupedByDocsReferrerHostViews

Description

Views implementation that will be returned if grouping by REFERRER_HOST dimension.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
referrerHost - String! The referrer host that these views belong to.
Example
{ "id": 4, "total": 987, "referrerHost": "abc123" } 

GroupedByDocsReferrerHostVisitors

Description

Visitors implementation that will be returned if grouping by REFERRER_HOST dimension.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
referrerHost - String! The referrer host that these views belong to.
Example
{ "id": 4, "total": 123, "referrerHost": "abc123" } 

GroupedByDocsTimeViews

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
from - DateTime! The start of the time range that these views belong to.
to - DateTime! The end of the time range that these views belong to.
Example
{ "id": 4, "total": 123, "from": "2007-12-03T10:15:30Z", "to": "2007-12-03T10:15:30Z" } 

GroupedByDocsTimeVisitors

Description

Visitors implementation that will be returned if a grouping by time is provided.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
from - DateTime! The start of the time range that these visitors visited the page.
to - DateTime! The end of the time range that these visitors visited the page.
Example
{ "id": 4, "total": 987, "from": "2007-12-03T10:15:30Z", "to": "2007-12-03T10:15:30Z" } 

GroupedByOperatingSystemViews

Description

Views implementation that will be returned if grouping by operating system.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
operatingSystem - String! The operating system that these views belong to.
Example
{ "id": "4", "total": 123, "operatingSystem": "abc123" } 

GroupedByOperatingSystemVisitors

Description

Visitors implementation that will be returned if grouping by operating system.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
operatingSystem - String! The operating system that these views belong to.
Example
{ "id": "4", "total": 987, "operatingSystem": "abc123" } 

GroupedByPageViews

Description

Views implementation that will be returned if grouping by page.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
page - StaticPage! The page that these views belong to.
Example
{"id": 4, "total": 987, "page": StaticPage} 

GroupedByPageVisitors

Description

Visitors implementation that will be returned if grouping by page.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
page - StaticPage! The page that these views belong to.
Example
{ "id": "4", "total": 987, "page": StaticPage } 

GroupedByPathViews

Description

Views implementation that will be returned if grouping by path.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
path - String! The path that these views belong to.
Example
{ "id": "4", "total": 987, "path": "xyz789" } 

GroupedByPathVisitors

Description

Visitors implementation that will be returned if grouping by path.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
path - String! The path that these views belong to.
Example
{"id": 4, "total": 123, "path": "abc123"} 

GroupedByPostViews

Description

Views implementation that will be returned if grouping by post.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
post - Post! The post that these views belong to.
Example
{"id": 4, "total": 123, "post": Post} 

GroupedByPostVisitors

Description

Visitors implementation that will be returned if grouping by post.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
post - Post! The post that these views belong to.
Example
{ "id": "4", "total": 123, "post": Post } 

GroupedByReferrerHostViews

Description

Views implementation that will be returned if grouping by REFERRER_HOST dimension.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
referrerHost - String! The referrer host that these views belong to.
Example
{ "id": 4, "total": 123, "referrerHost": "abc123" } 

GroupedByReferrerHostVisitors

Description

Visitors implementation that will be returned if grouping by REFERRER_HOST dimension.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
referrerHost - String! The referrer host that these views belong to.
Example
{ "id": 4, "total": 987, "referrerHost": "xyz789" } 

GroupedByTimeViews

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
from - DateTime! The start of the time range that these views belong to.
to - DateTime! The end of the time range that these views belong to.
Example
{ "id": 4, "total": 123, "from": "2007-12-03T10:15:30Z", "to": "2007-12-03T10:15:30Z" } 

GroupedByTimeVisitors

Description

Visitors implementation that will be returned if a grouping by time is provided.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
from - DateTime! The start of the time range that these visitors visited the page.
to - DateTime! The end of the time range that these visitors visited the page.
Example
{ "id": 4, "total": 123, "from": "2007-12-03T10:15:30Z", "to": "2007-12-03T10:15:30Z" } 

GuideProvider

Values
Enum Value Description

HASHNODE

GITHUB

Example
"HASHNODE" 

GuideVersionStatus

Values
Enum Value Description

STABLE

UNSTABLE

DEPRECATED

Example
"STABLE" 

HeadlessCMSFeature

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the Headless CMS feature is enabled or not.
Example
{"isEnabled": true} 

HttpRedirectionType

Values
Enum Value Description

TEMPORARY

A temporary redirect that corresponds to the 301 HTTP status code.

PERMANENT

A permanent redirect that corresponds to the 302 HTTP status code.
Example
"TEMPORARY" 

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4" 

IDocumentationNestableSidebarItem

Fields
Field Name Description
pages - [DocumentationSidebarItemPage!]!
Possible Types
IDocumentationNestableSidebarItem Types

DocumentationSection

DocumentationSidebarItemPage

Example
{"pages": [DocumentationSidebarItemPage]} 

IDocumentationSidebarItem

Fields
Field Name Description
id - ID!
label - String!
createdAt - DateTime!
updatedAt - DateTime
visibility - DocumentationSidebarItemVisibility!
Possible Types
IDocumentationSidebarItem Types

DocumentationSection

DocumentationLink

DocumentationSidebarItemPage

Example
{ "id": "4", "label": "abc123", "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "visibility": "PUBLIC" } 

IGuide

Fields
Field Name Description
id - ID!
slug - String!
name - String!
status - DocumentationGuideItemStatus!
seo - SEO SEO information of the page. Contains title and description used in meta tags.
ogMetaData - OpenGraphMetaData OG meta-data of the page. Contains image url used in open graph meta tags.
isLocked - Boolean!

A guide can be locked if the subscription doesn't cover to having this guide.

A locked guide is readonly. It can only be removed or edited after subscribing.

lastModified - DateTime!
versionId - String The ID of the default version.
provider - GuideProvider!
Possible Types
IGuide Types

DocumentationGuide

DocumentationApiReference

Example
{ "id": 4, "slug": "xyz789", "name": "abc123", "status": "UNPUBLISHED", "seo": SEO, "ogMetaData": OpenGraphMetaData, "isLocked": true, "lastModified": "2007-12-03T10:15:30Z", "versionId": "abc123", "provider": "HASHNODE" } 

IGuideVersion

Fields
Field Name Description
id - ID! Unique identifier for the guide version.
slug - String! URL-friendly identifier for the version.
name - String! Display name of the version.
codeName - String Internal code name for the version.
isDefault - Boolean!

Indicates if this is the default version.

There is always exactly one default version at a given time.

visibility - DocumentationGuideVisibility! Visibility of the guide version.
status - GuideVersionStatus! Status of the guide version.
forkedFrom - IGuideVersion The version that this version was forked from.
createdAt - DateTime! Timestamp of when the version was created.
updatedAt - DateTime Timestamp of the last update to the version.
Example
{ "id": "4", "slug": "xyz789", "name": "abc123", "codeName": "xyz789", "isDefault": false, "visibility": "PUBLIC", "status": "STABLE", "forkedFrom": IGuideVersion, "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z" } 

ITag

Description

Contains basic information about the tag. A tag is a label that categorizes posts with similar topics.

Fields
Field Name Description
id - ID! The ID of the tag.
name - String! The name of the tag. Shown in tag page.
slug - String! The slug of the tag. Used to access tags feed. Example https://hashnode.com/n/graphql
logo - String The logo of the tag. Shown in tag page.
tagline - String The tagline of the tag.
info - Content Information about the tag. Contains markdown html and text version of the tag's info.
followersCount - Int! Total number of users following this tag.
postsCount - Int! Alltime usage count of this tag in posts.
Possible Types
ITag Types

Tag

PopularTag

Example
{ "id": "4", "name": "xyz789", "slug": "xyz789", "logo": "xyz789", "tagline": "abc123", "info": Content, "followersCount": 123, "postsCount": 987 } 

IUser

Description

Basic information about a user on Hashnode.

Fields
Field Name Description
id - ID! The ID of the user. It can be used to identify the user.
username - String! The username of the user. It is unique and tied with user's profile URL. Example - https://hashnode.com/@username
name - String! The name of the user.
bio - Content The bio of the user. Visible in about me section of the user's profile.
profilePicture - String The URL to the profile picture of the user.
socialMediaLinks - SocialMediaLinks The social media links of the user. Shown on the user's profile.
badges - [Badge!]! Returns a list of badges that the user has earned. Shown on blogs /badges page. Example - https://iamshadmirza.com/badges
publications - UserPublicationsConnection! Publications associated with the user. Includes personal and team publications.
Arguments
first - Int!

The maximum number of publications to return in a batch.

after - String

The cursor to start the query from.

sortBy - UserPublicationsSort

The sort direction for the publication.

filter - UserPublicationsConnectionFilter

Filter to apply to the publications.

posts - UserPostConnection! Returns the list of posts the user has published.
Arguments
pageSize - Int!

The number of posts to return on a single page.

page - Int!

The page number that should be returned.

sortBy - UserPostsSort

The sort direction for the posts.

filter - UserPostConnectionFilter

The filters to be applied to the post list.

followersCount - Int! The number of users that follow the requested user. Visible in the user's profile.
followingsCount - Int! The number of users that this user is following. Visible in the user's profile.
tagline - String The tagline of the user. Shown on the user's profile below the name.
dateJoined - DateTime The date the user joined Hashnode.
location - String The location of the user.
availableFor - String The availability of the user based on tech stack and interests. Shown on the "I am available for" section in user's profile.
tagsFollowing - [Tag!]! Returns a list of tags that the user follows.
ambassador - Boolean! Whether or not the user is an ambassador.
deactivated - Boolean! Whether or not the user is deactivated.
followers - UserConnection! The users who are following this user
Arguments
pageSize - Int!

The number of users to return on a single page.

page - Int!

The page number that should be returned.

follows - UserConnection! The users which this user is following
Arguments
pageSize - Int!

The number of users to return on a single page.

page - Int!

The page number that should be returned.

techStack - UserTagsConnection! Returns list of tags from user's expertise. Shown on the user's profile.
Arguments
pageSize - Int!

The number of tags to return on a single page.

page - Int!

The page number that should be returned.

Possible Types
IUser Types

User

MyUser

Example
{ "id": "4", "username": "abc123", "name": "abc123", "bio": Content, "profilePicture": "xyz789", "socialMediaLinks": SocialMediaLinks, "badges": [Badge], "publications": UserPublicationsConnection, "posts": UserPostConnection, "followersCount": 987, "followingsCount": 123, "tagline": "abc123", "dateJoined": "2007-12-03T10:15:30Z", "location": "xyz789", "availableFor": "abc123", "tagsFollowing": [Tag], "ambassador": false, "deactivated": false, "followers": UserConnection, "follows": UserConnection, "techStack": UserTagsConnection } 

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987 

InviteDocumentationProjectAdminInput

Fields
Input Field Description
projectId - ID!
invites - [InviteDocumentationProjectAdminInputEmail!]!
Example
{ "projectId": "4", "invites": [InviteDocumentationProjectAdminInputEmail] } 

InviteDocumentationProjectAdminInputEmail

Fields
Input Field Description
userId - ID!
Example
{"userId": "4"} 

InviteDocumentationProjectAdminPayload

Fields
Field Name Description
project - DocumentationProject
invitedMembers - [DocsProjectInvitedMembers!]
Example
{ "project": DocumentationProject, "invitedMembers": [DocsProjectInvitedMembers] } 

InviteUsersToPublicationInput

Description

Input to invite users to a publication.

Fields
Input Field Description
publicationId - ID! The publication ID to invite users to.
users - [UserInviteInput!]! The list of users to invite to the publication.
Example
{"publicationId": 4, "users": [UserInviteInput]} 

InviteUsersToPublicationPayload

Description

Response to inviting users to a publication.

Fields
Field Name Description
success - Boolean! Signifies if the mutation was successful for all users.
successfulInviteCount - Int! The number of successful invites.
failedInvites - [FailedInvite!]! Invites that failed due to an error.
Example
{ "success": true, "successfulInviteCount": 987, "failedInvites": [FailedInvite] } 

LikeCommentInput

Fields
Input Field Description
commentId - ID!
likesCount - Int
Example
{"commentId": "4", "likesCount": 987} 

LikeCommentPayload

Fields
Field Name Description
comment - Comment
Example
{"comment": Comment} 

LikePostInput

Fields
Input Field Description
postId - ID!
likesCount - Int
Example
{"postId": "4", "likesCount": 123} 

LikePostPayload

Fields
Field Name Description
post - Post
Example
{"post": Post} 

LikeReplyInput

Fields
Input Field Description
commentId - ID!
replyId - ID!
likesCount - Int
Example
{ "commentId": "4", "replyId": 4, "likesCount": 123 } 

LikeReplyPayload

Fields
Field Name Description
reply - Reply
Example
{"reply": Reply} 

MapDocumentationProjectCustomDomainWwwRedirectInput

Fields
Input Field Description
projectId - ID!
Example
{"projectId": "4"} 

MapDocumentationProjectCustomDomainWwwRedirectPayload

Fields
Field Name Description
project - DocumentationProject
dnsVerificationEntries - [DnsVerificationEntry!]! Additional DNS entries required to verify the www redirect domain. There are cases where additional records in the DNS config are required to successfully verify the domain.
Example
{ "project": DocumentationProject, "dnsVerificationEntries": [DnsVerificationEntry] } 

MetaTagsInput

Description

Contains information about meta tags. Used for SEO purpose.

Fields
Input Field Description
title - String The title of the post used in og:title for SEO.
description - String The description of the post used in og:description for SEO.
image - String The image URL of the post used in og:image for SEO.
Example
{ "title": "xyz789", "description": "xyz789", "image": "abc123" } 

MoveDocumentationSidebarItemInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
itemId - ID!
parentId - ID
position - Int
Example
{ "projectId": 4, "guideSlug": "abc123", "itemId": "4", "parentId": "4", "position": 123 } 

MoveDocumentationSidebarItemPayload

Fields
Field Name Description
guide - DocumentationGuide
Example
{"guide": DocumentationGuide} 

MyUser

Description

Basic information about the authenticated user. User must be authenticated to use this type.

Fields
Field Name Description
id - ID! The ID of the user. It can be used to identify the user.
username - String! The username of the user. It is unique and tied with user's profile URL. Example - https://hashnode.com/@username
name - String! The name of the user.
bio - Content The bio of the user. Visible in about me section of the user's profile.
profilePicture - String The URL to the profile picture of the user.
socialMediaLinks - SocialMediaLinks The social media links of the user. Shown on the user's profile.
emailNotificationPreferences - EmailNotificationPreferences! The email notification preferences of the user.
badges - [Badge!]! Returns a list of badges that the user has earned. Shown on blogs /badges page. Example - https://iamshadmirza.com/badges
publications - UserPublicationsConnection! Publications associated with the user. Includes personal and team publications.
Arguments
first - Int!

The maximum number of publications to return in a batch.

after - String

The cursor to start the query from.

sortBy - UserPublicationsSort

The sort direction for the publication.

filter - UserPublicationsConnectionFilter

Filter to apply to the publications.

posts - UserPostConnection! Returns the list of posts the user has published.
Arguments
pageSize - Int!

The number of posts to return on a single page.

page - Int!

The page number that should be returned.

sortBy - UserPostsSort

The sort direction for the posts based on the publish dates.

filter - UserPostConnectionFilter

The filters to be applied to the post list.

followersCount - Int! The number of users that follow the requested user. Visible in the user's profile.
followingsCount - Int! The number of users that this user is following. Visible in the user's profile.
tagline - String The tagline of the user. Shown on the user's profile below the name.
dateJoined - DateTime The date the user joined Hashnode.
location - String The location of the user.
availableFor - String The availability of the user based on tech stack and interests. Shown on the "I am available for" section in user's profile.
tagsFollowing - [Tag!]! Returns a list of tags that the user follows.
ambassador - Boolean! Whether or not the user is an ambassador. Ambassadors program no longer active. Will be removed after 02/01/2024
provider - String
deactivated - Boolean! Whether or not the user is deactivated.
betaFeatures - [BetaFeature!]! A list of beta features that the user has access to. Only available to the authenticated user. Beta features are no longer supported. Will be removed after 15/12/2024
email - String! Email address of the user. Only available to the authenticated user.
unverifiedEmail - String Unverified email address of the user. Only available to the authenticated user. This is set when the user has tried updating their email address but it is not verified yet.
followers - UserConnection! The users who are following this user
Arguments
pageSize - Int!

The number of posts to return on a single page.

page - Int!

The page number that should be returned.

follows - UserConnection! The users which this user is following
Arguments
pageSize - Int!

The number of posts to return on a single page.

page - Int!

The page number that should be returned.

drafts - UserDraftConnection!
Arguments
first - Int!

The number of posts to return.

after - String

A cursor to the last item in the previous page.

role - UserRole! Returns the user's role if any.
techStack - UserTagsConnection! Returns list of tags from user's expertise. Shown on the user's profile.
Arguments
pageSize - Int!

The number of tags to return on a single page.

page - Int!

The page number that should be returned.

Example
{ "id": 4, "username": "xyz789", "name": "xyz789", "bio": Content, "profilePicture": "abc123", "socialMediaLinks": SocialMediaLinks, "emailNotificationPreferences": EmailNotificationPreferences, "badges": [Badge], "publications": UserPublicationsConnection, "posts": UserPostConnection, "followersCount": 987, "followingsCount": 987, "tagline": "abc123", "dateJoined": "2007-12-03T10:15:30Z", "location": "abc123", "availableFor": "abc123", "tagsFollowing": [Tag], "ambassador": true, "provider": "xyz789", "deactivated": true, "betaFeatures": [BetaFeature], "email": "xyz789", "unverifiedEmail": "abc123", "followers": UserConnection, "follows": UserConnection, "drafts": UserDraftConnection, "role": "SUPERUSER", "techStack": UserTagsConnection } 

NewsletterFeature

Description

Contains the flag indicating if the newsletter feature is enabled or not. User can enable or disable the newsletter feature from the publication settings. Shows a newsletter prompt on blog if enabled.

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the newsletter feature is enabled or not.
frequency - NewsletterFrequency
Example
{"isEnabled": false, "frequency": "asap"} 

NewsletterFrequency

Values
Enum Value Description

asap

weekly

Example
"asap" 

NewsletterRecord

Fields
Field Name Description
id - ID! Delivery ID of the sent newsletter
sentAt - DateTime! The date the newsletter was sent.
sentCount - Int! The number of subscribers the newsletter was sent to.
openCount - Int! The number of subscribers the newsletter was opened by.
clickCount - Int! The number of subscribers the newsletter was clicked by.
post - Post Associated post it was sent with
Example
{ "id": "4", "sentAt": "2007-12-03T10:15:30Z", "sentCount": 123, "openCount": 123, "clickCount": 987, "post": Post } 

NewsletterSubscribeStatus

Values
Enum Value Description

PENDING

CONFIRMED

Example
"PENDING" 

NewsletterSubscriber

Fields
Field Name Description
id - ID!
email - String! The email of the subscriber.
createdAt - DateTime! The date the subscriber was added. Use subscribedAt instead. Will be removed after 12/4/2024
subscribedAt - DateTime!
status - NewsletterSubscribeStatus! The status of the subscriber.
Example
{ "id": 4, "email": "xyz789", "createdAt": "2007-12-03T10:15:30Z", "subscribedAt": "2007-12-03T10:15:30Z", "status": "PENDING" } 

NewsletterUnsubscribeStatus

Values
Enum Value Description

UNSUBSCRIBED

Example
"UNSUBSCRIBED" 

Node

Description

Node is a common interface for all types example User, Post, Comment, etc.

Fields
Field Name Description
id - ID! The ID of the node.
Possible Types
Node Types

User

MyUser

SearchUser

Badge

Tag

PopularTag

Publication

RSSImport

Post

TableOfContentsItem

PostBadge

Comment

Reply

Series

Draft

DraftRevision

BetaFeature

ScheduledPost

StaticPage

Webhook

WebhookMessage

Widget

DocumentationProject

DocumentationProjectCustomComponent

DocumentationProjectContentBlock

DocumentationProjectInvite

DocumentationProjectMemberV2

DocumentationNavbarItemLink

DocumentationNavbarItemGuide

DocumentationNavbarItemPage

DocumentationNavbarColumn

GitHubActivityLog

RedirectionRule

UngroupedVisitors

GroupedByTimeVisitors

GroupedByPostVisitors

GroupedByPageVisitors

GroupedByPathVisitors

GroupedByOperatingSystemVisitors

GroupedByDeviceTypeVisitors

GroupedByBrowserVisitors

GroupedByCountryVisitors

GroupedByReferrerHostVisitors

UngroupedViews

GroupedByTimeViews

GroupedByPostViews

GroupedByPageViews

GroupedByPathViews

GroupedByOperatingSystemViews

GroupedByDeviceTypeViews

GroupedByBrowserViews

GroupedByCountryViews

GroupedByReferrerHostViews

NewsletterRecord

NewsletterSubscriber

GroupedByDocsGuideViews

GroupedByDocsPageViews

UngroupedDocsViews

GroupedByDocsTimeViews

GroupedByDocsPathViews

GroupedByDocsOperatingSystemViews

GroupedByDocsDeviceTypeViews

GroupedByDocsBrowserViews

GroupedByDocsCountryViews

UngroupedDocsVisitors

GroupedByDocsGuideVisitors

GroupedByDocsTimeVisitors

GroupedByDocsReferrerHostViews

GroupedByDocsPathVisitors

GroupedByDocsOperatingSystemVisitors

GroupedByDocsDeviceTypeVisitors

GroupedByDocsBrowserVisitors

GroupedByDocsCountryVisitors

GroupedByDocsReferrerHostVisitors

GroupedByDocsPageVisitors

DocsCustomPage

PendingInvite

RoleBasedInvite

PublicationMember

Example
{"id": "4"} 

ObjectId

Description

A field whose value conforms with the standard mongodb object Id as described here: https://docs.mongodb.com/manual/reference/method/ObjectId/#ObjectId. Example: 5e5677d71bdc2ae76344968c

Example
ObjectId 

OffsetPageInfo

Description

Contains information to help in pagination for page based pagination.

Fields
Field Name Description
hasNextPage - Boolean Indicates if there are more pages.
hasPreviousPage - Boolean Indicates if there are previous pages
previousPage - Int The page before the current page. Use it to build page navigation
nextPage - Int The page after the current page. Use it to build page navigation
Example
{ "hasNextPage": true, "hasPreviousPage": false, "previousPage": 987, "nextPage": 123 } 

OpenGraphMetaData

Description

Information to help in open graph related meta tags.

Fields
Field Name Description
image - String The image used in og:image tag for SEO purposes.
Example
{"image": "xyz789"} 

PageConnection

Description

A Connection for page based pagination to get a list of items. Returns a list of nodes which contains the items. This is a common interface for all page connections.

Fields
Field Name Description
nodes - [Node!]! A list of edges of items connection.
pageInfo - OffsetPageInfo! Information to aid in pagination.
Example
{ "nodes": [Node], "pageInfo": OffsetPageInfo } 

PageEdge

Description

An edge that contains a node and is used in page based pagination. This is a common interface for all edges in page based pagination.

Fields
Field Name Description
node - Node! A node in the connection.
Possible Types
PageEdge Types

DocumentationProjectSearchUserEdge

Example
{"node": Node} 

PageInfo

Description

Contains information to help in pagination.

Fields
Field Name Description
hasNextPage - Boolean Indicates if there are more pages.
endCursor - String The cursor of the last item in the current page. Use it as the after input to query the next page.
Example
{"hasNextPage": true, "endCursor": "abc123"} 

PagesPreferences

Description

Contains the preferences publication's autogenerated pages. Used to enable or disable pages like badge, newsletter and members.

Fields
Field Name Description
badges - Boolean A flag indicating if the publication's badge page is enabled.
newsletter - Boolean A flag indicating if the publication's newsletter page is enabled.
members - Boolean A flag indicating if the publication's member page is enabled.
Example
{"badges": true, "newsletter": false, "members": false} 

PendingInvite

Description

Contains the pending invite information.

Fields
Field Name Description
id - ID! The ID of the pending invite.
email - String The email of the user that was invited.
user - User Invited Hashnode user, returns null if the user is not a Hashnode user.
role - UserPublicationRole! The role assigned to the user in the publication.
Example
{ "id": 4, "email": "xyz789", "user": User, "role": "OWNER" } 

PendingInviteConnection

Fields
Field Name Description
nodes - [PendingInvite!]! A list of invites
pageInfo - OffsetPageInfo! Information to aid in pagination.
totalDocuments - Int! The total number of invites.
Example
{ "nodes": [PendingInvite], "pageInfo": OffsetPageInfo, "totalDocuments": 123 } 

PopularTag

Description

Contains basic information about the tag returned by popularTags query.

Fields
Field Name Description
id - ID! The ID of the tag.
name - String! The name of the tag. Shown in tag page.
slug - String! The slug of the tag. Used to access tags feed. Example https://hashnode.com/n/graphql
logo - String The logo of the tag. Shown in tag page.
tagline - String The tagline of the tag.
info - Content Information about the tag. Contains markdown html and text version of the tag's info.
followersCount - Int! Total number of users following this tag.
postsCount - Int! Alltime usage count of this tag in posts.
postsCountInPeriod - Int! The number of posts published in the given period that use this tag.
Example
{ "id": 4, "name": "xyz789", "slug": "xyz789", "logo": "abc123", "tagline": "xyz789", "info": Content, "followersCount": 123, "postsCount": 123, "postsCountInPeriod": 987 } 

PopularTagEdge

Description

Contains a tag and a cursor for pagination.

Fields
Field Name Description
node - PopularTag! The node holding the Tag information
cursor - String! A cursor for use in pagination.
Example
{ "node": PopularTag, "cursor": "xyz789" } 

Post

Description

Contains basic information about the post. A post is a published article on Hashnode.

Fields
Field Name Description
id - ID! The ID of the post. Used to uniquely identify the post.
slug - String! The slug of the post. Used as address of the post on blog. Example - https://johndoe.com/my-post-slug
previousSlugs - [String!]!

The previous slugs of the post. Only present if the slug has been changed.

This could be used to create redirects for all posts from all previous slugs to the current slug.

The latest slug is always the first element in the array.

title - String! The title of the post.
subtitle - String The subtitle of the post. Subtitle is a short description of the post which is also used in SEO if meta tags are not provided.
author - User! Returns the user details of the author of the post.
coAuthors - [User!] Returns the user details of the co-authors of the post. Hashnode users can add up to 4 co-authors as collaborators to their posts. This functionality is limited to teams publication.
tags - [Tag!] Returns list of tags added to the post. Contains tag id, name, slug, etc.
url - String! Complete URL of the post including the domain name. Example - https://johndoe.com/my-post-slug
canonicalUrl - String Canonical URL set by author in case of republished posts.
publication - Publication The publication the post belongs to.
cuid - String Unique ID to identify post, used internally by hashnode.
coverImage - PostCoverImage The cover image preference of the post. Contains cover image URL and other details.
bannerImage - PostBannerImage The banner image preference of the post. Contains banner image URL and other details. It is similar to cover image but users can decide to render banner image of single post view.
brief - String! Brief is a short description of the post extracted from the content of the post. It's 250 characters long sanitized string.
readTimeInMinutes - Int! The estimated time to read the post in minutes.
views - Int! The number of views on the post. Can be used to show the popularity of the post.
series - Series Information of the series the post belongs to.
reactionCount - Int! The number of hearts on the post. Shows how many users liked the post.
replyCount - Int! The number of replies on the post.
responseCount - Int! The number of comments on the post.
featured - Boolean! Flag to indicate if the post is featured on Hashnode feed.
contributors - [User!]! A list of contributors of the post. Contributors are users who have commented or replied to the post. Will be removed on 10th Oct 2023. Use commenters instead.
commenters - PostCommenterConnection! List of users who have commented on the post.
Arguments
first - Int!

The number of users to be returned per page.

after - String

A cursor to the last item of the previous page.

sortBy - PostCommenterSortBy

The sorting option for commenters. Used to sort commenters by popularity or recency.

comments - PostCommentConnection! A list of comments on the post.
Arguments
first - Int!

The number of comments to be returned per page.

after - String

A cursor to the last item of the previous page.

sortBy - PostCommentSortBy

The sorting option for comments. Used to sort comments by top or recent.

bookmarked - Boolean!

Flag to indicate if the post is bookmarked by the requesting user.

Returns false if the user is not authenticated.

content - Content! Content of the post. Contains HTML and Markdown version of the post content.
likedBy - PostLikerConnection! A list of users who liked the post.
Arguments
first - Int!

The number of users to be returned per page.

after - String

A cursor to the last item of the previous page.

filter - PostLikerFilter
featuredAt - DateTime The date and time the post was featured. Used along with featured flag to determine if the post is featured.
publishedAt - DateTime! The date and time the post was published.
updatedAt - DateTime The date and time the post was last updated.
preferences - PostPreferences! Preference settings for the post. Contains information about if the post is pinned to blog, comments are disabled, etc.
audioUrls - AudioUrls Returns male and female audio url of the post. Available in case the Audioblog is enabled. Audio Blogs are not supported anymore. This field will be removed 18/04/23
seo - SEO SEO information of the post. Contains title and description used in meta tags.
ogMetaData - OpenGraphMetaData OG meta-data of the post. Contains image url used in open graph meta tags.
hasLatexInPost - Boolean! A flag to indicate if the post contains LaTeX. Latex is used to write mathematical equations.
isFollowed - Boolean

Whether or not the authenticated user is following this post.

Returns null if the user is not authenticated.

isAutoPublishedFromRSS - Boolean! Whether or not the post has automatically been published via RSS feed.
features - PostFeatures! Post feature-related fields.
sourcedFromGithub - Boolean! Boolean flag to identify whether or not the post is sourced from GitHub.
Example
{ "id": "4", "slug": "abc123", "previousSlugs": ["abc123"], "title": "xyz789", "subtitle": "xyz789", "author": User, "coAuthors": [User], "tags": [Tag], "url": "abc123", "canonicalUrl": "xyz789", "publication": Publication, "cuid": "xyz789", "coverImage": PostCoverImage, "bannerImage": PostBannerImage, "brief": "abc123", "readTimeInMinutes": 987, "views": 987, "series": Series, "reactionCount": 123, "replyCount": 123, "responseCount": 123, "featured": false, "contributors": [User], "commenters": PostCommenterConnection, "comments": PostCommentConnection, "bookmarked": true, "content": Content, "likedBy": PostLikerConnection, "featuredAt": "2007-12-03T10:15:30Z", "publishedAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "preferences": PostPreferences, "audioUrls": AudioUrls, "seo": SEO, "ogMetaData": OpenGraphMetaData, "hasLatexInPost": true, "isFollowed": true, "isAutoPublishedFromRSS": false, "features": PostFeatures, "sourcedFromGithub": true } 

PostAuthorType

Description

The author type of a post from a user's perspective

Values
Enum Value Description

AUTHOR

The user has authored the post.

CO_AUTHOR

The user is a co-author of post.
Example
"AUTHOR" 

PostBadge

Fields
Field Name Description
id - ID! Unique identifier.
type - PostBadgeType! The type of the badge.
Example
{"id": "4", "type": "FEATURED_HASHNODE"} 

PostBadgeType

Values
Enum Value Description

FEATURED_HASHNODE

FEATURED_DAILY_DOT_DEV

Example
"FEATURED_HASHNODE" 

PostBadgesFeature

Fields
Field Name Description
isEnabled - Boolean! Whether or not the user has chosen to show badges on the post.
items - [PostBadge!]!
Example
{"isEnabled": false, "items": [PostBadge]} 

PostBannerImage

Description

Contains information about the banner image of the post.

Fields
Field Name Description
url - String! The URL of the banner image.
Example
{"url": "xyz789"} 

PostCommentConnection

Description

Connection for comments. Contains a list of edges containing nodes. Each node holds a comment. Page info contains information about pagination like hasNextPage and endCursor. Total documents contains the total number of comments.

Fields
Field Name Description
edges - [PostCommentEdge!]! A list of edges containing comments as nodes.
pageInfo - PageInfo! Information about pagination in a connection.
totalDocuments - Int! Total number of nodes available i.e. number of comments.
Example
{ "edges": [PostCommentEdge], "pageInfo": PageInfo, "totalDocuments": 987 } 

PostCommentEdge

Description

A comment on the post. Contains information about the content of the comment, user who commented, etc.

Fields
Field Name Description
node - Comment! The comment on the post.
cursor - String! The cursor for this node used for pagination.
Example
{ "node": Comment, "cursor": "xyz789" } 

PostCommentSortBy

Description

Sorting options for comments. Used to sort comments by top or recent.

Values
Enum Value Description

TOP

Sorts comments by popularity.

RECENT

Sorts comments by recency.
Example
"TOP" 

PostCommenterConnection

Description

Connection for commenters (users). Contains a list of edges containing nodes. Each node holds commenter. Page info contains information about pagination like hasNextPage and endCursor. Total documents contains the total number of commenters.

Fields
Field Name Description
edges - [PostCommenterEdge!]! A list of edges containing commenters as nodes.
pageInfo - PageInfo! Information about pagination in a connection.
totalDocuments - Int! Total number of nodes available i.e. number of commenters.
Example
{ "edges": [PostCommenterEdge], "pageInfo": PageInfo, "totalDocuments": 987 } 

PostCommenterEdge

Description

A commenter on the post. Contains information about the user who commented.

Fields
Field Name Description
node - User! The commenter on the post.
cursor - String! The cursor for this node used for pagination.
Example
{ "node": User, "cursor": "abc123" } 

PostCommenterSortBy

Description

Sorting options for commenters. Used to sort commenters by popularity or recency.

Values
Enum Value Description

POPULAR

Sorts commenters by popularity.

RECENT

Sorts commenters by recency.
Example
"POPULAR" 

PostCoverImage

Description

Contains information about the cover image of the post.

Fields
Field Name Description
url - String! The URL of the cover image.
isPortrait - Boolean! Indicates whether the cover image is in portrait orientation.
attribution - String Provides attribution information for the cover image, if available.
photographer - String The name of the photographer who captured the cover image.
isAttributionHidden - Boolean! True if the image attribution should be hidden.
Example
{ "url": "xyz789", "isPortrait": false, "attribution": "abc123", "photographer": "xyz789", "isAttributionHidden": false } 

PostEdge

Description

Contains a post and a cursor for pagination.

Fields
Field Name Description
node - Post! The node holding the Post information
cursor - String! A cursor for use in pagination.
Example
{ "node": Post, "cursor": "xyz789" } 

PostFeatures

Fields
Field Name Description
tableOfContents - TableOfContentsFeature!
badges - PostBadgesFeature!
Example
{ "tableOfContents": TableOfContentsFeature, "badges": PostBadgesFeature } 

PostLikerConnection

Description

Connection for users who liked the post. Contains a list of edges containing nodes. Each node is a user who liked the post. Page info contains information about pagination like hasNextPage and endCursor. Total documents contains the total number of users who liked the post.

Fields
Field Name Description
edges - [PostLikerEdge!]! A list of edges containing users as nodes
pageInfo - PageInfo! Information about pagination in a connection.
totalDocuments - Int! Total number of nodes available i.e. number of users who liked the post.
Example
{ "edges": [PostLikerEdge], "pageInfo": PageInfo, "totalDocuments": 123 } 

PostLikerEdge

Description

A user who liked the post. Contains information about the user and number of reactions added by the user.

Fields
Field Name Description
node - User! The user who liked the post.
cursor - String! The cursor for this node used for pagination.
reactionCount - Int! The number of reaction added by the user.
Example
{ "node": User, "cursor": "abc123", "reactionCount": 987 } 

PostLikerFilter

Fields
Input Field Description
userIds - [ID!] Only return likes from users with the given user IDs.
Example
{"userIds": ["4"]} 

PostPreferences

Description

Contains Post preferences. Used to determine if the post is pinned to blog, comments are disabled, or cover image is sticked to bottom.

Fields
Field Name Description
pinnedToBlog - Boolean! A flag to indicate if the post is pinned to blog. Pinned post is shown on top of the blog.
disableComments - Boolean! A flag to indicate if the comments are disabled for the post.
stickCoverToBottom - Boolean! A flag to indicate if the cover image is shown below title of the post. Default position of cover is top of title.
isDelisted - Boolean! Whether or not the post is hidden from the Hashnode community.
Example
{ "pinnedToBlog": true, "disableComments": true, "stickCoverToBottom": true, "isDelisted": false } 

PostSortBy

Values
Enum Value Description

DATE_PUBLISHED_ASC

Sorts posts by date published in ascending order.

DATE_PUBLISHED_DESC

Sorts posts by date published in descending order.
Example
"DATE_PUBLISHED_ASC" 

Preferences

Description

Contains the publication's preferences for layout, theme and other personalisations.

Fields
Field Name Description
logo - String The publication's logo url.
darkMode - DarkModePreferences The publication's darkmode preferences. Can be used to load blog in dark mode by default and add a custom dark mode logo.
enabledPages - PagesPreferences An object containing pages enabled for the publication.
navbarItems - [PublicationNavbarItem!]! The items in the publication's navigation bar.
layout - PublicationLayout The selected publication's layout, can be stacked, grid or magazine.
disableFooterBranding - Boolean A flag indicating if the hashnode's footer branding is disabled for the publication.
isSubscriptionModalDisabled - Boolean A flag indicating if subscription popup needs to be shown to be shown for the publication
Example
{ "logo": "xyz789", "darkMode": DarkModePreferences, "enabledPages": PagesPreferences, "navbarItems": [PublicationNavbarItem], "layout": "stacked", "disableFooterBranding": true, "isSubscriptionModalDisabled": true } 

ProTeamFeature

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the Pro team feature is enabled or not.
Example
{"isEnabled": false} 

ProjectViewEdge

Fields
Field Name Description
node - DocsViews!
cursor - String!
Example
{ "node": DocsViews, "cursor": "abc123" } 

ProjectViewsConnection

Fields
Field Name Description
edges - [ProjectViewEdge!]!
pageInfo - PageInfo!
Example
{ "edges": [ProjectViewEdge], "pageInfo": PageInfo } 

ProjectViewsFilter

Description

Filter for project views.

Individual filters are combined with an AND condition whereas multiple values for the same filter are combined with an OR condition.

Example: documentationGuideIds: ["1", "2"], operatingSystems: ["Mac OS"] will return views for posts with ID 1 or 2 AND operating system Mac OS.

Fields
Input Field Description
time - TimeFilter Filter based on time range.
documentationGuideIds - [ID!]

Filter by one or multiple documentation guide IDs.

If multiple IDs are provided, the filter will be applied as an OR condition.

apiReferenceGuideIds - [ID!]

Filter by one or multiple api reference guide IDs.

If multiple IDs are provided, the filter will be applied as an OR condition.

pageIds - [ID!]

Filter by one or multiple page IDs.

If multiple IDs are provided, the filter will be applied as an OR condition.

paths - [String!]

Filter by one or multiple paths.

If multiple paths are provided, the filter will be applied as an OR condition.

operatingSystems - [String!]

Filter by one or multiple operating systems.

If multiple operating systems are provided, the filter will be applied as an OR condition.

deviceTypes - [DeviceType!]

Filter by one or multiple device types.

If multiple device types are provided, the filter will be applied as an OR condition.

browsers - [String!]

Filter by one or multiple browsers.

If multiple browsers are provided, the filter will be applied as an OR condition.

countries - [String!]

Filter by one or multiple countries.

If multiple countries are provided, the filter will be applied as an OR condition.

referrerHosts - [String!]

Filter by one or multiple referrer hosts.

If multiple referrer hosts are provided, the filter will be applied as an OR condition.

Example
{ "time": TimeFilter, "documentationGuideIds": ["4"], "apiReferenceGuideIds": ["4"], "pageIds": ["4"], "paths": ["xyz789"], "operatingSystems": ["abc123"], "deviceTypes": ["DESKTOP"], "browsers": ["xyz789"], "countries": ["abc123"], "referrerHosts": ["abc123"] } 

ProjectViewsGroupBy

Fields
Input Field Description
dimension - DocsAnalyticsDimension

Group by one analytics dimensions.

Can not be used together with granularity.

granularity - TimeGranularity

Group by time. Without this, all views over time will be aggregated.

Can not be used together with dimension.

Example
{"dimension": "DOCUMENTATION_GUIDE", "granularity": "HOURLY"} 

ProjectViewsOptions

Fields
Input Field Description
groupingTimezone - TimeZone

The timezone that is used for grouping the views by time. E.g. if you group by day, the timezone will be used to determine the start of the day as indicated by to and from.

It has no effect outside of time grouping.

Default is UTC.

Example
{"groupingTimezone": "Etc/UTC"} 

ProjectViewsSortBy

Fields
Input Field Description
viewCount - SortOrder! Sort the views by the total number of views. Can only be used when grouped by dimension.
Example
{"viewCount": "asc"} 

ProjectVisitorsConnection

Fields
Field Name Description
edges - [ProjectVisitorsEdge!]!
pageInfo - PageInfo!
Example
{ "edges": [ProjectVisitorsEdge], "pageInfo": PageInfo } 

ProjectVisitorsEdge

Fields
Field Name Description
node - DocsVisitors!
cursor - String!
Example
{ "node": DocsVisitors, "cursor": "abc123" } 

ProjectVisitorsFilter

Description

Filter for project visitors.

Individual filters are combined with an AND condition whereas multiple values for the same filter are combined with an OR condition.

Example: documentationGuideIds: ["1", "2"], operatingSystems: ["Mac OS"] will return visitors for posts with ID 1 or 2 AND operating system Mac OS.

Fields
Input Field Description
time - TimeFilter Filter based on time range.
documentationGuideIds - [ID!]

Filter by one or multiple documentation guide IDs.

If multiple IDs are provided, the filter will be applied as an OR condition.

apiReferenceGuideIds - [ID!]

Filter by one or multiple api reference guide IDs.

If multiple IDs are provided, the filter will be applied as an OR condition.

pageIds - [ID!]

Filter by one or multiple page IDs.

If multiple IDs are provided, the filter will be applied as an OR condition.

paths - [String!]

Filter by one or multiple paths.

If multiple paths are provided, the filter will be applied as an OR condition.

operatingSystems - [String!]

Filter by one or multiple operating systems.

If multiple operating systems are provided, the filter will be applied as an OR condition.

deviceTypes - [DeviceType!]

Filter by one or multiple device types.

If multiple device types are provided, the filter will be applied as an OR condition.

browsers - [String!]

Filter by one or multiple browsers.

If multiple browsers are provided, the filter will be applied as an OR condition.

countries - [CountryCodeAlpha2!]

Filter by one or multiple countries.

If multiple countries are provided, the filter will be applied as an OR condition.

referrerHosts - [String!]

Filter by one or multiple referrer hosts.

If multiple referrer hosts are provided, the filter will be applied as an OR condition.

Example
{ "time": TimeFilter, "documentationGuideIds": [4], "apiReferenceGuideIds": [4], "pageIds": ["4"], "paths": ["xyz789"], "operatingSystems": ["xyz789"], "deviceTypes": ["DESKTOP"], "browsers": ["abc123"], "countries": ["AD"], "referrerHosts": ["xyz789"] } 

ProjectVisitorsGroupBy

Fields
Input Field Description
dimension - DocsAnalyticsDimension

Group by one analytics dimensions.

Can not be used together with granularity.

granularity - TimeGranularity

Group by time. Without this, all views over time will be aggregated.

Can not be used together with dimension.

Example
{"dimension": "DOCUMENTATION_GUIDE", "granularity": "HOURLY"} 

ProjectVisitorsOptions

Fields
Input Field Description
groupingTimezone - TimeZone

The timezone that is used for grouping the views by time. E.g. if you group by day, the timezone will be used to determine the start of the day as indicated by to and from.

It has no effect outside of time grouping.

Default is UTC.

Example
{"groupingTimezone": "Etc/UTC"} 

Publication

Description

Contains basic information about the publication. A publication is a blog that can be created for a user or a team.

Fields
Field Name Description
id - ID! The ID of the publication.
title - String! The title of the publication. Title is used as logo if logo is not provided.
displayTitle - String The title of the publication. Shown in blog home page.
descriptionSEO - String The description of the publication, used in og:description meta tag. Fall backs to Publication.about.text if no SEO description is provided.
about - Content The about section of the publication.
url - String! The domain of the publication. Used to access publication. Example https://johndoe.com
canonicalURL - String! The canonical URL of the publication.
author - User! The author who owns the publication.
favicon - String The favicon of the publication. Used in browser tab.
headerColor - String Color code of the header color of the publication. Used to style header of blog.
metaTags - String The meta tags associated with the publication.
integrations - PublicationIntegrations The integrations connected to the publication.
invites - PublicationInvite Details of publication invites. Returns null if publication is not a team publication.
preferences - Preferences! The publication preferences around layout, theme and other personalisations.
followersCount - Int Total number of followers of the publication.
imprint - String Summary of the contact information and information related to copyrights, usually used in German-speaking countries. Use imprintV2 instead. Will be removed after 16/12/2023.
imprintV2 - Content Summary of the contact information and information related to copyrights, usually used in German-speaking countries.
isTeam - Boolean! True if the publication is a team publication and false otherwise.
links - PublicationLinks Links to the publication's social media profiles.
domainInfo - DomainInfo! Domain information of the publication.
isHeadless - Boolean! A flag to indicate if the publication is using Headless CMS. This can be used to check if the post redirect needs authentication.
series - Series Returns series by slug in the publication.
Arguments
slug - String!
seriesList - SeriesConnection! Returns the list of series in the publication.
Arguments
first - Int!

The number of series to return.

after - String

A cursor to the last item in the previous page.

posts - PublicationPostConnection! Returns the list of posts in the publication.
Arguments
first - Int!

The number of posts to return.

after - String

A cursor to the last item in the previous page.

filter - PublicationPostConnectionFilter

The filters to be applied to the post list.

postsViaPage - PublicationPostPageConnection!
Arguments
pageSize - Int!

The number of posts to return on a single page.

page - Int!

The page number that should be returned.

filter - PublicationPostsViaPageFilter

The filters to be applied to the post list.

pinnedPost - Post Returns the pinned post of the publication.
post - Post Returns the post with the given slug.
Arguments
slug - String!
redirectedPost - Post

Returns a post by a previous slug. It does not resolve a post by its current slug.

If a slug has been changed, we'll create a redirect from the old slug to the new one. With redirectedPost you can resolve a post by the old slug.

This can be used to redirect a user to the new post slug (via redirectedPost.slug).

Arguments
slug - String!
ogMetaData - OpenGraphMetaData! Information about the publication's Open Graph metadata i.e. image.
features - PublicationFeatures! Object containing information about beta features enabled for the publication.
drafts - DraftConnection! Returns the list of drafts of the authenticated user in the publication.
Arguments
first - Int!

The number of drafts to return.

after - String

A cursor to the last item in the previous page.

filter - PublicationDraftConnectionFilter

The filters to be applied to the draft list.

allDrafts - DraftConnection! Returns the list of drafts in the publication
Arguments
first - Int!

The number of drafts to return.

after - String

A cursor to the last item in the previous page.

filter - PublicationSearchableDraftConnectionFilter

The filters to be applied to the draft list.

scheduledDrafts - DraftConnection! Returns the scheduled drafts of the publication by the authenticated user.
Arguments
first - Int!

The number of scheduled drafts to return.

after - String

A cursor to the last item in the previous page.

filter - PublicationDraftConnectionFilter

The filters to be applied to the draft list.

allScheduledDrafts - DraftConnection! Returns all the scheduled drafts of the publication.
Arguments
first - Int!

The number of scheduled drafts to return.

after - String

A cursor to the last item in the previous page.

filter - PublicationSearchableDraftConnectionFilter

The filters to be applied to the scheduled draft list.

staticPage - StaticPage Returns the static page with the given slug.
Arguments
slug - String!

The slug of the static page to retrieve.

staticPages - StaticPageConnection! Returns a list of static pages in the publication.
Arguments
first - Int!

The number of static pages to return.

after - String

A cursor to the last item in the previous page.

submittedDrafts - DraftConnection! Returns the list of submitted drafts in the publication.
Arguments
first - Int!

The number of submitted drafts to return.

after - String

A cursor to the last item in the previous page.

filter - PublicationDraftConnectionFilter

The filters to be applied to the draft list.

isGitHubBackupEnabled - Boolean! Returns true if GitHub backup is configured and active and false otherwise.
isGithubAsSourceConnected - Boolean! Returns whether the publication's GitHub source repo is connected.
urlPattern - UrlPattern! Determines the structure of the post URLs.
emailImport - EmailImport Returns the publication's email imports, used with newsletter feature.
redirectionRules - [RedirectionRule!]! Configured redirection rules for the publication.
hasBadges - Boolean! Whether the publication has earned any badges or not.
sponsorship - PublicationSponsorship Contains the publication's sponsorships information.
recommendedPublications - [UserRecommendedPublicationEdge!]! Publications that are recommended by this publication.
totalRecommendedPublications - Int! The total amount of recommended publications by this publication.
recommendingPublications - PublicationUserRecommendingPublicationConnection! Publications that are recommending this publication.
Arguments
pageSize - Int!

Size of the page.

page - Int!

Page number.

allowContributorEdits - Boolean! Boolean flag indicating if the publication allows edits by contributors
members - PublicationMemberConnection!
Arguments
pageSize - Int!

The number of members to return on a single page.

page - Int!

The page number that should be returned.

filter - PublicationMemberConnectionFilter

Filters to be applied to the member list.

publicMembers - PublicationMemberConnection! Returns a paginated list of public members of the publication.
Arguments
pageSize - Int!

The number of members to return on a single page.

page - Int!

The page number that should be returned.

Example
{ "id": 4, "title": "abc123", "displayTitle": "abc123", "descriptionSEO": "abc123", "about": Content, "url": "xyz789", "canonicalURL": "xyz789", "author": User, "favicon": "xyz789", "headerColor": "abc123", "metaTags": "abc123", "integrations": PublicationIntegrations, "invites": PublicationInvite, "preferences": Preferences, "followersCount": 123, "imprint": "abc123", "imprintV2": Content, "isTeam": true, "links": PublicationLinks, "domainInfo": DomainInfo, "isHeadless": true, "series": Series, "seriesList": SeriesConnection, "posts": PublicationPostConnection, "postsViaPage": PublicationPostPageConnection, "pinnedPost": Post, "post": Post, "redirectedPost": Post, "ogMetaData": OpenGraphMetaData, "features": PublicationFeatures, "drafts": DraftConnection, "allDrafts": DraftConnection, "scheduledDrafts": DraftConnection, "allScheduledDrafts": DraftConnection, "staticPage": StaticPage, "staticPages": StaticPageConnection, "submittedDrafts": DraftConnection, "isGitHubBackupEnabled": false, "isGithubAsSourceConnected": true, "urlPattern": "DEFAULT", "emailImport": EmailImport, "redirectionRules": [RedirectionRule], "hasBadges": true, "sponsorship": PublicationSponsorship, "recommendedPublications": [ UserRecommendedPublicationEdge ], "totalRecommendedPublications": 987, "recommendingPublications": PublicationUserRecommendingPublicationConnection, "allowContributorEdits": true, "members": PublicationMemberConnection, "publicMembers": PublicationMemberConnection } 

PublicationDraftConnectionFilter

Description

Connection to get list of drafts in publications. Returns a list of edges which contains the drafts in publication and cursor to the last item of the previous page.

Fields
Input Field Description
search - String Search filter will be applied to the title of a draft
Example
{"search": "xyz789"} 

PublicationFeatures

Description

Contains the publication's beta features.

Fields
Field Name Description
newsletter - NewsletterFeature! Newsletter feature for the publication which adds a /newsletter route for collecting subscribers and allows sending out newsletters.
viewCount - ViewCountFeature! Show the view count for blog posts.
readTime - ReadTimeFeature! Show the read time for blog posts.
audioBlog - AudioBlogFeature! Audio player for blog posts. Audio Blogs are not supported anymore. This field will be removed 18/04/23
textSelectionSharer - TextSelectionSharerFeature! Widget that shows up if a text on a blog post is selected. Allows for easy sharing or copying of the selected text.
customCSS - CustomCSSFeature! Individual styling for the publication.
headlessCMS - HeadlessCMSFeature! Headless CMS for the publication.
proTeam - ProTeamFeature! Flag to denote if publication is a pro team's publication.
gptBotCrawling - GPTBotCrawlingFeature! GPT Bot crawler to index the publication.
Example
{ "newsletter": NewsletterFeature, "viewCount": ViewCountFeature, "readTime": ReadTimeFeature, "audioBlog": AudioBlogFeature, "textSelectionSharer": TextSelectionSharerFeature, "customCSS": CustomCSSFeature, "headlessCMS": HeadlessCMSFeature, "proTeam": ProTeamFeature, "gptBotCrawling": GPTBotCrawlingFeature } 

PublicationIntegrations

Description

Contains the publication's integrations. Used to connect the publication with third party services like Google Analytics, Facebook Pixel, etc.

Fields
Field Name Description
fbPixelID - String FB Pixel ID for integration with Facebook Pixel.
fathomSiteID - String Fathom Analytics Site ID for integration with Fathom Analytics.
fathomCustomDomainEnabled - Boolean A flag indicating if the custom domain is enabled for integration with Fathom Analytics.
fathomCustomDomain - String Custom domain for integration with Fathom Analytics.
hotjarSiteID - String Hotjar Site ID for integration with Hotjar.
matomoSiteID - String Matomo Site ID for integration with Matomo Analytics.
matomoURL - String Matomo URL for integration with Matomo Analytics.
gaTrackingID - String Google Analytics Tracking ID for integration with Google Analytics.
plausibleAnalyticsEnabled - Boolean A flag indicating if the custom domain is enabled for integration with Plausible Analytics.
wmPaymentPointer - String Web Monetization Payment Pointer for integration with Web Monetization.
umamiWebsiteUUID - String The ID for the Hashnode-provided Umami analytics instance.
umamiShareId - String The share ID for the Hashnode-provided Umami analytics instance.
gTagManagerID - String Google Tag Manager ID for integration with Google Tag Manager.
koalaPublicKey - String Koala Public Key for integration with Koala.
msClarityID - String MS Clarity ID for integration with Microsoft Clarity.
Example
{ "fbPixelID": "abc123", "fathomSiteID": "abc123", "fathomCustomDomainEnabled": false, "fathomCustomDomain": "abc123", "hotjarSiteID": "xyz789", "matomoSiteID": "abc123", "matomoURL": "abc123", "gaTrackingID": "abc123", "plausibleAnalyticsEnabled": true, "wmPaymentPointer": "abc123", "umamiWebsiteUUID": "xyz789", "umamiShareId": "abc123", "gTagManagerID": "abc123", "koalaPublicKey": "abc123", "msClarityID": "abc123" } 

PublicationInvite

Description

Contains the publication invite information.

Fields
Field Name Description
pendingInvites - PendingInviteConnection!
Arguments
pageSize - Int!

The number of pending invites to return on a single page.

page - Int!

The page number that should be returned.

roleBasedInvites - RoleBasedInviteConnection! The paginated list of role based invites.
Arguments
pageSize - Int!

The number of role based invites to return on a single page.

page - Int!

The page number that should be returned.

areRoleBasedInviteLinksActive - Boolean! Signifies if invite links in role-based invites are active. Users trying to join by role-based invite can only join if this is enabled.
Example
{ "pendingInvites": PendingInviteConnection, "roleBasedInvites": RoleBasedInviteConnection, "areRoleBasedInviteLinksActive": false } 

PublicationLayout

Description

Contains publication's layout choices.

Values
Enum Value Description

stacked

Changes the layout of blog into stacked list of posts.

grid

Changes the layout of blog into grid 3 post cards per row.

magazine

Changes the layout of blog into magazine style. This is the newest layout.
Example
"stacked" 

PublicationMember

Description

Contains the publication member information.

Fields
Field Name Description
id - ID! The ID of the publication member.
user - User The user who is a member of the publication.
role - UserPublicationRole! The role of the user in the publication.
privacyState - PublicationMemberPrivacyState Denotes if the member is public or private A private member is not visible on members page
Example
{ "id": 4, "user": User, "role": "OWNER", "privacyState": "PRIVATE" } 

PublicationMemberConnection

Fields
Field Name Description
nodes - [PublicationMember!]! A list of members
pageInfo - OffsetPageInfo! Information for page based pagination in Member connection.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "nodes": [PublicationMember], "pageInfo": OffsetPageInfo, "totalDocuments": 987 } 

PublicationMemberConnectionFilter

Description

The filter for the publication member connection.

Fields
Input Field Description
search - String Search filter can be used to filter members by their username or email.
Example
{"search": "abc123"} 

PublicationMemberPrivacyState

Description

Publication member privacy state on members page

Values
Enum Value Description

PRIVATE

The member is private and not visible on the members page.

PUBLIC

The member is public and visible on the members page.
Example
"PRIVATE" 

PublicationNavbarItem

Description

Contains the publication's navbar items.

Fields
Field Name Description
id - ID! The unique identifier of the navbar item.
label - String The label of the navbar item.
url - String The URL of the navbar item.
priority - Int The order of the navbar item. Navbar items are already returned in the correct order. Priority value is not needed and might be 0 in most cases.
type - PublicationNavigationType! The type of the navbar item, can be series, link or page.
series - Series The series added to the navbar item.
page - StaticPage The static page added to the navbar item.
Example
{ "id": "4", "label": "abc123", "url": "xyz789", "priority": 987, "type": "series", "series": Series, "page": StaticPage } 

PublicationNavigationType

Description

The type of the navbar item, can be series, link or page.

Values
Enum Value Description

series

The navbar item is a series.

link

The navbar item is a link.

page

The navbar item is a static page.
Example
"series" 

PublicationPostConnection

Description

Connection for posts within a publication. Contains a list of edges containing nodes. Each node is a post. Page info contains information about pagination like hasNextPage and endCursor.

Fields
Field Name Description
edges - [PostEdge!]! A list of edges containing Post information
pageInfo - PageInfo! Information for pagination in Post connection.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "edges": [PostEdge], "pageInfo": PageInfo, "totalDocuments": 987 } 

PublicationPostConnectionFilter

Description

Connection to get list of posts in publications. Returns a list of edges which contains the posts in publication and cursor to the last item of the previous page.

Fields
Input Field Description
tags - [ObjectId!]

Filtering by tag slugs and tag IDs will return posts that match either of the filters.

It is an "OR" filter and not an "AND" filter.

tagSlugs - [String!]

Filtering by tag slugs and tag IDs will return posts that match either of the filters.

It is an "OR" filter and not an "AND" filter.

excludePinnedPost - Boolean Remove pinned post from the result set.
deletedOnly - Boolean Only return posts that are deleted. Query returns active posts by default, set this to true to return deleted posts.
requiredTags - [ID!] Tags AND filter. All tags must be present in the post.
requiredTagSlugs - [String!] Tags AND filter. All tags must be present in the post.
Example
{ "tags": [ObjectId], "tagSlugs": ["xyz789"], "excludePinnedPost": true, "deletedOnly": false, "requiredTags": ["4"], "requiredTagSlugs": ["xyz789"] } 

PublicationPostPageConnection

Fields
Field Name Description
nodes - [Post!]! The posts belonging to the publication.
pageInfo - OffsetPageInfo! Information to aid in pagination.
totalDocuments - Int! The total number of posts.
Example
{ "nodes": [Post], "pageInfo": OffsetPageInfo, "totalDocuments": 987 } 

PublicationPostsViaPageFilter

Fields
Input Field Description
tags - [ID!]

Filtering by tag slugs and tag IDs will return posts that match either of the filters.

It is an "OR" filter and not an "AND" filter.

tagSlugs - [String!]

Filtering by tag slugs and tag IDs will return posts that match either of the filters.

It is an "OR" filter and not an "AND" filter.

excludePinnedPosts - Boolean Remove pinned post from the result set.
Example
{ "tags": ["4"], "tagSlugs": ["abc123"], "excludePinnedPosts": true } 

PublicationSearchableDraftConnectionFilter

Description

ConnectionFilter to get list of drafts in publications. The filters are combined with an "AND" operation.

Fields
Input Field Description
search - String Search filter will be applied to the title of a draft
authorIds - [ID!] An array of author Ids to filter the drafts.
tagIds - [ID!] An array of tag Ids to filter the drafts.
time - TimeFilter Filter based on time range.
Example
{ "search": "abc123", "authorIds": ["4"], "tagIds": ["4"], "time": TimeFilter } 

PublicationSponsorship

Description

Contains the publication's Sponsorship information. User can sponsor their favorite publications and pay them directly using Stripe.

Fields
Field Name Description
content - Content The content shared by author of the publication to their sponsors. This is used as note to inform that author is open for sponsorship.
stripe - StripeConfiguration The Stripe configuration of the publication's Sponsorship.
Example
{ "content": Content, "stripe": StripeConfiguration } 

PublicationUserRecommendingPublicationConnection

Fields
Field Name Description
edges - [UserRecommendingPublicationEdge!]! A list of edges containing Post information
nodes - [Publication!]! Publications recommending this publication.
pageInfo - OffsetPageInfo! Information for page based pagination in Post connection.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "edges": [UserRecommendingPublicationEdge], "nodes": [Publication], "pageInfo": OffsetPageInfo, "totalDocuments": 123 } 

PublicationViewEdge

Fields
Field Name Description
node - Views!
cursor - String!
Example
{ "node": Views, "cursor": "xyz789" } 

PublicationVisitorsEdge

Fields
Field Name Description
node - Visitors!
cursor - String!
Example
{ "node": Visitors, "cursor": "abc123" } 

PublishDocumentationApiReferenceInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
Example
{ "projectId": "4", "guideSlug": "abc123" } 

PublishDocumentationApiReferencePayload

Fields
Field Name Description
guide - DocumentationApiReference
Example
{"guide": DocumentationApiReference} 

PublishDocumentationGuideInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
Example
{ "projectId": "4", "guideSlug": "abc123" } 

PublishDocumentationGuidePayload

Fields
Field Name Description
guide - DocumentationGuide
Example
{"guide": DocumentationGuide} 

PublishDocumentationPageDraftInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
pageId - ID!
Example
{ "projectId": "4", "guideSlug": "abc123", "pageId": 4 } 

PublishDocumentationPageDraftPayload

Fields
Field Name Description
page - DocumentationPage
guide - DocumentationGuide
Example
{ "page": DocumentationPage, "guide": DocumentationGuide } 

PublishDraftInput

Fields
Input Field Description
draftId - ObjectId! The id of the draft that should be published
Example
{"draftId": ObjectId} 

PublishDraftPayload

Fields
Field Name Description
post - Post The newly created post based on the draft
Example
{"post": Post} 

PublishPostInput

Description

Contains information about the post to be published.

Fields
Input Field Description
title - String! The title of the post.
subtitle - String The subtitle of the post.
publicationId - ObjectId! The ID of publication the post belongs to.
contentMarkdown - String! Content of the post in markdown format.
publishedAt - DateTime Date when the post is published.
coverImageOptions - CoverImageOptionsInput Options for the cover image of the post.
bannerImageOptions - BannerImageOptionsInput Options for the banner image of the post. It is similar to cover image but users can decide to render banner image of single post view.
slug - String Slug of the post.
originalArticleURL - String The URL of the original article if the post is imported from an external source.
tags - [PublishPostTagInput!] A list of tags to add to the post. You can get a list of popular tags available on Hashnode here. https://github.com/Hashnode/support/blob/main/misc/tags.json
disableComments - Boolean A flag to indicate if the comments are disabled for the post.
metaTags - MetaTagsInput Information about the meta tags added to the post, used for SEO purpose.
publishAs - ObjectId

Publish the post on behalf of another user who is a member of the publication.

Only applicable for team publications.

seriesId - ObjectId Providing a seriesId will add the post to that series.
settings - PublishPostSettingsInput Settings for the post like table of contents and newsletter activation.
coAuthors - [ObjectId!] Ids of the co-authors of the post.
Example
{ "title": "xyz789", "subtitle": "xyz789", "publicationId": ObjectId, "contentMarkdown": "abc123", "publishedAt": "2007-12-03T10:15:30Z", "coverImageOptions": CoverImageOptionsInput, "bannerImageOptions": BannerImageOptionsInput, "slug": "xyz789", "originalArticleURL": "abc123", "tags": [PublishPostTagInput], "disableComments": false, "metaTags": MetaTagsInput, "publishAs": ObjectId, "seriesId": ObjectId, "settings": PublishPostSettingsInput, "coAuthors": [ObjectId] } 

PublishPostPayload

Fields
Field Name Description
post - Post
Example
{"post": Post} 

PublishPostSettingsInput

Fields
Input Field Description
scheduled - Boolean A flag to indicate if the post is scheduled.
enableTableOfContent - Boolean A flag to indicate if the post contains table of content
slugOverridden - Boolean Flag to indicate if the slug is overridden by the user.
isNewsletterActivated - Boolean Whether to send a newsletter for this post.
delisted - Boolean A flag to indicate if the post is delisted, used to hide the post from public feed.
Example
{ "scheduled": true, "enableTableOfContent": false, "slugOverridden": true, "isNewsletterActivated": false, "delisted": false } 

PublishPostTagInput

Fields
Input Field Description
id - ObjectId

A tag id that is referencing an existing tag.

Either this or name and slug should be provided. If both are provided, the id will be used.

slug - String

A slug of a new tag to create.

Either this and name or id should be provided. If both are provided, the id will be used.

name - String

A name of a new tag to create.

Either this and slug or id should be provided. If both are provided, the id will be used.

Example
{ "id": ObjectId, "slug": "abc123", "name": "xyz789" } 

RSSImport

Fields
Field Name Description
id - ID!
rssURL - String! The URL pointing to the RSS feed.
scrapePosts - Boolean! Indicates whether the posts should be scraped or not
importAsDrafts - Boolean! Indicates whether posts should be imported as drafts or not
rssTagName - String RSS Tag name to be considered as the post content for automatic import.
Example
{ "id": "4", "rssURL": "xyz789", "scrapePosts": true, "importAsDrafts": false, "rssTagName": "abc123" } 

ReadTimeFeature

Description

Contains the flag indicating if the read time feature is enabled or not. User can enable or disable the read time feature from the publication settings. Shows read time on blogs if enabled.

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the read time feature is enabled or not.
Example
{"isEnabled": false} 

RecommendPublicationsInput

Fields
Input Field Description
recommendingPublicationId - ID!
recommendedPublicationIds - [ID!]!
Example
{ "recommendingPublicationId": "4", "recommendedPublicationIds": [4] } 

RecommendPublicationsPayload

Fields
Field Name Description
recommendedPublications - [UserRecommendedPublicationEdge!]
Example
{ "recommendedPublications": [ UserRecommendedPublicationEdge ] } 

RecommendedPublicationEdge

Description

Contains a publication and a cursor for pagination.

Fields
Field Name Description
node - Publication! The node holding the Publication information
cursor - String! A cursor for use in pagination.
Example
{ "node": Publication, "cursor": "abc123" } 

RedirectionRule

Fields
Field Name Description
id - ID!
type - HttpRedirectionType! The type of the redirection rule.
source - String! The source URL of the redirection rule.
destination - URL! The destination URL of the redirection rule.
Example
{ "id": "4", "type": "TEMPORARY", "source": "abc123", "destination": "http://www.test.com/" } 

ReinviteUserToPublicationInput

Description

Input to reinvite a user to a publication.

Fields
Input Field Description
inviteId - ID! The ID of the invitation to resend.
publicationId - ID! The publication ID to resend the invitation from.
Example
{"inviteId": "4", "publicationId": 4} 

ReinviteUserToPublicationPayload

Description

Response to reinviting a user to a publication.

Fields
Field Name Description
success - Boolean! Signifies if the mutation was successful.
Example
{"success": true} 

RelativeTimeRange

Fields
Input Field Description
relative - TimePeriod! The type of time range to be used.
n - Int! The number of time periods to go back in time.
Example
{"relative": "LAST_N_HOURS", "n": 987} 

RemoveCommentInput

Fields
Input Field Description
id - ID!
Example
{"id": "4"} 

RemoveCommentPayload

Fields
Field Name Description
comment - Comment
Example
{"comment": Comment} 

RemoveDocumentationGuideInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
Example
{"projectId": 4, "guideSlug": "xyz789"} 

RemoveDocumentationGuidePayload

Fields
Field Name Description
guide - DocumentationGuideItem
Example
{"guide": DocumentationGuide} 

RemoveDocumentationProjectAIPromptInput

Description

The input for removing a prompt from the AI search

Fields
Input Field Description
projectId - ID!
promptId - ID!
Example
{"projectId": 4, "promptId": "4"} 

RemoveDocumentationProjectAIPromptPayload

Description

Response to removing a prompt from the AI search

Fields
Field Name Description
project - DocumentationProject!
Example
{"project": DocumentationProject} 

RemoveDocumentationProjectCustomDomainInput

Fields
Input Field Description
projectId - ID!
Example
{"projectId": "4"} 

RemoveDocumentationProjectCustomDomainPayload

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

RemoveDocumentationProjectInput

Description

The input for removing a documentation project.

Fields
Input Field Description
projectId - ID! The ID of the documentation project that should be removed.
Example
{"projectId": "4"} 

RemoveDocumentationProjectMemberInput

Description

The input for the removal of a member from a documentation

Fields
Input Field Description
projectId - ID!
userId - ID!
Example
{"projectId": "4", "userId": 4} 

RemoveDocumentationProjectMemberPayload

Fields
Field Name Description
project - DocumentationProject
removedMember - DocumentationProjectMember
Example
{ "project": DocumentationProject, "removedMember": DocumentationProjectMember } 

RemoveDocumentationProjectPayload

Description

The payload for removing a documentation project.

Fields
Field Name Description
project - DocumentationProject The documentation project that was removed.
Example
{"project": DocumentationProject} 

RemoveDocumentationSidebarItemInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
itemId - ID!
Example
{ "projectId": 4, "guideSlug": "xyz789", "itemId": "4" } 

RemoveDocumentationSidebarItemPayload

Fields
Field Name Description
guide - DocumentationGuide
Example
{"guide": DocumentationGuide} 

RemovePostInput

Fields
Input Field Description
id - ID! The ID of the post to remove.
Example
{"id": 4} 

RemovePostPayload

Fields
Field Name Description
post - Post The deleted post.
Example
{"post": Post} 

RemovePublicationMemberInput

Description

Input to remove a user from a publication.

Fields
Input Field Description
username - String! The username of the user to remove from the publication.
publicationId - ID! The publication ID the user is a member of.
Example
{ "username": "xyz789", "publicationId": "4" } 

RemovePublicationMemberPayload

Description

Response to removing a user from a publication.

Fields
Field Name Description
member - PublicationMember! Returns the removed publication member.
Example
{"member": PublicationMember} 

RemoveRecommendationInput

Fields
Input Field Description
recommendingPublicationId - ID!
recommendedPublicationId - ID!
Example
{ "recommendingPublicationId": 4, "recommendedPublicationId": "4" } 

RemoveRecommendationPayload

Fields
Field Name Description
recommendedPublication - Publication!
Example
{"recommendedPublication": Publication} 

RemoveRedirectionRuleInput

Fields
Input Field Description
id - ID!
publicationId - ID!
Example
{ "id": "4", "publicationId": "4" } 

RemoveRedirectionRulePayload

Fields
Field Name Description
redirectionRule - RedirectionRule!
Example
{"redirectionRule": RedirectionRule} 

RemoveReplyInput

Fields
Input Field Description
commentId - ID!
replyId - ID!
Example
{"commentId": 4, "replyId": "4"} 

RemoveReplyPayload

Fields
Field Name Description
reply - Reply
Example
{"reply": Reply} 

RemoveSeriesInput

Fields
Input Field Description
id - ID! The id of the series to remove.
Example
{"id": 4} 

RemoveSeriesPayload

Fields
Field Name Description
series - Series! Returns the updated series.
Example
{"series": Series} 

RenameDocumentationGuideItemInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
name - String!
Example
{ "projectId": "4", "guideSlug": "xyz789", "name": "abc123" } 

RenameDocumentationGuideItemPayload

Fields
Field Name Description
guide - DocumentationGuideItem
Example
{"guide": DocumentationGuide} 

RenameDocumentationSidebarItemInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
itemId - ID!
label - String!
Example
{ "projectId": "4", "guideSlug": "abc123", "itemId": "4", "label": "xyz789" } 

RenameDocumentationSidebarItemPayload

Fields
Field Name Description
item - DocumentationSidebarItem
guide - DocumentationGuide
Example
{ "item": DocumentationSection, "guide": DocumentationGuide } 

Reply

Description

Contains basic information about the reply. A reply is a response to a comment.

Fields
Field Name Description
id - ID! The ID of the reply.
content - Content! The content of the reply in markdown and html format.
author - User! The author of the reply.
dateAdded - DateTime! The date the reply was created.
stamp - String A unique string identifying the reply. Used as element id in the DOM on hashnode blogs. It can be used to scroll to the reply in browser.
totalReactions - Int! Total number of reactions on the reply. Reactions are hearts added to any reply.
myTotalReactions - Int! Total number of reactions on the reply by the authenticated user. User must be authenticated to use this field.
Example
{ "id": 4, "content": Content, "author": User, "dateAdded": "2007-12-03T10:15:30Z", "stamp": "xyz789", "totalReactions": 987, "myTotalReactions": 987 } 

RescheduleDraftInput

Fields
Input Field Description
draftId - ID! The Draft ID of the scheduled draft.
publishAt - DateTime! New scheduled date for the draft to be rescheduled.
Example
{ "draftId": 4, "publishAt": "2007-12-03T10:15:30Z" } 

RescheduleDraftPayload

Fields
Field Name Description
scheduledPost - ScheduledPost! Payload returned in response of reschedulePost mutation.
Example
{"scheduledPost": ScheduledPost} 

ResendWebhookRequestInput

Fields
Input Field Description
webhookId - ID!
webhookMessageId - ID!
Example
{"webhookId": 4, "webhookMessageId": "4"} 

ResendWebhookRequestPayload

Fields
Field Name Description
webhookMessage - WebhookMessage
Example
{"webhookMessage": WebhookMessage} 

RestorePostInput

Fields
Input Field Description
id - ID!
Example
{"id": 4} 

RestorePostPayload

Fields
Field Name Description
post - Post
Example
{"post": Post} 

RetryDocumentationProjectCustomDomainVerificationInput

Fields
Input Field Description
projectId - ID!
Example
{"projectId": "4"} 

RetryDocumentationProjectCustomDomainVerificationPayload

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

RevokeInviteToDocumentationProjectInput

Description

Input to revoke a user invitation to join a documentation project.

Fields
Input Field Description
projectId - ID! The ID of the documentation project.
inviteId - ID! The ID of the invite to revoke.
Example
{"projectId": 4, "inviteId": "4"} 

RevokeInviteToDocumentationProjectPayload

Description

Response to revoking an invitation to join a documentation project.

Fields
Field Name Description
success - Boolean! Signifies the success of the mutation.
project - DocumentationProject The documentation project that was associated with the invite.
Example
{"success": false, "project": DocumentationProject} 

RevokeUserInviteToPublicationInput

Description

Input to revoke a user invitation to a publication.

Fields
Input Field Description
publicationId - ID! The publication ID to revoke the invite from.
inviteId - ID! The invite ID to revoke.
Example
{ "publicationId": "4", "inviteId": "4" } 

RevokeUserInviteToPublicationPayload

Description

Response to revoking a user invitation to a publication.

Fields
Field Name Description
success - Boolean! Signifies if the mutation was successful.
Example
{"success": true} 

RoleBasedInvite

Description

Contains the role based invite information.

Fields
Field Name Description
id - ID! The ID of the role based invite.
role - UserPublicationRole! The role assigned to the user in the publication.
isUnlimitedCapacity - Boolean Boolean that signifies if the invite has unlimited capacity.
usedCapacity - Int The number of members that have already used the link to join the team.
capacity - Int The capacity of how many members to be invited by the link.
inviteLink - String Invite link of the role based invite.
createdAt - DateTime The date the invite was created.
expiryDate - DateTime The expiry date of the invite.
Example
{ "id": "4", "role": "OWNER", "isUnlimitedCapacity": false, "usedCapacity": 987, "capacity": 987, "inviteLink": "abc123", "createdAt": "2007-12-03T10:15:30Z", "expiryDate": "2007-12-03T10:15:30Z" } 

RoleBasedInviteConnection

Fields
Field Name Description
nodes - [RoleBasedInvite!]! A list of invites
pageInfo - OffsetPageInfo! Information to aid in pagination.
totalDocuments - Int! The total number of invites.
Example
{ "nodes": [RoleBasedInvite], "pageInfo": OffsetPageInfo, "totalDocuments": 123 } 

SEO

Description

Information to help in seo related meta tags.

Fields
Field Name Description
title - String The title used in og:title tag for SEO purposes.
description - String The description used in og:description tag for SEO purposes.
Example
{ "title": "xyz789", "description": "abc123" } 

SaveDocumentationPageDraftContentInput

Fields
Input Field Description
pageId - ID!
content - String
description - String
title - String
projectId - ID!
guideSlug - String
guideId - ID
Example
{ "pageId": "4", "content": "xyz789", "description": "abc123", "title": "abc123", "projectId": "4", "guideSlug": "abc123", "guideId": 4 } 

SaveDocumentationPageDraftContentPayload

Fields
Field Name Description
page - DocumentationPage
Example
{"page": DocumentationPage} 

ScheduleDraftInput

Fields
Input Field Description
draftId - ID! The id of the draft that should be published
authorId - ID! The Author ID of the draft that should be published
publishAt - DateTime! The date the draft should be published
Example
{ "draftId": 4, "authorId": "4", "publishAt": "2007-12-03T10:15:30Z" } 

ScheduleDraftPayload

Fields
Field Name Description
scheduledPost - ScheduledPost! Payload returned in response of reschedulePost mutation.
Example
{"scheduledPost": ScheduledPost} 

ScheduledPost

Description

Contains basic information about the scheduled post. A scheduled post is a post that is scheduled to be published in the future.

Fields
Field Name Description
id - ID! The ID of the scheduled post.
author - User! The date the scheduled post was created.
draft - Draft Returns the draft associated with the scheduled post.
scheduledDate - DateTime! The scheduled date for the post to be published. This is the date the post will be published.
scheduledBy - User Returns user who scheduled the post. This is usually the author of the post.
publication - Publication! Returns the publication the post is scheduled for.
Example
{ "id": "4", "author": User, "draft": Draft, "scheduledDate": "2007-12-03T10:15:30Z", "scheduledBy": User, "publication": Publication } 

Scope

Description

Enum of all the scopes that can be used with the @requireAuth directive.

Values
Enum Value Description

write_post

write_series

active_pro_user

signup

import_subscribers_to_publication

acknowledge_email_import

recommend_publications

team_hashnode

publication_author

publication_admin

publication_member

webhook_admin

update_post

publish_draft

publish_post

publish_comment

update_comment

remove_comment

publish_reply

update_reply

remove_reply

write_draft

update_draft

move_draft

delete_draft

submit_draft

reject_draft_submission

write_draft_revision

write_static_page

restore_post

write_widget

docs_admin_or_owner

docs_owner

invited_team_user

invited_docs_admin

write_ai_search_prompt

Example
"write_post" 

SearchPostConnection

Description

Connection for posts within a publication search. Contains a list of edges containing nodes. Each node is a post. Page info contains information about pagination like hasNextPage and endCursor.

Fields
Field Name Description
edges - [PostEdge!]! A list of edges containing Post information
pageInfo - PageInfo! Information for pagination in Post connection.
Example
{ "edges": [PostEdge], "pageInfo": PageInfo } 

SearchPostsOfPublicationFilter

Fields
Input Field Description
query - String The query to be searched in post.
publicationId - ObjectId! The ID of publications to search from.
deletedOnly - Boolean Only return posts that are deleted. Query returns active posts by default, set this to true to return deleted posts.
authorIds - [ID!] An array of author Ids to filter the posts.
tagIds - [ID!] An array of tag Ids to filter the posts.
time - TimeFilter Filter based on time range.
requiredTagsIds - [ID!] Tags AND filter. All tags must be present in the post.
Example
{ "query": "abc123", "publicationId": ObjectId, "deletedOnly": true, "authorIds": [4], "tagIds": ["4"], "time": TimeFilter, "requiredTagsIds": ["4"] } 

SearchUser

Fields
Field Name Description
id - ID! ID of the user.
user - User! User node containing the user information.
pendingInviteStatus - Boolean Signifies if the user has a pending invite to the publication. Returned when the filter has pendingInviteStatus set to true.
Example
{"id": 4, "user": User, "pendingInviteStatus": false} 

Series

Description

Contains basic information about the series. A series is a collection of posts that are related to each other.

Fields
Field Name Description
id - ID! The ID of the series.
name - String! The name of the series. Shown in series page.
createdAt - DateTime! The date and time the series was created.
description - Content The description of the series. Contains markdown and html version of the series's description.
coverImage - String The cover image of the series.
author - User! Returns the user who is author of the series.
cuid - ID Unique identifier for the series.
slug - String! The slug of the series. Used to access series page. Example https://johndoe.com/series/series-slug
sortOrder - SortOrder! The sort order of the series, determines if the latest posts should appear first or last in series.
posts - SeriesPostConnection! Returns a list of posts in the series.
Arguments
first - Int!

The number of posts to return.

after - String

The cursor after which the posts are to be returned.

Example
{ "id": 4, "name": "xyz789", "createdAt": "2007-12-03T10:15:30Z", "description": Content, "coverImage": "abc123", "author": User, "cuid": "4", "slug": "abc123", "sortOrder": "asc", "posts": SeriesPostConnection } 

SeriesConnection

Description

Connection for Series. Contains a list of edges containing nodes. Each node is a Series. Page info contains information about pagination like hasNextPage and endCursor.

Fields
Field Name Description
edges - [SeriesEdge!]! A list of edges containing Series information
pageInfo - PageInfo! Information for pagination in SeriesList connection.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "edges": [SeriesEdge], "pageInfo": PageInfo, "totalDocuments": 123 } 

SeriesEdge

Description

Contains a Series and a cursor for pagination.

Fields
Field Name Description
node - Series! The node holding the Series information
cursor - String! A cursor for use in pagination.
Example
{ "node": Series, "cursor": "xyz789" } 

SeriesPostConnection

Description

Connection for posts within a series. Contains a list of edges containing nodes. Each node is a post. Page info contains information about pagination like hasNextPage and endCursor.

Fields
Field Name Description
edges - [PostEdge!]! A list of edges containing Post information
pageInfo - PageInfo! Information for pagination in Post connection.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "edges": [PostEdge], "pageInfo": PageInfo, "totalDocuments": 123 } 

SetDocumentationSidebarItemVisibilityInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
itemId - ID!
visibility - DocumentationSidebarItemVisibility!
Example
{ "projectId": "4", "guideSlug": "abc123", "itemId": "4", "visibility": "PUBLIC" } 

SetDocumentationSidebarItemVisibilityPayload

Fields
Field Name Description
item - DocumentationSidebarItem
guide - DocumentationGuide
Example
{ "item": DocumentationSection, "guide": DocumentationGuide } 

SortOrder

Description

SortOrder is a common enum for all types that can be sorted.

Values
Enum Value Description

asc

dsc

Example
"asc" 

StaticPage

Description

Contains basic information about the static page. Static pages are pages that are written in markdown and can be added to blog.

Fields
Field Name Description
id - ID! The ID of the static page.
title - String! The title of the static page. Shown in nav bar.
slug - String! The slug of the static page. Used to access static page. Example https://johndoe.com/my-page.
content - Content! Content of the static page. Contains markdown and html version of the static page's content.
hidden - Boolean! A flag to determine if the static page is hidden from public or not, this is used to hide the page instead of deleting it.
ogMetaData - OpenGraphMetaData Information about the static page's Open Graph metadata i.e. image.
seo - SEO Information about the static page's SEO metadata i.e. title and description.
Example
{ "id": 4, "title": "abc123", "slug": "xyz789", "content": Content, "hidden": false, "ogMetaData": OpenGraphMetaData, "seo": SEO } 

StaticPageConnection

Description

Connection to get list of static pages. Returns a list of edges which contains the static page and cursor to the last item of the previous page.

Fields
Field Name Description
edges - [StaticPageEdge!]! A list of edges containing nodes in the connection.
pageInfo - PageInfo! Information to aid in pagination.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "edges": [StaticPageEdge], "pageInfo": PageInfo, "totalDocuments": 987 } 

StaticPageEdge

Description

An edge that contains a node of type static page and cursor to the node.

Fields
Field Name Description
node - StaticPage! The node containing a static page.
cursor - String! A cursor to the last item of the previous page.
Example
{ "node": StaticPage, "cursor": "xyz789" } 

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789" 

StripeConfiguration

Description

Contains the publication's Stripe configuration.

Fields
Field Name Description
connected - Boolean! A flag indicating if the publication is connected to Stripe.
accountId - String The Stripe account ID of the publication.
country - String The country of origin of the publication.
Example
{ "connected": false, "accountId": "abc123", "country": "abc123" } 

SubscribeToNewsletterInput

Fields
Input Field Description
publicationId - ObjectId! The ID of the publication to subscribe to.
email - String! The email of the subscriber.
Example
{ "publicationId": ObjectId, "email": "xyz789" } 

SubscribeToNewsletterPayload

Fields
Field Name Description
status - NewsletterSubscribeStatus
Example
{"status": "PENDING"} 

SyncDocumentationProjectApiDefinitionInput

Description

The input for syncing API reference definitions

Fields
Input Field Description
projectId - ID! The ID of the documentation project
apiReferenceId - ID! The ID of the docs API reference
versionId - ID! The ID of the reference version
Example
{ "projectId": 4, "apiReferenceId": "4", "versionId": "4" } 

SyncDocumentationProjectApiDefinitionPayload

Description

The response to syncing documentation project API Reference definition

Fields
Field Name Description
success - Boolean! Signifies if the mutation was successful.
Example
{"success": true} 

TableOfContentsFeature

Fields
Field Name Description
isEnabled - Boolean! Whether or not the user has chosen to show a table of contents on the post.
items - [TableOfContentsItem!]! The content of the table of contents.
Example
{"isEnabled": false, "items": [TableOfContentsItem]} 

TableOfContentsItem

Fields
Field Name Description
id - ID! Unique identifier.
level - Int! The level of nesting. Refers to the heading level in the post.
slug - String! The slug of the referenced headline.
title - String! The title of the referenced headline.
parentId - ID ID of the TableOfContentsItem that is one level higher in the hierarchy. null if this is a top level item.
Example
{ "id": 4, "level": 123, "slug": "xyz789", "title": "abc123", "parentId": 4 } 

Tag

Fields
Field Name Description
id - ID! The ID of the tag.
name - String! The name of the tag. Shown in tag page.
slug - String! The slug of the tag. Used to access tags feed. Example https://hashnode.com/n/graphql
logo - String The logo of the tag. Shown in tag page.
tagline - String The tagline of the tag.
info - Content Information about the tag. Contains markdown html and text version of the tag's info.
followersCount - Int! Total number of users following this tag.
postsCount - Int! Alltime usage count of this tag in posts.
posts - FeedPostConnection! Paginated list of posts published under this tag
Arguments
first - Int!

The number of posts in particular tag to return per page.

after - String

The cursor after which the posts are to be returned.

filter - TagPostConnectionFilter!

The cursor before which the posts are to be returned.

Example
{ "id": "4", "name": "xyz789", "slug": "xyz789", "logo": "xyz789", "tagline": "abc123", "info": Content, "followersCount": 123, "postsCount": 987, "posts": FeedPostConnection } 

TagEdge

Description

Contains a tag and a cursor for pagination.

Fields
Field Name Description
node - Tag! The node holding the Tag information
cursor - String! A cursor for use in pagination.
Example
{ "node": Tag, "cursor": "abc123" } 

TagPostConnectionFilter

Fields
Input Field Description
sortBy - TagPostsSort Sort tag feed by recents, popular, or trending. Defaults to recents.
Example
{"sortBy": "recent"} 

TagPostsSort

Description

The field by which to sort the tag feed.

Values
Enum Value Description

recent

Determinate how to sort the results. Defaults to recents, used in New tag feed.

popular

Sorts by popularity, used in Hot tag feed.

trending

Trending is particular used to fetch top posts trending within a week time under a tag
Example
"recent" 

TextSelectionSharerFeature

Description

Contains the flag indicating if the text selection sharer feature is enabled or not. User can enable or disable the text selection sharer feature from the publication settings. Shows a widget if a text on a blog post is selected. Allows for easy sharing or copying of the selected text.

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the text selection sharer feature is enabled or not.
Example
{"isEnabled": true} 

TimeFilter

Fields
Input Field Description
absolute - AbsoluteTimeRange

Narrow the time range to a specific period.

Can't be used with relative.

relative - RelativeTimeRange

Narrow the time range to a specific period.

Can't be used with absolute.

Example
{ "absolute": AbsoluteTimeRange, "relative": RelativeTimeRange } 

TimeGranularity

Values
Enum Value Description

HOURLY

DAILY

WEEKLY

MONTHLY

YEARLY

Example
"HOURLY" 

TimePeriod

Values
Enum Value Description

LAST_N_HOURS

LAST_N_DAYS

LAST_N_WEEKS

LAST_N_MONTHS

LAST_N_YEARS

Example
"LAST_N_HOURS" 

TimeZone

Description

A field whose value exists in the standard IANA Time Zone Database: https://www.iana.org/time-zones

Example
"Etc/UTC" 

ToggleAllowContributorEditsInput

Fields
Input Field Description
publicationId - ID!
Example
{"publicationId": "4"} 

ToggleAllowContributorEditsPayload

Fields
Field Name Description
publication - Publication
Example
{"publication": Publication} 

ToggleFollowUserPayload

Description

Payload for the toggleFollowingUser mutation.

Fields
Field Name Description
user - User The user that was followed/unfollowed.
Example
{"user": User} 

ToggleGPTBotCrawlingInput

Fields
Input Field Description
publicationId - ID!
Example
{"publicationId": 4} 

ToggleGPTBotCrawlingPayload

Fields
Field Name Description
publication - Publication
Example
{"publication": Publication} 

ToggleRoleBasedInviteLinksPayload

Description

Response to toggling role based invite links.

Fields
Field Name Description
areRoleBasedInviteLinksActive - Boolean! Signifies the status of invite links after toggling.
Example
{"areRoleBasedInviteLinksActive": true} 

ToggleTextSelectionSharerInput

Fields
Input Field Description
publicationId - ID!
Example
{"publicationId": "4"} 

ToggleTextSelectionSharerPayload

Fields
Field Name Description
publication - Publication
Example
{"publication": Publication} 

TriggerWebhookTestInput

Fields
Input Field Description
webhookId - ID!
Example
{"webhookId": 4} 

TriggerWebhookTestPayload

Fields
Field Name Description
webhook - Webhook
Example
{"webhook": Webhook} 

URL

Example
"http://www.test.com/" 

UnfollowTagsInput

Fields
Input Field Description
ids - [ID!]! List of tag ids to unfollow.
Example
{"ids": ["4"]} 

UnfollowTagsPayload

Fields
Field Name Description
tags - [Tag!] List of tags unfollowed by the user.
Example
{"tags": [Tag]} 

UngroupedDocsViews

Description

Views implementation that will be returned if no grouping is applied.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
Example
{"id": 4, "total": 987} 

UngroupedDocsVisitors

Description

Visitors implementation that will be returned if no grouping is applied.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
Example
{"id": "4", "total": 123} 

UngroupedViews

Description

Views implementation that will be returned if no grouping is applied.

Fields
Field Name Description
id - ID!
total - Int! The aggregated views.
Example
{"id": 4, "total": 123} 

UngroupedVisitors

Description

Visitors implementation that will be returned if no grouping is applied.

Fields
Field Name Description
id - ID!
total - Int! The aggregated number of visitors.
Example
{"id": "4", "total": 123} 

UnsubscribeFromNewsletterInput

Fields
Input Field Description
publicationId - ObjectId! The ID of the publication to unsubscribe from.
email - String! The email that is currently subscribed.
Example
{ "publicationId": ObjectId, "email": "abc123" } 

UnsubscribeFromNewsletterPayload

Fields
Field Name Description
status - NewsletterUnsubscribeStatus
Example
{"status": "UNSUBSCRIBED"} 

UpdateCommentInput

Fields
Input Field Description
id - ID!
contentMarkdown - String!
Example
{"id": 4, "contentMarkdown": "xyz789"} 

UpdateCommentPayload

Fields
Field Name Description
comment - Comment
Example
{"comment": Comment} 

UpdateContentBlockInput

Fields
Input Field Description
projectId - ID!
embedId - String!
label - String!
content - String!
Example
{ "projectId": "4", "embedId": "abc123", "label": "xyz789", "content": "abc123" } 

UpdateContentBlockPayload

Fields
Field Name Description
project - DocumentationProject!
Example
{"project": DocumentationProject} 

UpdateCustomMdxComponentInput

Fields
Input Field Description
projectId - ID!
componentId - String!
code - String!
Example
{ "projectId": "4", "componentId": "xyz789", "code": "abc123" } 

UpdateCustomMdxComponentPayload

Fields
Field Name Description
project - DocumentationProject!
Example
{"project": DocumentationProject} 

UpdateDocumentationAppearanceInput

Fields
Input Field Description
projectId - ID!
appearance - DocumentationProjectAppearanceInput!
Example
{ "projectId": 4, "appearance": DocumentationProjectAppearanceInput } 

UpdateDocumentationAppearancePayload

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

UpdateDocumentationGeneralSettingsInput

Fields
Input Field Description
projectId - ID!
settings - DocumentationProjectSettingsInput
links - DocumentationProjectLinksInput
name - String
description - String
Example
{ "projectId": "4", "settings": DocumentationProjectSettingsInput, "links": DocumentationProjectLinksInput, "name": "abc123", "description": "xyz789" } 

UpdateDocumentationGeneralSettingsPayload

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

UpdateDocumentationGuideInput

Fields
Input Field Description
projectId - ID!
guideId - ID!
slug - String
name - String
metaTags - MetaTagsInput
Example
{ "projectId": "4", "guideId": "4", "slug": "abc123", "name": "xyz789", "metaTags": MetaTagsInput } 

UpdateDocumentationGuidePayload

Fields
Field Name Description
guide - DocumentationGuide
Example
{"guide": DocumentationGuide} 

UpdateDocumentationIntegrationsInput

Fields
Input Field Description
projectId - ID!
integrations - DocumentationProjectIntegrationsInput!
Example
{ "projectId": "4", "integrations": DocumentationProjectIntegrationsInput } 

UpdateDocumentationIntegrationsPayload

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

UpdateDocumentationLinkInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
linkId - ID!
label - String!
url - String
Example
{ "projectId": 4, "guideSlug": "abc123", "linkId": "4", "label": "xyz789", "url": "xyz789" } 

UpdateDocumentationLinkPayload

Fields
Field Name Description
link - DocumentationLink
guide - DocumentationGuide
Example
{ "link": DocumentationLink, "guide": DocumentationGuide } 

UpdateDocumentationPageSettingsInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
pageId - ID!
metaTags - MetaTagsInput
slug - String
label - String
visibility - DocumentationSidebarItemVisibility
Example
{ "projectId": "4", "guideSlug": "xyz789", "pageId": "4", "metaTags": MetaTagsInput, "slug": "xyz789", "label": "xyz789", "visibility": "PUBLIC" } 

UpdateDocumentationPageSettingsPayload

Fields
Field Name Description
page - DocumentationPage
sidebarItem - DocumentationSidebarItemPage
guide - DocumentationGuide
Example
{ "page": DocumentationPage, "sidebarItem": DocumentationSidebarItemPage, "guide": DocumentationGuide } 

UpdateDocumentationProjectAIPromptInput

Description

The input for updating the AI search prompts

Fields
Input Field Description
projectId - ID! The ID of the documentation project
promptId - ID! The ID of the prompt to update
prompt - String! The prompt text
Example
{ "projectId": 4, "promptId": "4", "prompt": "xyz789" } 

UpdateDocumentationProjectAIPromptPayload

Description

Response to updating the AI search prompts

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

UpdateDocumentationProjectSubdomainInput

Fields
Input Field Description
projectId - ID!
subdomain - String!
Example
{"projectId": 4, "subdomain": "abc123"} 

UpdateDocumentationProjectSubdomainPayload

Fields
Field Name Description
project - DocumentationProject
Example
{"project": DocumentationProject} 

UpdateDocumentationSectionInput

Fields
Input Field Description
projectId - ID!
guideSlug - String!
sectionId - ID!
slug - String
label - String
visibility - DocumentationSidebarItemVisibility
Example
{ "projectId": "4", "guideSlug": "abc123", "sectionId": 4, "slug": "xyz789", "label": "abc123", "visibility": "PUBLIC" } 

UpdateDocumentationSectionPayload

Fields
Field Name Description
section - DocumentationSection
guide - DocumentationGuide
Example
{ "section": DocumentationSection, "guide": DocumentationGuide } 

UpdatePostInput

Fields
Input Field Description
id - ID! The id of the post to update.
title - String The new title of the post
subtitle - String The subtitle of the post
contentMarkdown - String The publication the post is published to.
publishedAt - DateTime Backdated publish date.
coverImageOptions - CoverImageOptionsInput Options for the cover image of the post.
bannerImageOptions - BannerImageOptionsInput Options for the banner image of the post.
slug - String Slug of the post. Only if you want to override the slug that will be generated based on the title.
originalArticleURL - String Canonical URL of the original article.
tags - [PublishPostTagInput!] Tags to add to the post. New tags will be created if they don't exist. It overrides the existing tags.
metaTags - MetaTagsInput Information about the meta tags added to the post, used for SEO purpose.
publishAs - ObjectId Set a different author for the post than the requesting user. Must be a member of the publication.
coAuthors - [ObjectId!] Update co-authors of the post. Must be a member of the publication.
seriesId - ObjectId Providing a seriesId will add the post to that series. Must be a series of the publication.
settings - UpdatePostSettingsInput Whether or not to enable the table of content.
publicationId - ObjectId If the publication should be changed this is the new Publication ID
Example
{ "id": "4", "title": "abc123", "subtitle": "xyz789", "contentMarkdown": "abc123", "publishedAt": "2007-12-03T10:15:30Z", "coverImageOptions": CoverImageOptionsInput, "bannerImageOptions": BannerImageOptionsInput, "slug": "xyz789", "originalArticleURL": "abc123", "tags": [PublishPostTagInput], "metaTags": MetaTagsInput, "publishAs": ObjectId, "coAuthors": [ObjectId], "seriesId": ObjectId, "settings": UpdatePostSettingsInput, "publicationId": ObjectId } 

UpdatePostPayload

Fields
Field Name Description
post - Post
Example
{"post": Post} 

UpdatePostSettingsInput

Fields
Input Field Description
isTableOfContentEnabled - Boolean A flag to indicate if the post contains table of content
delisted - Boolean A flag to indicate if the post is delisted, used to hide the post from public feed.
disableComments - Boolean Whether or not comments should be disabled.
pinToBlog - Boolean Pin the post to the blog homepage.
Example
{ "isTableOfContentEnabled": false, "delisted": true, "disableComments": true, "pinToBlog": true } 

UpdateRedirectionRuleInput

Fields
Input Field Description
id - ID!
publicationId - ID!
source - String
destination - URL
type - HttpRedirectionType
Example
{ "id": "4", "publicationId": 4, "source": "abc123", "destination": "http://www.test.com/", "type": "TEMPORARY" } 

UpdateRedirectionRulePayload

Fields
Field Name Description
redirectionRule - RedirectionRule!
Example
{"redirectionRule": RedirectionRule} 

UpdateReplyInput

Fields
Input Field Description
commentId - ID!
replyId - ID!
contentMarkdown - String!
Example
{ "commentId": "4", "replyId": 4, "contentMarkdown": "xyz789" } 

UpdateReplyPayload

Fields
Field Name Description
reply - Reply
Example
{"reply": Reply} 

UpdateRoleBasedInviteInput

Description

Input to update a role based invite.

Fields
Input Field Description
inviteId - ID! The ID of the role based invite.
publicationId - ID!
role - UserPublicationInviteRole The role to assign to the user in the publication.
enableUnlimitedCapacity - Boolean Boolean to enable unlimited capacity.
capacity - Int The capacity of how many members to be invited by the link.
expiryDate - DateTime The expiry date of the invite.
Example
{ "inviteId": "4", "publicationId": 4, "role": "EDITOR", "enableUnlimitedCapacity": true, "capacity": 123, "expiryDate": "2007-12-03T10:15:30Z" } 

UpdateRoleBasedInvitePayload

Description

Response to updating a role based invite for a publication.

Fields
Field Name Description
invite - RoleBasedInvite! The updated role based invite.
Example
{"invite": RoleBasedInvite} 

UpdateSeriesInput

Fields
Input Field Description
id - ID! The id of the series to update.
name - String The name of the series.
slug - String The slug of the series. Used to access series page. Example https://johndoe.com/series/series-slug
descriptionMarkdown - String The description of the series. Accepts markdown.
coverImage - String The cover image of the series.
sortOrder - SortOrder The sort order of the series, determines if the latest posts should appear first or last in series.
Example
{ "id": "4", "name": "xyz789", "slug": "xyz789", "descriptionMarkdown": "abc123", "coverImage": "abc123", "sortOrder": "asc" } 

UpdateSeriesPayload

Fields
Field Name Description
series - Series! Returns the updated series.
Example
{"series": Series} 

UpdateWebhookInput

Fields
Input Field Description
id - ID!
url - String
events - [WebhookEvent!]
secret - String
Example
{ "id": "4", "url": "xyz789", "events": ["POST_PUBLISHED"], "secret": "abc123" } 

UpdateWebhookPayload

Fields
Field Name Description
webhook - Webhook
Example
{"webhook": Webhook} 

UrlPattern

Values
Enum Value Description

DEFAULT

Post URLs contain the slug (for example my slug) and a random id (like 1234) , e.g. "/my-slug-1234".

SIMPLE

Post URLs only contain the slug, e.g. "/my-slug".
Example
"DEFAULT" 

User

Description

Basic information about a user on Hashnode.

Fields
Field Name Description
id - ID! The ID of the user. It can be used to identify the user.
username - String! The username of the user. It is unique and tied with user's profile URL. Example - https://hashnode.com/@username
name - String! The name of the user.
bio - Content The bio of the user. Visible in about me section of the user's profile.
bioV2 - Content The bio of the user. Visible in about me section of the user's profile. Will be removed on 26/10/2023. Use bio instead of bioV2
profilePicture - String The URL to the profile picture of the user.
socialMediaLinks - SocialMediaLinks The social media links of the user. Shown on the user's profile.
badges - [Badge!]! Returns a list of badges that the user has earned. Shown on blogs /badges page. Example - https://iamshadmirza.com/badges
publications - UserPublicationsConnection! Publications associated with the user. Includes personal and team publications.
Arguments
first - Int!

The maximum number of publications to return in a batch.

after - String

The cursor to start the query from.

sortBy - UserPublicationsSort

The sort direction for the publication.

filter - UserPublicationsConnectionFilter

Filter to apply to the publications.

posts - UserPostConnection! Returns the list of posts the user has published.
Arguments
pageSize - Int!

The number of posts to return on a single page.

page - Int!

The page number that should be returned.

sortBy - UserPostsSort

The sort direction for the posts based on the publish dates.

filter - UserPostConnectionFilter

The filters to be applied to the post list.

followersCount - Int! The number of users that follow the requested user. Visible in the user's profile.
followingsCount - Int! The number of users that this user is following. Visible in the user's profile.
tagline - String The tagline of the user. Shown on the user's profile below the name.
dateJoined - DateTime The date the user joined Hashnode.
location - String The location of the user.
availableFor - String The availability of the user based on tech stack and interests. Shown on the "I am available for" section in user's profile.
tagsFollowing - [Tag!]! Returns a list of tags that the user follows.
ambassador - Boolean! Whether or not the user is an ambassador. Ambassadors program no longer active. Will be removed after 02/01/2024
deactivated - Boolean! Whether or not the user is deactivated.
following - Boolean! Whether or not the authenticated user follows this user. Returns false if the authenticated user this user.
followsBack - Boolean! Whether or not this user follows the authenticated user. Returns false if the authenticated user this user.
followers - UserConnection! The users who are following this user
Arguments
pageSize - Int!

The number of posts to return on a single page.

page - Int!

The page number that should be returned.

follows - UserConnection! The users which this user is following
Arguments
pageSize - Int!

The number of posts to return on a single page.

page - Int!

The page number that should be returned.

techStack - UserTagsConnection! Returns list of tags from user's expertise. Shown on the user's profile.
Arguments
pageSize - Int!

The number of tags to return on a single page.

page - Int!

The page number that should be returned.

Example
{ "id": 4, "username": "xyz789", "name": "xyz789", "bio": Content, "bioV2": Content, "profilePicture": "abc123", "socialMediaLinks": SocialMediaLinks, "badges": [Badge], "publications": UserPublicationsConnection, "posts": UserPostConnection, "followersCount": 987, "followingsCount": 987, "tagline": "abc123", "dateJoined": "2007-12-03T10:15:30Z", "location": "abc123", "availableFor": "xyz789", "tagsFollowing": [Tag], "ambassador": false, "deactivated": true, "following": true, "followsBack": false, "followers": UserConnection, "follows": UserConnection, "techStack": UserTagsConnection } 

UserConnection

Description

Connection for users to another user. Contains a list of nodes. Each node is a user. Page info contains information about pagination like hasNextPage and endCursor.

Fields
Field Name Description
nodes - [User!]! A list of users
pageInfo - OffsetPageInfo! Information for page based pagination in users connection.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "nodes": [User], "pageInfo": OffsetPageInfo, "totalDocuments": 987 } 

UserDraftConnection

Description

Drafts that belong to a user.

Fields
Field Name Description
edges - [UserDraftEdge!]! A list of edges.
pageInfo - PageInfo! Generic information to aid in pagination.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "edges": [UserDraftEdge], "pageInfo": PageInfo, "totalDocuments": 987 } 

UserDraftEdge

Description

A generic type which holds a draft during pagination.

Fields
Field Name Description
node - Draft! The item at the end of UserDraftEdge.
cursor - String! A cursor for use in pagination.
Example
{ "node": Draft, "cursor": "xyz789" } 

UserEdge

Description

Contains a node of type user and cursor for pagination.

Fields
Field Name Description
node - User! The node containing User information
cursor - String! The cursor for use in pagination.
Example
{ "node": User, "cursor": "abc123" } 

UserInviteInput

Fields
Input Field Description
username - String Username of the user to invite to the publication.
email - String The email of the user to invite to the publication.
role - UserPublicationInviteRole! The role to assign to the user in the publication.
Example
{ "username": "abc123", "email": "xyz789", "role": "EDITOR" } 

UserInviteStatus

Values
Enum Value Description

INVITED

NOT_INVITED

Example
"INVITED" 

UserPostConnection

Description

Connection for posts written by a single user. Contains a list of edges containing nodes. Each node is a post. Page info contains information about pagination like hasNextPage and endCursor.

Fields
Field Name Description
edges - [UserPostEdge!]! A list of edges containing Post information
nodes - [Post!]! A list of posts
pageInfo - OffsetPageInfo! Information for page based pagination in Post connection.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "edges": [UserPostEdge], "nodes": [Post], "pageInfo": OffsetPageInfo, "totalDocuments": 123 } 

UserPostConnectionFilter

Description

Filter for the posts of a user.

Fields
Input Field Description
tags - [ID!]

Only include posts that reference the provided tag IDs.

Filtering by tags and tagSlugs will filter posts that match either of those two filters.

tagSlugs - [String!]

Only include posts that reference the provided tag slugs.

Filtering by tags and tagSlugs will filter posts that match either of those two filters.

publications - [ID!] Filtering by publication IDs will return posts from the author within the publication.
authorType - UserPostsAuthorTypeFilter Filtering by author status. Either all posts the user has authored or co-authored are returned or the authored posts only.
Example
{ "tags": [4], "tagSlugs": ["abc123"], "publications": [4], "authorType": "AUTHOR_ONLY" } 

UserPostEdge

Description

Contains a post and the author status.

Fields
Field Name Description
node - Post! The node holding the Post information.
authorType - PostAuthorType! Indicates weather the user is the author or co-author of the post.
Example
{"node": Post, "authorType": "AUTHOR"} 

UserPostsAuthorTypeFilter

Description

Filter for the posts of a user.

Values
Enum Value Description

AUTHOR_ONLY

Only posts that are authored by the user.

CO_AUTHOR_ONLY

Only posts that are co-authored by the user.
Example
"AUTHOR_ONLY" 

UserPostsSort

Description

Sorting for the posts of a user.

Values
Enum Value Description

DATE_PUBLISHED_DESC

Newest posts first.

DATE_PUBLISHED_ASC

Oldest posts first.
Example
"DATE_PUBLISHED_DESC" 

UserPublicationInviteRole

Description

The invited role of the user in the publication.

Values
Enum Value Description

EDITOR

The editor has access to the publication dashboard to customize the blog and approve/reject posts. They also have access to the member panel to add/modify/remove members. Editors cannot remove other editors or update their roles.

CONTRIBUTOR

Contributors can join the publication and contribute an article. They cannot directly publish a new article.
Example
"EDITOR" 

UserPublicationRole

Description

The role of the user in the publication.

Values
Enum Value Description

OWNER

The owner is the creator of the publication and can do all things, including delete publication.

EDITOR

The editor has access to the publication dashboard to customize the blog and approve/reject posts. They also have access to the member panel to add/modify/remove members. Editors cannot remove other editors or update their roles.

CONTRIBUTOR

Contributors can join the publication and contribute an article. They cannot directly publish a new article.
Example
"OWNER" 

UserPublicationsConnection

Description

Connection to get list of publications. Returns a list of edges which contains the publications and cursor to the last item of the previous page.

Fields
Field Name Description
edges - [UserPublicationsEdge!]! A list of edges of publications connection.
pageInfo - PageInfo! Information to aid in pagination.
totalDocuments - Int! The total amount of publications taking into account the filter.
Example
{ "edges": [UserPublicationsEdge], "pageInfo": PageInfo, "totalDocuments": 987 } 

UserPublicationsConnectionFilter

Description

Filter to apply to the publications.

Fields
Input Field Description
roles - [UserPublicationRole!] Only include publication in which the user has one of the provided roles.
Example
{"roles": ["OWNER"]} 

UserPublicationsEdge

Description

An edge that contains a node of type publication and cursor to the node.

Fields
Field Name Description
node - Publication! Node containing the publication.
cursor - String! The cursor to the node.
role - UserPublicationRole! The role of the user in the publication.
Example
{ "node": Publication, "cursor": "xyz789", "role": "OWNER" } 

UserPublicationsSort

Description

Sorting for the publications of a user.

Values
Enum Value Description

DATE_CREATED_DESC

Newest publication first.

DATE_CREATED_ASC

Oldest publication first.

DATE_UPDATED_DESC

Recently updated publication first.

DATE_UPDATED_ASC

Recently updated publication last.
Example
"DATE_CREATED_DESC" 

UserRecommendedPublicationEdge

Fields
Field Name Description
node - Publication! The publication that is recommended by the publication this connection originates from.
totalFollowersGained - Int! The amount of followers the publication referenced in node has gained by recommendations from the publication.
Example
{"node": Publication, "totalFollowersGained": 987} 

UserRecommendingPublicationEdge

Fields
Field Name Description
node - Publication! The publication that is recommending the publication this connection originates from.
totalFollowersGained - Int! The amount of followers the publication has gained by recommendations from the publication referenced in node.
Example
{"node": Publication, "totalFollowersGained": 987} 

UserRole

Description

Role of the user within Hashnode

Values
Enum Value Description

SUPERUSER

MODERATOR

USER

Example
"SUPERUSER" 

UserTagsConnection

Fields
Field Name Description
nodes - [Tag!]! A list of tags
pageInfo - OffsetPageInfo! Information for page based pagination in users connection.
totalDocuments - Int! The total number of documents in the connection.
Example
{ "nodes": [Tag], "pageInfo": OffsetPageInfo, "totalDocuments": 123 } 

ValidationMethod

Values
Enum Value Description

ID

Example
"ID" 

VerifyDocumentationProjectCustomDomainInput

Fields
Input Field Description
projectId - ID!
Example
{"projectId": "4"} 

VerifyDocumentationProjectCustomDomainPayload

Fields
Field Name Description
project - DocumentationProject The documentation project where the custom domain should be verified. Note, that the verification can also fail.
dnsVerificationEntries - [DnsVerificationEntry!]! Additional DNS entries required to verify the domain. There are cases where additional records in the DNS config are required to successfully verify the domain.
Example
{ "project": DocumentationProject, "dnsVerificationEntries": [DnsVerificationEntry] } 

VersioningFeature

Description

Contains the flag indicating if the Versioning feature is enabled or not.

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the Versioning feature is enabled or not.
Example
{"isEnabled": true} 

ViewCountFeature

Description

Contains the flag indicating if the view count feature is enabled or not. User can enable or disable the view count feature from the publication settings. Shows total views on blogs if enabled.

Fields
Field Name Description
isEnabled - Boolean! A flag indicating if the view count feature is enabled or not.
Example
{"isEnabled": false} 

Views

Visitors

Webhook

Fields
Field Name Description
id - ID! The ID of the post. Used to uniquely identify the post.
publication - Publication!
url - String!
events - [WebhookEvent!]!
secret - String!
createdAt - DateTime!
updatedAt - DateTime
messages - WebhookMessageConnection! Messages that has been sent via this webhook. Messages include the request and eventual response.
Arguments
first - Int!

The number of items to be returned per page.

after - String

A cursor to the last item of the previous page.

Example
{ "id": "4", "publication": Publication, "url": "abc123", "events": ["POST_PUBLISHED"], "secret": "abc123", "createdAt": "2007-12-03T10:15:30Z", "updatedAt": "2007-12-03T10:15:30Z", "messages": WebhookMessageConnection } 

WebhookEvent

Values
Enum Value Description

POST_PUBLISHED

POST_UPDATED

POST_DELETED

STATIC_PAGE_PUBLISHED

STATIC_PAGE_EDITED

STATIC_PAGE_DELETED

Example
"POST_PUBLISHED" 

WebhookMessage

Fields
Field Name Description
id - ID!
url - String!
event - WebhookEvent!
isError - Boolean! True if either the request failed or the response status code was not 2xx.
isTest - Boolean! True if the message was sent as a test.
isResent - Boolean! True if the message was resent.
request - WebhookMessageRequest!
response - WebhookMessageResponse
createdAt - DateTime!
Example
{ "id": "4", "url": "abc123", "event": "POST_PUBLISHED", "isError": false, "isTest": true, "isResent": false, "request": WebhookMessageRequest, "response": WebhookMessageResponse, "createdAt": "2007-12-03T10:15:30Z" } 

WebhookMessageConnection

Fields
Field Name Description
edges - [WebhookMessageEdge!]!
pageInfo - PageInfo!
Example
{ "edges": [WebhookMessageEdge], "pageInfo": PageInfo } 

WebhookMessageEdge

Fields
Field Name Description
node - WebhookMessage!
cursor - String!
Example
{ "node": WebhookMessage, "cursor": "abc123" } 

WebhookMessageRequest

Fields
Field Name Description
uuid - String! Unique identifier of the request. Can be used to deduplicate requests.
headers - String!
body - String!
error - WebhookMessageRequestError
Example
{ "uuid": "abc123", "headers": "xyz789", "body": "abc123", "error": WebhookMessageRequestError } 

WebhookMessageRequestError

Fields
Field Name Description
code - String!
message - String!
Example
{ "code": "xyz789", "message": "abc123" } 

WebhookMessageResponse

Fields
Field Name Description
httpStatus - Int!
headers - String
body - String
timeToFirstByteMilliseconds - Int The time it took from the moment the request has been send until the first byte of the response has been received.
Example
{ "httpStatus": 123, "headers": "xyz789", "body": "xyz789", "timeToFirstByteMilliseconds": 123 } 

Widget

Fields
Field Name Description
id - ID! The unique identifier of the widget
widgetId - String! WidgetId, can be embedded as %%[widgetId] in the article
createdAt - DateTime! The date and time the widget was created.
content - String! Content of the widget, can be a simple string or HTML
pinSettings - WidgetPinSettings
Example
{ "id": 4, "widgetId": "abc123", "createdAt": "2007-12-03T10:15:30Z", "content": "xyz789", "pinSettings": WidgetPinSettings } 

WidgetPinLocation

Values
Enum Value Description

TOP

BOTTOM

Example
"TOP" 

WidgetPinSettings

Fields
Field Name Description
isPinned - Boolean! Signifies if pinning of widget on all the articles of publication is enabled or not
location - WidgetPinLocation! Describes the location of the widget on the article, can be TOP or BOTTOM
Example
{"isPinned": false, "location": "TOP"}