Ask about anything in HelpGuides.io Documentation

Type a question in your own words below. Answers are written from our published articles and cite the ones they came from.

Recently updated

    Dashboard
    Edit Article Logout

    API Keys and the REST API


    API keys let your own scripts and applications read and manage a project's content through the HelpGuides REST API. You create keys per project, and each key has only the permissions you give it.

    Creating an API key

    1. Open your project, click Settings, then open the API Keys tab.
    2. Click Create API Key.
    3. Enter a Name that says what the key is for, for example Production integration. Names can be up to 60 characters.
    4. Under Permissions, choose what the key may do. You must choose at least one.
    5. Click Create Key.
    6. Click Copy and store the key somewhere safe, such as your secrets manager.
    Create API key form with a name and permission checkboxes
    Creating an API key

    Permissions

    PermissionAllows
    post:readReading articles, categories, revisions and article metrics. Selected by default.
    post:writeCreating, updating and deleting categories and articles.
    project:readReading project settings, and searching the project.
    project:writeChanging project settings and managing the project's API keys.

    Give each key only the permissions it needs. A key that only reads content should have post:read, plus project:read if it also searches.

    Managing keys

    The table on the API Keys tab lists the project's keys with their Name, the last four characters of the Key, their Permissions and when they were Created. Each row has three actions:

    • Copy copies the full key to your clipboard.
    • Rename changes the key's name. Its permissions stay the same.
    • Revoke deletes the key after you confirm. Any integration using it stops working immediately, and this can't be undone.

    You can't change a key's permissions. To change them, create a new key, switch your integration to it, then revoke the old one.

    Treat keys like passwords

    Anyone with a key can do everything its permissions allow. Don't put keys in client-side code, public repositories or screenshots. If a key may have been exposed, revoke it and create a new one.

    Using the REST API

    Send the key as a Bearer token in the Authorization header of each request. Requests go to https://helpguides.io/api/v1/.

    curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://helpguides.io/api/v1/project/YOUR_PROJECT_ID/search?s=reset%20password"

    Your project ID is the value after /project/ in the address bar when you're working in the project, for example https://helpguides.io/project/YOUR_PROJECT_ID/settings.

    Responses

    Every endpoint returns JSON in the same wrapper. Status is true when the request succeeded, and the data is in Response under a name that depends on the endpoint.

    { "Status": true, "Message": "", "Response": { "post": { "postuid": "...", "title": "...", "slug": "..." } } }

    Endpoints

    In the paths below, replace {projectuid}, {postuid} and {categoryuid} with real IDs.

    MethodPathPermissionDescription
    GET/api/v1/project/{projectuid}project:readGet the project's settings.
    GET/api/v1/project/{projectuid}/search?s={query}project:readSearch the project and return the top 10 results. Add &article_only=true to return articles only.
    GET/api/v1/{projectuid}/categories/post:readList the project's categories.
    GET/api/v1/category/{categoryuid}post:readGet a category.
    GET/api/v1/{projectuid}/category/{categoryuid}/postspost:readList the posts in a category with their ID, title, slug, status and dates.
    POST/api/v1/{projectuid}/categorypost:writeCreate a category. Returns its uid.
    PATCH/api/v1/{projectuid}/category/{categoryuid}post:writeUpdate a category.
    DELETE/api/v1/{projectuid}/category/{categoryuid}post:writeDelete a category.
    GET/api/v1/post/{postuid}post:readGet a post. Add ?include_html=true for its HTML and &include_blocks=true for its editor blocks.
    GET/api/v1/post/{postuid}/categoriespost:readList the categories a post is in.
    GET/api/v1/{projectuid}/post/{postuid}/revisionspost:readList a post's saved revisions.
    DELETE/api/v1/{projectuid}/post/{postuid}post:writeDelete a post.
    GET/api/v1/{projectuid}/metrics/projectpost:readGet summary metrics for the project's articles.

    To publish documentation for your own REST API in HelpGuides, see API Documentation Guide and Exposing Your APIs with openapi.json.

    API keys and the MCP server

    The MCP server doesn't use API keys. AI assistants such as Claude and ChatGPT connect to it by signing in to HelpGuides through OAuth, and can then search, read, create and update articles with the tools listed in Model Context Protocol Endpoints. To connect one, see Add Claude as an MCP Connector and Model Context Protocol.


    How helpful was this article?

    πŸ‘ or πŸ‘Ž

    Related Articles

    Markdown Version