### Install JWT library - Go (go get) Source: https://help.suggix.com/development/jwt Install the golang-jwt/jwt library for Go using go get. ```bash go get github.com/golang-jwt/jwt ``` -------------------------------- ### Install JWT library - Ruby (gem) Source: https://help.suggix.com/development/jwt Install the jwt gem for Ruby using sudo gem install. ```bash sudo gem install jwt ``` -------------------------------- ### Install JWT library - C# (dotnet) Source: https://help.suggix.com/development/jwt Install the System.IdentityModel.Tokens.Jwt package for C# using dotnet CLI. ```bash dotnet add package System.IdentityModel.Tokens.Jwt ``` -------------------------------- ### Example DNS record for feedback.example.com Source: https://help.suggix.com/development/custom-domains Example DNS record for the subdomain 'feedback' of 'example.com', pointing to your Suggix subdomain. Replace 'your-subdomain' with your actual Suggix subdomain. ```plaintext Type: CNAME Name: feedback Value: your-subdomain.suggix.com ``` -------------------------------- ### Install JWT library - Node.js (npm) Source: https://help.suggix.com/development/jwt Install the jsonwebtoken library for Node.js using npm. ```bash npm install --save jsonwebtoken ``` -------------------------------- ### Install JWT library - Java (Maven instructions) Source: https://help.suggix.com/development/jwt See instructions for installing the jjwt library for Java via Maven. ```text # See instructions here: https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt ``` -------------------------------- ### Request: GET /triggers/new-posts Source: https://help.suggix.com/zapier/triggers-new-posts Example request to the endpoint with board_id=10 and limit=10. Requires an API key in the Authorization header. ```http GET https://www.suggix.com/v1/triggers/new-posts?board_id=10&limit=10 Authorization: Bearer sgx_api_your_key ``` -------------------------------- ### Install JWT library - PHP (composer) Source: https://help.suggix.com/development/jwt Install the firebase/php-jwt library for PHP using Composer. ```bash composer require firebase/php-jwt ``` -------------------------------- ### cURL Request Example Source: https://help.suggix.com/zapier/overview Example cURL request to the new-posts trigger endpoint with a limit parameter. ```bash curl "https://www.suggix.com/v1/triggers/new-posts?limit=10" \ -H "Authorization: Bearer sgx_api_your_key" ``` -------------------------------- ### Install JWT library - Python (pip) Source: https://help.suggix.com/development/jwt Install the PyJWT library for Python using pip. ```bash pip install PyJWT ``` -------------------------------- ### POST /posts successful response Source: https://help.suggix.com/zapier/create-post Example 201 Created response. The response includes the new post's ID, title, URL, board ID, and creation time. ```json { "id": 367, "title": "Add keyboard shortcuts", "post_url": "https://acme.suggix.com/posts/feature-request/add-keyboard-shortcuts", "board_id": 10, "created_at": "2026-10-10T13:15:28Z" } ``` -------------------------------- ### Successful Response Example Source: https://help.suggix.com/zapier/triggers-post-status-changes Example 200 OK response showing a single status change object. The response is flat, including post details, status names, and actor information. ```json [ { "id": 2, "created_at": "2026-10-10T13:15:28Z", "post_id": 367, "post_title": "Add keyboard shortcuts", "post_url": "https://acme.suggix.com/posts/feature-request/add-keyboard-shortcuts", "board_name": "Feature Request", "from_status_id": null, "from_status": "", "to_status_id": 7, "to_status": "Backlog", "changed_by_name": "Alex", "changed_by_email": "alex@example.com" } ] ``` -------------------------------- ### Authorization Header Example Source: https://help.suggix.com/zapier/overview Send the API key as a Bearer token in the Authorization header. X-API-Key is also accepted. ```http Authorization: Bearer sgx_api_your_key ``` -------------------------------- ### Successful response: 200 OK Source: https://help.suggix.com/zapier/triggers-new-posts Example response containing an array of compact post objects. The text field is a serialized Editor.js document JSON string. An empty array means no matching posts were found. ```json [ { "id": 367, "created_at": "2026-10-10T13:15:28Z", "title": "Add keyboard shortcuts", "post_url": "https://acme.suggix.com/posts/feature-request/add-keyboard-shortcuts", "preview": "Add keyboard shortcuts", "text": "{\"time\":1791609328716,\"blocks\":[...],\"version\":\"2.31.6\"}", "board_id": 10, "board_name": "Feature Request", "creator_name": "Alex" } ] ``` -------------------------------- ### GET /triggers/post-status-changes Request Source: https://help.suggix.com/zapier/triggers-post-status-changes Example request to retrieve recent post status changes with a limit of 10. Requires an API key in the Authorization header. ```http GET https://www.suggix.com/v1/triggers/post-status-changes?limit=10 Authorization: Bearer sgx_api_your_key ``` -------------------------------- ### POST /posts request body Source: https://help.suggix.com/zapier/create-post Example JSON body for creating a post. The board_id and title are required; text is optional Markdown content. ```json { "board_id": 10, "title": "Add keyboard shortcuts", "text": "## Why this helps\n\nIt would make common actions faster.", "priority": 2, "tags": [] } ``` -------------------------------- ### Request: GET /triggers/new-comments Source: https://help.suggix.com/zapier/triggers-new-comments Example request to retrieve recent comments, with optional post_id and limit parameters. The Authorization header uses a Bearer token with the API key. ```http GET https://www.suggix.com/v1/triggers/new-comments?post_id=367&limit=10 Authorization: Bearer sgx_api_your_key ``` -------------------------------- ### Verify Suggix MCP connection with claude mcp list Source: https://help.suggix.com/mcp/claude-code Lists configured MCP servers to verify the Suggix connection. Run this command, then start Claude Code and ask a question that requires Suggix data. ```bash claude mcp list ``` -------------------------------- ### Successful response: 200 OK Source: https://help.suggix.com/zapier/triggers-new-comments Example JSON response containing an array of comment objects. The response includes fields such as id, created_at, post_id, post_title, post_url, text, and creator_name. ```json [ { "id": 432, "created_at": "2026-10-10T13:15:28Z", "post_id": 367, "post_title": "Add keyboard shortcuts", "post_url": "https://acme.suggix.com/posts/feature-request/add-keyboard-shortcuts", "text": "This would be useful for our team.", "creator_name": "Alex" } ] ``` -------------------------------- ### Set SUGGIX_MCP_API_KEY environment variable Source: https://help.suggix.com/mcp/claude-code Exports the Suggix MCP API key in the shell environment. For persistent setup, add this to your shell profile or secret manager. Avoid committing the raw key to project files. ```bash export SUGGIX_MCP_API_KEY="sgx_mcp_your_key" ``` -------------------------------- ### GET /triggers/new-posts Source: https://help.suggix.com/zapier/triggers-new-posts Returns recent feedback posts in the API key's workspace, newest first. The endpoint only checks posts created in the last 30 days. ```APIDOC ## GET /triggers/new-posts ### Description Returns recent feedback posts in the API key's workspace, newest first. The endpoint only checks posts created in the last 30 days. ### Method GET ### Endpoint /triggers/new-posts ### Parameters #### Query Parameters - **board_id** (integer) - Optional - Only return posts from this board. Must be a positive integer. - **limit** (integer) - Optional - Maximum number of results, from 1 to 100. Defaults to 100 when omitted or invalid. ### Request Example ``` GET https://www.suggix.com/v1/triggers/new-posts?board_id=10&limit=10 Authorization: Bearer sgx_api_your_key ``` ### Response #### Success Response (200) Returns an array of compact post objects. `created_at` is a UTC RFC 3339 timestamp. `post_url` is the full URL to the post in the workspace's Suggix site. An empty array means no matching posts were found in the lookback period. #### Response Example ``` [ { "id": 367, "created_at": "2026-10-10T13:15:28Z", "title": "Add keyboard shortcuts", "post_url": "https://acme.suggix.com/posts/feature-request/add-keyboard-shortcuts", "preview": "Add keyboard shortcuts", "text": "{\"time\":1791609328716,\"blocks\":[...],\"version\":\"2.31.6\"}", "board_id": 10, "board_name": "Feature Request", "creator_name": "Alex" } ] ``` #### Response Fields - **id** (integer) - Post identifier. - **created_at** (string) - Creation time in UTC RFC 3339 format. - **title** (string) - Post title. - **post_url** (string) - Absolute URL to the post, in the form `https://{workspace}.suggix.com/posts/{board-slug}/{post-slug}`. - **preview** (string) - Plain-text post preview. - **text** (string) - Serialized Editor.js document JSON, returned as a string. - **board_id** (integer) - Board identifier. - **board_name** (string) - Board display name. - **creator_name** (string) - Name of the post creator. ### Errors - **400** - `{"error":"invalid board_id"}` - `board_id` is not a positive integer. - **401** - `{"error":"invalid or missing API key"}` - The API key is absent or invalid. ``` -------------------------------- ### GET /triggers/post-status-changes Source: https://help.suggix.com/zapier/overview Trigger when a post changes status. Returns a JSON array of post status changes, ordered newest first, from the last 30 days. ```APIDOC ## GET /triggers/post-status-changes ### Description Trigger when a post changes status. Returns a JSON array of post status changes, ordered newest first, from the last 30 days. ### Method GET ### Endpoint https://www.suggix.com/v1/triggers/post-status-changes ### Parameters #### Query Parameters - **limit** (integer) - Optional - Number of items to return, between 1 and 100. If omitted or outside range, defaults to 100. ### Request Example ``` curl "https://www.suggix.com/v1/triggers/post-status-changes?limit=10" \ -H "Authorization: Bearer sgx_api_your_key" ``` ### Response #### Success Response (200) Returns a JSON array of post status changes, ordered newest first. Each item contains concise fields for automation, including full record URLs where relevant. Empty result is `[]`. #### Response Example ```json [] ``` ### Error Handling - `400 Bad Request` - Invalid query value, request body, or business rule. Response contains an `error` string. - `401 Unauthorized` - API key missing, invalid, revoked, or no longer belongs to a workspace member. - `404 Not Found` - Requested record could not be found. ``` -------------------------------- ### GET /triggers/new-comments Source: https://help.suggix.com/zapier/triggers-new-comments Returns recent, non-spam comments in the API key's workspace, newest first. The endpoint only checks comments created in the last 30 days. ```APIDOC ## GET /triggers/new-comments ### Description Returns recent, non-spam comments in the API key's workspace, newest first. The endpoint only checks comments created in the last 30 days. ### Method GET ### Endpoint https://www.suggix.com/v1/triggers/new-comments ### Parameters #### Query Parameters - **post_id** (integer) - Optional - Only return comments on this post. Must be a positive integer. - **limit** (integer) - Optional - Maximum number of results, from 1 to 100. Defaults to 100 when omitted or invalid. ### Request Example ``` GET https://www.suggix.com/v1/triggers/new-comments?post_id=367&limit=10 Authorization: Bearer sgx_api_your_key ``` ### Response #### Success Response (200) Returns an array of compact comment objects. `created_at` is a UTC RFC 3339 timestamp and `post_url` is the full URL to the related post. An empty array means no matching comments were found in the lookback period. #### Response Example ``` [ { "id": 432, "created_at": "2026-10-10T13:15:28Z", "post_id": 367, "post_title": "Add keyboard shortcuts", "post_url": "https://acme.suggix.com/posts/feature-request/add-keyboard-shortcuts", "text": "This would be useful for our team.", "creator_name": "Alex" } ] ``` #### Response Fields - **id** (integer) - Comment identifier. - **created_at** (string) - Creation time in UTC RFC 3339 format. - **post_id** (integer) - Identifier of the post containing the comment. - **post_title** (string) - Title of the related post. - **post_url** (string) - Absolute URL to the related post. - **text** (string) - Comment text. - **creator_name** (string) - Name of the comment creator. Spam comments are excluded. The response does not include attachment, reply, likes, or administrative metadata. ### Errors - **400** - `{"error":"invalid post_id"}` - `post_id` is not a positive integer. - **401** - `{"error":"invalid or missing API key"}` - The API key is absent or invalid. ``` -------------------------------- ### List configured MCP servers with codex mcp list Source: https://help.suggix.com/mcp/codex Verifies the Suggix MCP server is configured by listing all MCP servers in the Codex CLI. ```bash codex mcp list ``` -------------------------------- ### Suggix MCP server configuration in mcp.json Source: https://help.suggix.com/mcp/cursor Add this configuration to `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global) to connect Suggix. Replace `sgx_mcp_your_key` with your actual API key. Save the file and confirm the server appears in Cursor's MCP settings. ```json { "mcpServers": { "suggix": { "url": "https://mcp.suggix.com/mcp", "headers": { "Authorization": "Bearer sgx_mcp_your_key" } } } } ``` -------------------------------- ### Create .vscode/mcp.json for Suggix MCP server Source: https://help.suggix.com/mcp/github-copilot Project-scoped MCP configuration that adds the Suggix HTTP server to VS Code. Replace sgx_mcp_your_key with your actual API key. Do not commit a raw API key in this file; keep a personal configuration outside the repository when the key cannot be managed through your team's secret workflow. ```json { "servers": { "suggix": { "type": "http", "url": "https://mcp.suggix.com/mcp", "headers": { "Authorization": "Bearer sgx_mcp_your_key" } } } } ``` -------------------------------- ### Successful Response (201 Created) Source: https://help.suggix.com/zapier/create-changelog Response body for a successful creation. Contains id, title, changelog_url, created_at, and publish_at. Timestamps are UTC RFC 3339. The endpoint publishes immediately. ```json { "id": 76, "title": "Version 2.4 is here", "changelog_url": "https://acme.suggix.com/changelog/version-24-is-here", "created_at": "2026-10-10T13:15:28Z", "publish_at": "2026-10-10T13:15:28Z" } ``` -------------------------------- ### POST /posts Source: https://help.suggix.com/zapier/create-post Creates a feedback post in the API key's workspace. The post creator is the workspace member who created the key. The response is a compact object with the new post's ID, title, URL, board ID, and creation time. ```APIDOC ## POST /posts ### Description Creates a feedback post in the API key's workspace. The post creator is the workspace member who created the key. The response is a compact object with the new post's ID, title, URL, board ID, and creation time. ### Method POST ### Endpoint https://www.suggix.com/v1/posts ### Headers - **Authorization** (string) - Required - Bearer sgx_api_your_key (or send the key in X-API-Key) - **Content-Type** (string) - Required - application/json ### Parameters #### Request Body - **board_id** (integer) - Required - ID of the destination board in the same workspace. - **title** (string) - Required - Post title, 1 to 255 characters. - **text** (string) - Optional - Markdown content. It is converted to Suggix's rich text format. - **owner_id** (integer) - Optional - User ID to assign as the post owner. - **due_date** (integer) - Optional - Due date as a Unix timestamp in milliseconds. - **status_id** (integer) - Optional - ID of a status in the workspace. - **priority** (integer) - Optional - 1 Low, 2 Medium, 3 High, or 4 Urgent. - **tags** (integer array) - Optional - Tag IDs to associate with the post. ### Request Example ``` POST https://www.suggix.com/v1/posts Authorization: Bearer sgx_api_your_key Content-Type: application/json { "board_id": 10, "title": "Add keyboard shortcuts", "text": "## Why this helps\n\nIt would make common actions faster.", "priority": 2, "tags": [] } ``` ### Response #### Success Response (201 Created) Returns a compact object identifying the created post. `created_at` is a UTC RFC 3339 timestamp and `post_url` is the absolute URL to the new post. #### Response Example ``` { "id": 367, "title": "Add keyboard shortcuts", "post_url": "https://acme.suggix.com/posts/feature-request/add-keyboard-shortcuts", "board_id": 10, "created_at": "2026-10-10T13:15:28Z" } ``` #### Response Fields - **id** (integer) - Identifier of the created post. - **title** (string) - Post title. - **post_url** (string) - Absolute URL to the created post. - **board_id** (integer) - Destination board identifier. - **created_at** (string) - Creation time in UTC RFC 3339 format. ### Errors - **400** - `{"error":"invalid request body"}` - The body is not valid JSON. - **400** - `{"error":"invalid title"}` - The title is empty or longer than 255 characters. - **400** - `{"error":"board not found"}` - The board does not exist in the API key's workspace. - **400** - `{"error":"..."}` - Another field or business rule is invalid; `error` contains the reason. - **401** - `{"error":"invalid or missing API key"}` - The API key is absent or invalid. ``` -------------------------------- ### POST /changelogs Source: https://help.suggix.com/zapier/create-changelog Creates and immediately publishes a changelog entry in the API key's workspace. The endpoint always publishes the entry; it does not accept is_published or a scheduled publication time. The creator is the workspace member who created the key. ```APIDOC ## POST /changelogs ### Description Creates and immediately publishes a changelog entry in the API key's workspace. The endpoint always publishes the entry; it does not accept `is_published` or a scheduled publication time. The creator is the workspace member who created the key. ### Method POST ### Endpoint https://www.suggix.com/v1/changelogs ### Headers - **Authorization** (string) - Required - Bearer token, e.g., `Bearer sgx_api_your_key` (or send the key in `X-API-Key`) - **Content-Type** (string) - Required - `application/json` ### Parameters #### Request Body - **title** (string) - Required - Changelog title, 1 to 255 characters. - **text** (string) - Optional - Markdown content. It is converted to Suggix's rich text format. ### Request Example ``` POST https://www.suggix.com/v1/changelogs Authorization: Bearer sgx_api_your_key Content-Type: application/json { "title": "Version 2.4 is here", "text": "## What's new\n\n- Faster search\n- Improved notifications" } ``` ### Response #### Success Response (201 Created) - **id** (integer) - Identifier of the created changelog entry. - **title** (string) - Changelog title. - **changelog_url** (string) - Absolute URL to the published entry. - **created_at** (string) - Creation time in UTC RFC 3339 format. - **publish_at** (string) - Publication time in UTC RFC 3339 format. The endpoint publishes immediately. #### Response Example ``` { "id": 76, "title": "Version 2.4 is here", "changelog_url": "https://acme.suggix.com/changelog/version-24-is-here", "created_at": "2026-10-10T13:15:28Z", "publish_at": "2026-10-10T13:15:28Z" } ``` ### Errors - **400** - `{"error":"invalid request body"}` - The body is not valid JSON. - **400** - `{"error":"invalid title"}` - The title is empty or longer than 255 characters. - **400** - `{"error":"..."}` - The content could not be processed; `error` contains the reason. - **401** - `{"error":"invalid or missing API key"}` - The API key is absent or invalid. ``` -------------------------------- ### Generate SSO Token - Go Source: https://help.suggix.com/development/jwt Create an SSO token using golang-jwt/jwt with HS256 signing. The private key is your SSO private key. ```go import ( "github.com/golang-jwt/jwt" ) const PrivateKey = "Your SSO Private Key" func createSSOToken(user map[string]interface{}) (string, error) { token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ "email": user["email"], "name": user["name"], "id": user["id"], // optional "photo_url": user["photo_url"], // optional }) return token.SignedString([]byte(PrivateKey)); } ``` -------------------------------- ### POST /changelogs Request Source: https://help.suggix.com/zapier/create-changelog HTTP request to create a changelog. Requires Authorization header with Bearer token or X-API-Key, and Content-Type: application/json. The body must include a title (1-255 characters) and optional Markdown text. ```http POST https://www.suggix.com/v1/changelogs Authorization: Bearer sgx_api_your_key Content-Type: application/json ``` ```json { "title": "Version 2.4 is here", "text": "## What's new\n\n- Faster search\n- Improved notifications" } ``` -------------------------------- ### POST /posts Source: https://help.suggix.com/zapier/overview Create a feedback post from another app. Sends information from other apps into Suggix. ```APIDOC ## POST /posts ### Description Create a feedback post from another app. Sends information from other apps into Suggix. ### Method POST ### Endpoint https://www.suggix.com/v1/posts ### Parameters #### Request Body No request body fields are explicitly documented in the source. ### Request Example No request example is provided in the source. ### Response #### Success Response (200) No response schema is explicitly documented in the source. ### Error Handling - `400 Bad Request` - Invalid query value, request body, or business rule. Response contains an `error` string. - `401 Unauthorized` - API key missing, invalid, revoked, or no longer belongs to a workspace member. - `404 Not Found` - Requested record could not be found. ``` -------------------------------- ### Add Suggix MCP server to .mcp.json Source: https://help.suggix.com/mcp/claude-code Creates or updates .mcp.json in the project root for a project-scoped connection. Claude Code requires approval for project-scoped servers; use user-scoped configuration for all local projects. ```json { "mcpServers": { "suggix": { "type": "http", "url": "https://mcp.suggix.com/mcp", "headers": { "Authorization": "Bearer ${SUGGIX_MCP_API_KEY}" } } } } ``` -------------------------------- ### Add SUGGIX_MCP_API_KEY to ~/.codex/.env Source: https://help.suggix.com/mcp/codex Adds the same API key value to the Codex environment file so the desktop app or IDE extension can read it after restart. ```env SUGGIX_MCP_API_KEY=sgx_mcp_your_key ``` -------------------------------- ### Generate SSO Token - Node.js Source: https://help.suggix.com/development/jwt Create an SSO token using jsonwebtoken with HS256 algorithm. The private key is your SSO private key from the Suggix dashboard. ```javascript var jwt = require('jsonwebtoken'); var PrivateKey = 'Your SSO Private Key'; function createSSOToken(user) { var userData = { email: user.email, name: user.name, id: user.id, // optional photo_url: user.photo_url, // optional }; return jwt.sign(userData, PrivateKey, {algorithm: 'HS256'}); } ``` -------------------------------- ### CNAME DNS record format Source: https://help.suggix.com/development/custom-domains Use this CNAME record to point your custom domain's subdomain to your Suggix subdomain. Replace 'your-subdomain' with your actual Suggix subdomain. ```plaintext CNAME | your-subdomain | your-subdomain.suggix.com. ``` -------------------------------- ### POST /changelogs Source: https://help.suggix.com/zapier/overview Publish a changelog entry from another app. Sends information from other apps into Suggix. ```APIDOC ## POST /changelogs ### Description Publish a changelog entry from another app. Sends information from other apps into Suggix. ### Method POST ### Endpoint https://www.suggix.com/v1/changelogs ### Parameters #### Request Body No request body fields are explicitly documented in the source. ### Request Example No request example is provided in the source. ### Response #### Success Response (200) No response schema is explicitly documented in the source. ### Error Handling - `400 Bad Request` - Invalid query value, request body, or business rule. Response contains an `error` string. - `401 Unauthorized` - API key missing, invalid, revoked, or no longer belongs to a workspace member. - `404 Not Found` - Requested record could not be found. ``` -------------------------------- ### Generate SSO Token - C# Source: https://help.suggix.com/development/jwt Create an SSO token using System.IdentityModel.Tokens.Jwt with HS256 signing. The private key is your SSO private key. ```csharp using System; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Text; using Microsoft.IdentityModel.Tokens; public class JwtHelper { private static string PrivateKey = "Your SSO Private Key"; public static string CreateToken(User user) { byte[] keyBytes = Encoding.UTF8.GetBytes(PrivateKey); var securityKey = new SymmetricSecurityKey(keyBytes); var credentials = new SigningCredentials(securityKey, "HS256"); var header = new JwtHeader(credentials); var payload = new JwtPayload { { "email": user.email }, { "name": user.name }, { "id": user.id }, // optional { "photo_url": user.photoURL }, // optional, but preferred }; var securityToken = new JwtSecurityToken(header, payload); var handler = new JwtSecurityTokenHandler(); return handler.WriteToken(securityToken); } } ``` -------------------------------- ### Generate SSO Token - Python Source: https://help.suggix.com/development/jwt Create an SSO token using PyJWT with HS256 signing. The private key is your SSO private key. ```python import jwt private_key = 'Your SSO Private Key' def create_sso_token(user): user_data = { 'email': user.email, 'name': user.name, 'id': user.id, # optional 'photo_url': user.photo_url, # optional } return jwt.encode(user_data, private_key, algorithm='HS256') ``` -------------------------------- ### Add Suggix server definition to mcpServers object Source: https://help.suggix.com/mcp/antigravity Add this JSON object to the mcpServers object in the MCP configuration file. Replace 'sgx_mcp_your_key' with your actual Suggix API key. Save the file and refresh the MCP Servers panel to make Suggix tools and resources available. ```json { "mcpServers": { "suggix": { "serverUrl": "https://mcp.suggix.com/mcp", "headers": { "Authorization": "Bearer sgx_mcp_your_key" } } } } ``` -------------------------------- ### Generate SSO Token - Ruby Source: https://help.suggix.com/development/jwt Create an SSO token using the jwt gem with HS256 signing. The private key is your SSO private key. ```ruby require 'jwt' PrivateKey = 'Your SSO Private Key' def createSSOToken(user) userData = { email: user.email, name: user.name, id: user.id, #optional photo_url: user.photo_url, # optional } JWT.encode(userData, PrivateKey, 'HS256') end ``` -------------------------------- ### Add Suggix remote MCP server via codex mcp add Source: https://help.suggix.com/mcp/codex Registers the Suggix MCP server with Codex using the CLI. The configuration is stored in ~/.codex/config.toml; restart Codex after changing config.toml or .env. ```bash codex mcp add suggix \ --url https://mcp.suggix.com/mcp \ --bearer-token-env-var SUGGIX_MCP_API_KEY ``` -------------------------------- ### API Base URL Source: https://help.suggix.com/zapier/overview All requests use this base URL. ```text https://www.suggix.com/v1 ``` -------------------------------- ### Generate SSO Token - Java Source: https://help.suggix.com/development/jwt Create an SSO token using jjwt with HS256 signing. The private key is your SSO private key. ```java import java.util.HashMap; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; public class SSOTokenCreator { private static final String PrivateKey = "Your SSO Private Key"; public static String createToken(User user) throws Exception { HashMap userData = new HashMap(); userData.put("email", user.email); userData.put("name", user.name); userData.put("id", user.id); // optional userData.put("photo_url", user.photoURL); // optional return Jwts.builder() .setClaims(userData) .signWith(SignatureAlgorithm.HS256, PrivateKey.getBytes("UTF-8")) .compact(); } } ``` -------------------------------- ### Generate SSO Token - PHP Source: https://help.suggix.com/development/jwt Create an SSO token using firebase/php-jwt with HS256 signing. The private key is your SSO private key. ```php use \Firebase\JWT\JWT; const PrivateKey = 'Your SSO Private Key'; function createSSOToken($user) { $userData = [ 'email' => $user['email'], 'name' => $user['name'], 'id' => $user['id'], 'photo_url' => $user['photo_url'], // optional ]; return JWT::encode($userData, PrivateKey, 'HS256'); } ``` -------------------------------- ### POST /posts request headers Source: https://help.suggix.com/zapier/create-post Required headers for the POST /posts request. The Authorization header uses a bearer token or the X-API-Key header can be used instead. ```http POST https://www.suggix.com/v1/posts Authorization: Bearer sgx_api_your_key Content-Type: application/json ``` -------------------------------- ### CAA record for Let's Encrypt Source: https://help.suggix.com/development/custom-domains Add this CAA record to authorize Let's Encrypt to issue certificates for your domain. Required only if your domain uses CAA records. ```plaintext 0 issue "letsencrypt.org" ``` -------------------------------- ### Embed feedback portal link in HTML Source: https://help.suggix.com/quickstart HTML anchor tag to place on your website so users can access the public feedback portal. Use it in navigation, account menu, help center, footer, or product emails. ```html Give Feedback ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.