### Successful response for site setup Source: https://docs.logchimp.app/api-reference/auth/getSiteSetup Example of a successful response from the GET /auth/setup endpoint. The "is_setup" field indicates whether the site has been set up. ```json { "is_setup": true } ``` -------------------------------- ### GET /auth/setup Source: https://docs.logchimp.app/api-reference/auth/getSiteSetup Retrieves the site setup status. Returns a boolean indicating whether the site has been set up. ```APIDOC ## GET /auth/setup ### Description Get site setup information. ### Method GET ### Endpoint /auth/setup ### Parameters None ### Request Example No request body required. ### Response #### Success Response (200) - **is_setup** (boolean) - Indicates whether the site has been set up. #### Response Example { "is_setup": true } ### Error Response (500) - **message** (string) - Error message. - **code** (string) - Error code. #### Error Example { "message": "Something went wrong!", "code": "SERVER_ERROR" } ``` -------------------------------- ### Get site setup with cURL Source: https://docs.logchimp.app/api-reference/auth/getSiteSetup Use this cURL command to retrieve the site setup status. The response is a JSON object with an "is_setup" boolean field. ```bash curl -X GET "http://localhost:8000/api/v1/auth/setup" ``` -------------------------------- ### Start Docker containers for development Source: https://docs.logchimp.app/developing/local-development Starts the Docker containers defined in the development compose file. Run from the root directory. ```bash docker compose -f ./docker/local/docker-compose.dev.yml up -d ``` -------------------------------- ### POST /auth/setup Source: https://docs.logchimp.app/api-reference/auth/siteSetup Setup the site by creating the owner account. This endpoint initializes the site with the owner's credentials and returns the user object with an authentication token. ```APIDOC ## POST /auth/setup ### Description Setup the site by creating the owner account. ### Method POST ### Endpoint `/auth/setup` ### Parameters #### Request Body - **email** (string, format: email) - Required - The email address of the owner. - **password** (string, format: password) - Required - The password for the owner account. - **siteTitle** (string) - Optional - This will be shown across the website on public pages and dashboard. - **name** (string) - Optional - The name of the owner. ### Request Example ```json { "email": "mike@example.com", "password": "password" } ``` ### Response #### Success Response (200) - **user** (object) - The created user object. - **authToken** (string) - JWT authentication token. - **userId** (string) - Unique identifier of the user. - **name** (string) - Name of the user. - **username** (string) - Username of the user. - **email** (string) - Email of the user. - **avatar** (string) - URL of the user's avatar. #### Response Example ```json { "user": { "authToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxZjEzN2QyMy04NDYzLTQ5NjEtYjY2NS1hNWQ4ZjE2NzVlNzciLCJlbWFpbCI6ImFkbWluQG1lLm1lIiwidHlwZSI6ImVtYWlsVmVyaWZpY2F0aW9uIiwiaWF0IjoxNzU3MzQ2NzE3LCJleHAiOjE3NTc1MTk1MTd9.2lmZpMdltMSk3PSyGOFR5dUuy4RMjxAzDgaFaNUmeNo\n", "userId": "1f137d23-8463-4961-b665-a5d8f1675e77", "name": "Mike", "username": "mike", "email": "mike@example.com", "avatar": "\"https://www.gravatar.com/avatar/fc51027a642571734eaaefd103b2f00c\"" } } ``` ### Error Responses #### 400 Bad Request ```json { "message": "Enter valid email", "code": "EMAIL_INVALID" } ``` #### 403 Forbidden ```json { "message": "Setup has already been completed.", "code": "SETUP_COMPLETED" } ``` #### 500 Internal Server Error ```json { "message": "Something went wrong!", "code": "SERVER_ERROR" } ``` #### 501 Not Implemented ```json { "message": "Mail configuration missing", "code": "MAIL_CONFIG_MISSING" } ``` ``` -------------------------------- ### Example API URL Source: https://docs.logchimp.app/api-reference Example of a full API endpoint URL using the version 'v1'. ```text https://yourdomain.com/api/v1/ ``` -------------------------------- ### Error response 403: SETUP_COMPLETED Source: https://docs.logchimp.app/api-reference/auth/siteSetup Returned when the setup has already been completed. ```json { "message": "Setup has already been completed.", "code": "SETUP_COMPLETED" } ``` -------------------------------- ### Copy .env.example files to .env Source: https://docs.logchimp.app/developing/local-development Copies the example environment files for the server, theme, and e2e packages to their respective .env files. Run from the root directory. ```bash cp ./packages/server/.env.example ./packages/server/.env; \ cp ./packages/theme/.env.example ./packages/theme/.env; \ cp ./packages/e2e/.env.example ./packages/e2e/.env ``` -------------------------------- ### Start the LogChimp theme Source: https://docs.logchimp.app/developing/local-development Starts the LogChimp theme development server. Can be run manually or via a VSCode task named 'LogChimp Theme Dev'. ```bash cd ./packages/theme pnpm dev ``` -------------------------------- ### cURL request to get roadmap by URL Source: https://docs.logchimp.app/api-reference/roadmaps/roadmapByUrl Sends a GET request to the endpoint with a URL slug. The server URL is http://localhost:8000/api/v1. ```bash curl -X GET "http://localhost:8000/api/v1/roadmaps/string" ``` -------------------------------- ### Successful response (200) for POST /posts/get Source: https://docs.logchimp.app/api-reference/posts/filterPosts Example of a successful response containing a list of posts with details such as postId, title, board, author, roadmap, and voters. ```json { "posts": [ { "postId": "string", "title": "string", "slug": "string", "contentMarkdown": "string", "createdAt": "2025-09-23T13:28:01.611Z", "updatedAt": "2025-09-23T13:28:01.611Z", "board": { "boardId": "11c14790-b4d3-4689-942c-55548cfdd8a6", "name": "🔗 Integrations", "color": "4A90E2", "url": "integrations-dsgksdIUYO", "createdAt": "2025-09-23T13:28:01.611Z" }, "author": { "userId": "string", "name": "string", "avatar": "string", "username": "string" }, "roadmap": { "id": {}, "name": {}, "url": {}, "color": {} }, "voters": { "votes": [ { "voteId": "string", "userId": "string", "postId": "string", "createdAt": "2025-09-23T13:28:01.611Z", "name": "string", "username": "string", "avatar": "string" } ], "votesCount": 10, "viewerVote": { "voteId": "string", "userId": "string", "postId": "string", "createdAt": "2025-09-23T13:28:01.611Z" } } } ] } ``` -------------------------------- ### GET /boards Source: https://docs.logchimp.app/api-reference/boards/filterBoards Retrieves all boards. Requires JWT bearer token authentication. Supports optional query parameters for sorting and pagination. ```APIDOC ## GET /boards ### Description Get all the boards ### Method GET ### Endpoint `/boards` ### Parameters #### Query Parameters - **created** (string) - Optional - Sort order by date creation. Default: `"desc"` - **limit** (string) - Optional - Default: `"10"` - **page** (string) - Optional - Default: `"1"` #### Header Parameters - **Authorization** (string) - Required - JWT Bearer token authentication. Format: `Bearer ` - **Content-Type** (string) - Optional - Default: `"application/json"` ### Request Example ``` curl -X GET "http://localhost:8000/api/v1/boards" \ -H "Authorization: Bearer " ``` ### Response #### Success Response (200) - **boards** (array) - List of boards - **boardId** (string) - Unique identifier for the board - **name** (string) - Name of the board - **color** (string) - Color code for the board - **url** (string) - URL slug for the board - **createdAt** (string) - Creation timestamp - **post_count** (string) - Number of posts in the board #### Response Example ``` { "boards": [ { "boardId": "11c14790-b4d3-4689-942c-55548cfdd8a6", "name": "🔗 Integrations", "color": "4A90E2", "url": "integrations-dsgksdIUYO", "createdAt": "2025-09-23T13:28:01.611Z", "post_count": "42" } ] } ``` #### Error Response (400) - **message** (string) - Error message - **code** (string) - Error code #### Error Response Example ``` { "message": "Something went wrong!", "code": "SERVER_ERROR" } ``` ``` -------------------------------- ### GET /roadmaps/search/{name} Source: https://docs.logchimp.app/api-reference/roadmaps/searchRoadmaps Search roadmaps by name using the GET /roadmaps/search/{name} endpoint. ```APIDOC ## GET /roadmaps/search/{name} ### Description Search roadmaps by name. ### Method GET ### Endpoint `/roadmaps/search/{name}` ### Parameters #### Path Parameters - **name** (string) - Required - Roadmap name ### Authorization `bearerAuth` - JWT Bearer token authentication. Provide the token in the `Authorization` header as `Bearer `. ### Request Example ``` curl -X GET "http://localhost:8000/api/v1/roadmaps/search/string" \ -H "Authorization: Bearer " ``` ### Response #### Success Response (200) - **roadmaps** (array) - List of roadmaps matching the search. - **id** (object) - Roadmap ID. - **name** (string) - Roadmap name. - **url** (string) - Roadmap URL. - **color** (string) - Roadmap color. - **index** (number) - Roadmap index. - **display** (boolean) - Whether the roadmap is displayed. - **created_at** (string) - Roadmap creation timestamp. #### Response Example ``` { "roadmaps": [ { "id": {}, "name": {}, "url": {}, "color": {}, "index": 0, "display": true, "created_at": "2025-09-23T13:28:01.611Z" } ] } ``` #### Error Responses - **403** - You do not have permission to perform this action. ``` { "message": "You do not have permission to perform this action.", "code": "NOT_ENOUGH_PERMISSION" } ``` - **500** - Something went wrong! ``` { "message": "Something went wrong!", "code": "SERVER_ERROR" } ``` ``` -------------------------------- ### cURL request to get all roadmaps Source: https://docs.logchimp.app/api-reference/roadmaps/filterRoadmaps Sends a GET request to the /roadmaps endpoint with Bearer token authentication. The Authorization header must contain a valid JWT token. ```bash curl -X GET "http://localhost:8000/api/v1/roadmaps" \ -H "Authorization: Bearer " ``` -------------------------------- ### API Path Format Source: https://docs.logchimp.app/api-reference Shows the required path prefix for all LogChimp API endpoints. The version string is required and always starts with 'v'. ```text /api/{version}/ ``` -------------------------------- ### GET /roadmaps Source: https://docs.logchimp.app/api-reference/roadmaps/filterRoadmaps Fetches all roadmaps. Requires JWT bearer token authentication. Supports pagination via 'first' and 'after' query parameters, and optional filtering by visibility. ```APIDOC ## GET /roadmaps ### Description Get all roadmaps ### Method GET ### Endpoint `/roadmaps` ### Server URL `http://localhost:8000/api/v1` ### Authorization `bearerAuth` - JWT Bearer token authentication - In: `header` - Format: `Authorization: Bearer ` ### Query Parameters - **first** (number) - Optional - Number of items to return in a request. Range: `1 <= value` - **after** (string) - Optional - Cursor for pagination - **visibility** (array) - Optional - Filter by visibility ### Response #### Success Response (200) - **page_info** (object) - Pagination information - **count** (number) - Number of items in the current page - **current_page** (number) - Current page number - **has_next_page** (boolean) - Whether there is a next page - **end_cursor** (string) - Cursor for the end of the page - **start_cursor** (string) - Cursor for the start of the page - **total_pages** (number) - Total number of pages - **total_count** (number) - Total number of roadmaps - **results** (array) - List of roadmaps - **id** (object) - Roadmap ID - **name** (object) - Roadmap name - **url** (object) - Roadmap URL - **color** (object) - Roadmap color - **index** (number) - Roadmap index - **display** (boolean) - Whether the roadmap is displayed - **created_at** (string) - Creation timestamp - **roadmaps** (array) - List of roadmaps (same structure as results) #### Response Example (200) ```json { "page_info": { "count": 0, "current_page": 0, "has_next_page": true, "end_cursor": "string", "start_cursor": "string" }, "total_pages": 0, "total_count": 0, "results": [ { "id": {}, "name": {}, "url": {}, "color": {}, "index": 0, "display": true, "created_at": "2025-09-23T13:28:01.611Z" } ], "roadmaps": [ { "id": {}, "name": {}, "url": {}, "color": {}, "index": 0, "display": true, "created_at": "2025-09-23T13:28:01.611Z" } ] } ``` #### Error Response (400) ```json { "code": "VALIDATION_ERROR", "message": "Invalid query parameters", "errors": [] } ``` #### Error Response (500) ```json { "message": "Something went wrong!", "code": "SERVER_ERROR" } ``` ### Request Example (cURL) ```bash curl -X GET "http://localhost:8000/api/v1/roadmaps" \ -H "Authorization: Bearer " ``` ``` -------------------------------- ### cURL request to GET /boards Source: https://docs.logchimp.app/api-reference/boards/filterBoards Sends a GET request to the boards endpoint with a bearer token for authentication. The token must be provided in the Authorization header. ```cURL curl -X GET "http://localhost:8000/api/v1/boards" \ -H "Authorization: Bearer " ``` -------------------------------- ### Successful response (200) Source: https://docs.logchimp.app/api-reference/posts/postBySlug Example of a successful response containing the post object with details such as postId, title, slug, contentMarkdown, board, author, roadmap, voters, and slugId. ```json { "post": { "postId": "string", "title": "string", "slug": "string", "contentMarkdown": "string", "createdAt": "2025-09-23T13:28:01.611Z", "updatedAt": "2025-09-23T13:28:01.611Z", "board": { "boardId": "11c14790-b4d3-4689-942c-55548cfdd8a6", "name": "🔗 Integrations", "color": "4A90E2", "url": "integrations-dsgksdIUYO", "createdAt": "2025-09-23T13:28:01.611Z" }, "author": { "userId": "string", "name": "string", "avatar": "string", "username": "string" }, "roadmap": { "id": {}, "name": {}, "url": {}, "color": {} }, "voters": { "votes": [ { "voteId": "string", "userId": "string", "postId": "string", "createdAt": "2025-09-23T13:28:01.611Z", "name": "string", "username": "string", "avatar": "string" } ], "votesCount": 10, "viewerVote": { "voteId": "string", "userId": "string", "postId": "string", "createdAt": "2025-09-23T13:28:01.611Z" } }, "slugId": "string" } } ``` -------------------------------- ### Run LogChimp with Docker Compose Source: https://docs.logchimp.app/self-hosting/docker Starts the LogChimp containers in detached mode using the specified compose file and environment file. After running, LogChimp is accessible at http://localhost:3000. ```bash docker compose --file ./docker/local/docker-compose.yml --env-file ./.env up --detach ``` -------------------------------- ### GET /api/{version}/ Source: https://docs.logchimp.app/api-reference Retrieves the API root endpoint, providing information about the available API resources and versioning. This is the base path for all LogChimp API requests. ```APIDOC ## GET /api/{version}/ ### Description Retrieves the API root endpoint, providing information about the available API resources and versioning. This is the base path for all LogChimp API requests. ### Method GET ### Endpoint /api/{version}/ ### Parameters #### Path Parameters - **version** (string) - Required - The API version, always starting with 'v' (e.g., 'v1'). ### Response #### Success Response (200) - **message** (string) - A welcome message or API information. #### Response Example { "message": "Welcome to the LogChimp API Reference." } ``` -------------------------------- ### cURL request to search roadmaps by name Source: https://docs.logchimp.app/api-reference/roadmaps/searchRoadmaps Sends a GET request to the search endpoint with a bearer token. The response contains a list of roadmaps matching the name. ```bash curl -X GET "http://localhost:8000/api/v1/roadmaps/search/string" \ -H "Authorization: Bearer " ``` -------------------------------- ### GET /roadmaps/{url} Source: https://docs.logchimp.app/api-reference/roadmaps/roadmapByUrl Retrieves a roadmap by its URL slug. The slug is provided as a path parameter, and the response contains the roadmap's id, name, url, and color. ```APIDOC ## GET /roadmaps/{url} ### Description Get roadmap by Url ### Method GET ### Endpoint `/roadmaps/{url}` ### Parameters #### Path Parameters - **url** (string) - Required - Roadmap slug ### Request Example ``` curl -X GET "http://localhost:8000/api/v1/roadmaps/string" ``` ### Response #### Success Response (200) - **roadmap** (object) - The roadmap object - **id** (object) - Roadmap ID - **name** (object) - Roadmap name - **url** (object) - Roadmap URL - **color** (object) - Roadmap color #### Response Example ``` { "roadmap": { "id": {}, "name": {}, "url": {}, "color": {} } } ``` #### Error Response (404) ``` { "message": "Roadmap not found", "code": "ROADMAP_ID_OR_URL_MISSING" } ``` #### Error Response (500) ``` { "message": "Something went wrong!", "code": "SERVER_ERROR" } ``` ``` -------------------------------- ### Download docker-compose.yml and .env.example Source: https://docs.logchimp.app/self-hosting/docker Downloads the docker-compose.yml and .env.example files from the LogChimp repository. The must be v0.8.0 or higher. ```bash curl -L -o docker-compose.yml \ https://raw.githubusercontent.com/logchimp/logchimp/refs/tags//docker/community/docker-compose.yml -o .env \ https://raw.githubusercontent.com/logchimp/logchimp/refs/tags//docker/community/.env.example ``` -------------------------------- ### cURL request to POST /auth/setup Source: https://docs.logchimp.app/api-reference/auth/siteSetup Sends a POST request to create the owner account. Requires email and password in the JSON body; siteTitle and name are optional. ```bash curl -X POST "http://localhost:8000/api/v1/auth/setup" \ -H "Content-Type: application/json" \ -d '{ "email": "mike@example.com", "password": "password" }' ``` -------------------------------- ### POST /auth/signup Source: https://docs.logchimp.app/api-reference/auth/userSignup Creates a new user account with the provided email and password. Returns the created user object including an authentication token. ```APIDOC ## POST /auth/signup ### Description Creates a new user account with the provided email and password. ### Method POST ### Endpoint `/auth/signup` ### Parameters #### Request Body - **email** (string, format: email) - Required - The email address for the new account. - **password** (string, format: password) - Required - The password for the new account. ### Request Example ```json { "email": "mike@example.com", "password": "password" } ``` ### Response #### Success Response (201) - **user** (object) - The created user object. - **authToken** (string) - JWT authentication token. - **userId** (string) - Unique identifier for the user. - **name** (string) - Display name of the user. - **username** (string) - Username of the user. - **email** (string) - Email address of the user. - **avatar** (string) - URL to the user's avatar. #### Response Example ```json { "user": { "authToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxZjEzN2QyMy04NDYzLTQ5NjEtYjY2NS1hNWQ4ZjE2NzVlNzciLCJlbWFpbCI6ImFkbWluQG1lLm1lIiwidHlwZSI6ImVtYWlsVmVyaWZpY2F0aW9uIiwiaWF0IjoxNzU3MzQ2NzE3LCJleHAiOjE3NTc1MTk1MTd9.2lmZpMdltMSk3PSyGOFR5dUuy4RMjxAzDgaFaNUmeNo\n", "userId": "1f137d23-8463-4961-b665-a5d8f1675e77", "name": "Mike", "username": "mike", "email": "mike@example.com", "avatar": "\"https://www.gravatar.com/avatar/fc51027a642571734eaaefd103b2f00c\"" } } ``` ### Error Responses #### 400 Bad Request - **message** (string) - Error message. - **code** (string) - Error code. #### 500 Internal Server Error - **message** (string) - Error message. - **code** (string) - Error code. #### Error Examples ```json { "message": "Mail configuration missing", "code": "MAIL_CONFIG_MISSING" } ``` ```json { "message": "Something went wrong!", "code": "SERVER_ERROR" } ``` ``` -------------------------------- ### Success response for roadmap by URL Source: https://docs.logchimp.app/api-reference/roadmaps/roadmapByUrl Returns a roadmap object with id, name, url, and color fields. ```json { "roadmap": { "id": {}, "name": {}, "url": {}, "color": {} } } ``` -------------------------------- ### cURL request to sign up Source: https://docs.logchimp.app/api-reference/auth/userSignup Sends a POST request to the signup endpoint with email and password in the JSON body. ```bash curl -X POST "http://localhost:8000/api/v1/auth/signup" \ -H "Content-Type: application/json" \ -d '{ "email": "mike@example.com", "password": "password" }' ``` -------------------------------- ### cURL request to get post by slug Source: https://docs.logchimp.app/api-reference/posts/postBySlug Sends a POST request to the /posts/slug endpoint with a JSON body containing the slug. The slug is required; userId is optional. ```bash curl -X POST "http://localhost:8000/api/v1/posts/slug" \ -H "Content-Type: application/json" \ -d '{ "slug": null }' ``` -------------------------------- ### POST /auth/login Source: https://docs.logchimp.app/api-reference/auth/userSignin Logs in a user with email and password. Returns user information and an authentication token. ```APIDOC ## POST /auth/login ### Description Login to account using email and password. ### Method POST ### Endpoint `/auth/login` ### Parameters #### Request Body - **email** (string) - Required - Format: email - **password** (string) - Required - Format: password ### Request Example ```json { "email": "mike@example.com", "password": "password" } ``` ### Response #### Success Response (200) - **user** (object) - Contains user details and auth token. - **authToken** (string) - JWT token for authentication. - **userId** (string) - User ID. - **name** (string) - User's name. - **username** (string) - User's username. - **email** (string) - User's email. - **avatar** (string) - URL to user's avatar. #### Response Example ```json { "user": { "authToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxZjEzN2QyMy04NDYzLTQ5NjEtYjY2NS1hNWQ4ZjE2NzVlNzciLCJlbWFpbCI6ImFkbWluQG1lLm1lIiwidHlwZSI6ImVtYWlsVmVyaWZpY2F0aW9uIiwiaWF0IjoxNzU3MzQ2NzE3LCJleHAiOjE3NTc1MTk1MTd9.2lmZpMdltMSk3PSyGOFR5dUuy4RMjxAzDgaFaNUmeNo\n", "userId": "1f137d23-8463-4961-b665-a5d8f1675e77", "name": "Mike", "username": "mike", "email": "mike@example.com", "avatar": "\"https://www.gravatar.com/avatar/fc51027a642571734eaaefd103b2f00c\"" } } ``` #### Error Responses - **400** - Invalid email or password. - Example: `{"message": "Enter valid email", "code": "EMAIL_INVALID"}` - **500** - Server error. - Example: `{"message": "Something went wrong!", "code": "SERVER_ERROR"}` ``` -------------------------------- ### Download coolify-compose.yml Source: https://docs.logchimp.app/self-hosting/deployments/coolify Downloads the LogChimp Docker Compose file for Coolify deployment. Replace with a version v0.8.0 or higher. ```bash curl -L -o coolify-compose.yml \ https://raw.githubusercontent.com/logchimp/logchimp/refs/tags//docker/community/docker-compose.yml ``` -------------------------------- ### Successful response with boards list Source: https://docs.logchimp.app/api-reference/boards/filterBoards Returns a 200 response containing an array of board objects. Each board includes its ID, name, color, URL, creation timestamp, and post count. ```JSON { "boards": [ { "boardId": "11c14790-b4d3-4689-942c-55548cfdd8a6", "name": "🔗 Integrations", "color": "4A90E2", "url": "integrations-dsgksdIUYO", "createdAt": "2025-09-23T13:28:01.611Z", "post_count": "42" } ] } ``` -------------------------------- ### Build the LogChimp Types package Source: https://docs.logchimp.app/developing/local-development Builds the @logchimp/types package using pnpm. This step is currently not automated. ```bash pnpm --filter="@logchimp/types" build ``` -------------------------------- ### Clone the LogChimp repository Source: https://docs.logchimp.app/developing/local-development Clones the LogChimp repository into a specified folder and navigates into it. Replace with your desired directory name. ```bash git clone git@github.com:logchimp/logchimp.git cd ``` -------------------------------- ### 404 error response for roadmap not found Source: https://docs.logchimp.app/api-reference/roadmaps/roadmapByUrl Returns a message and code when the roadmap is not found. ```json { "message": "Roadmap not found", "code": "ROADMAP_ID_OR_URL_MISSING" } ``` -------------------------------- ### Successful response with roadmaps data Source: https://docs.logchimp.app/api-reference/roadmaps/filterRoadmaps Returns a 200 response containing pagination info and an array of roadmaps. The response includes page_info, total_pages, total_count, results, and roadmaps fields. ```json { "page_info": { "count": 0, "current_page": 0, "has_next_page": true, "end_cursor": "string", "start_cursor": "string" }, "total_pages": 0, "total_count": 0, "results": [ { "id": {}, "name": {}, "url": {}, "color": {}, "index": 0, "display": true, "created_at": "2025-09-23T13:28:01.611Z" } ], "roadmaps": [ { "id": {}, "name": {}, "url": {}, "color": {}, "index": 0, "display": true, "created_at": "2025-09-23T13:28:01.611Z" } ] } ``` -------------------------------- ### POST /posts Source: https://docs.logchimp.app/api-reference/auth/siteSetup List all posts. This endpoint retrieves all posts from the site. ```APIDOC ## POST /posts ### Description List all posts. ### Method POST ### Endpoint `/posts` ### Parameters None ### Request Example None ### Response #### Success Response (200) No response body provided in the source. #### Response Example No response example provided in the source. ### Error Responses No error responses provided in the source. ``` -------------------------------- ### Login with cURL Source: https://docs.logchimp.app/api-reference/auth/userSignin Sends a POST request to the login endpoint with an email and password in the JSON body. The server URL is http://localhost:8000/api/v1 and the endpoint is /auth/login. ```bash curl -X POST "http://localhost:8000/api/v1/auth/login" \ -H "Content-Type: application/json" \ -d '{ "email": "mike@example.com", "password": "password" }' ``` -------------------------------- ### cURL request to POST /posts/get Source: https://docs.logchimp.app/api-reference/posts/filterPosts Sends a POST request to list posts with pagination and sorting. The request body includes page and created parameters. ```bash curl -X POST "http://localhost:8000/api/v1/posts/get" \ -H "Content-Type: application/json" \ -d '{ "page": 1, "created": "desc" }' ``` -------------------------------- ### Successful response with roadmaps Source: https://docs.logchimp.app/api-reference/roadmaps/searchRoadmaps Returns a 200 status with a roadmaps array containing roadmap objects. ```json { "roadmaps": [ { "id": {}, "name": {}, "url": {}, "color": {}, "index": 0, "display": true, "created_at": "2025-09-23T13:28:01.611Z" } ] } ``` -------------------------------- ### POST /posts/get Source: https://docs.logchimp.app/api-reference/posts/filterPosts Retrieves all posts from the LogChimp platform. The request body supports filtering by board IDs, roadmap ID, pagination, and sorting by creation date. ```APIDOC ## POST /posts/get ### Description Get all the posts from the LogChimp platform. The request body allows filtering by board IDs, roadmap ID, pagination, and sorting. ### Method POST ### Endpoint `/posts/get` Server URL: `http://localhost:8000/api/v1` ### Parameters #### Request Body - `userId` (string, uuid, Deprecated) - Optional - Deprecated user ID. - `boardId` (array) - Optional - Posts will be searched from the list of provided board IDs. If a value is not provided, it defaults to empty array and posts are searched from all the boards. - `roadmapId` (string, uuid) - Optional - Roadmap ID to filter posts. - `page` (number) - Required - Page number of the results to fetch. - `limit` (number) - Optional - Number of posts to return in a single request. Default is 10. - `created` (string) - Required - Sort posts by creation date in 'asc' or 'desc' order. ### Request Example ```json { "page": 1, "created": "desc" } ``` ### Response #### Success Response (200) - `posts` (array) - List of posts. - `postId` (string) - Post ID. - `title` (string) - Post title. - `slug` (string) - Post slug. - `contentMarkdown` (string) - Post content in Markdown. - `createdAt` (string) - Creation timestamp. - `updatedAt` (string) - Update timestamp. - `board` (object) - Board details. - `boardId` (string) - Board ID. - `name` (string) - Board name. - `color` (string) - Board color. - `url` (string) - Board URL. - `createdAt` (string) - Board creation timestamp. - `author` (object) - Author details. - `userId` (string) - User ID. - `name` (string) - User name. - `avatar` (string) - Avatar URL. - `username` (string) - Username. - `roadmap` (object) - Roadmap details. - `id` (object) - Roadmap ID. - `name` (object) - Roadmap name. - `url` (object) - Roadmap URL. - `color` (object) - Roadmap color. - `voters` (object) - Voter details. - `votes` (array) - List of votes. - `voteId` (string) - Vote ID. - `userId` (string) - User ID. - `postId` (string) - Post ID. - `createdAt` (string) - Vote creation timestamp. - `name` (string) - Voter name. - `username` (string) - Voter username. - `avatar` (string) - Voter avatar. - `votesCount` (number) - Total number of votes. - `viewerVote` (object) - Viewer's vote. - `voteId` (string) - Vote ID. - `userId` (string) - User ID. - `postId` (string) - Post ID. - `createdAt` (string) - Vote creation timestamp. #### Response Example ```json { "posts": [ { "postId": "string", "title": "string", "slug": "string", "contentMarkdown": "string", "createdAt": "2025-09-23T13:28:01.611Z", "updatedAt": "2025-09-23T13:28:01.611Z", "board": { "boardId": "11c14790-b4d3-4689-942c-55548cfdd8a6", "name": "🔗 Integrations", "color": "4A90E2", "url": "integrations-dsgksdIUYO", "createdAt": "2025-09-23T13:28:01.611Z" }, "author": { "userId": "string", "name": "string", "avatar": "string", "username": "string" }, "roadmap": { "id": {}, "name": {}, "url": {}, "color": {} }, "voters": { "votes": [ { "voteId": "string", "userId": "string", "postId": "string", "createdAt": "2025-09-23T13:28:01.611Z", "name": "string", "username": "string", "avatar": "string" } ], "votesCount": 10, "viewerVote": { "voteId": "string", "userId": "string", "postId": "string", "createdAt": "2025-09-23T13:28:01.611Z" } } } ] } ``` #### Error Response (500) - `message` (string) - Error message. - `code` (string) - Error code. #### Error Response Example ```json { "message": "Something went wrong!", "code": "SERVER_ERROR" } ``` ``` -------------------------------- ### Error response: USER_NOT_FOUND Source: https://docs.logchimp.app/api-reference/auth/sendVerificationEmail Returned when the user is not found. Contains a message and an error code. ```json { "message": "User not found", "code": "USER_NOT_FOUND" } ``` -------------------------------- ### Response: 201 Created Source: https://docs.logchimp.app/api-reference/posts/createPost Successful response with the created post object. The response includes post details such as postId, title, slug, and timestamps. ```json { "post": { "postId": "string", "title": "string", "slug": "string", "slugId": "string", "contentMarkdown": "string", "userId": "string", "createdAt": "2025-09-23T13:28:01.611Z", "updatedAt": "2025-09-23T13:28:01.611Z", "boardId": "string", "roadmap_id": "string" } } ``` -------------------------------- ### Error response: MAIL_CONFIG_MISSING Source: https://docs.logchimp.app/api-reference/auth/sendVerificationEmail Returned when SMTP mail configuration is missing. Contains a message and an error code. ```json { "message": "Mail configuration missing", "code": "MAIL_CONFIG_MISSING" } ``` -------------------------------- ### POST /posts Source: https://docs.logchimp.app/api-reference/posts/createPost Creates a new post. Requires JWT bearer token authentication. The request body must include a title, with optional contentMarkdown, boardId, and roadmapId fields. Returns the created post object with a 201 status code, or 403/500 error responses. ```APIDOC ## [POST] /posts ### Description Create a new post ### Method POST ### Endpoint /posts ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **title** (string) - Required - Title of the post. - **contentMarkdown** (string) - Optional - Post content description in markdown format. **NOTE:** LogChimp does not support markdown in the content description. For now, we only have added `contentMarkdown` property in the OpenAPI specification. - **boardId** (string) - Optional - Identifier of the board. - **roadmapId** (string) - Optional - Identifier of the roadmap. ### Request Example { "title": "string" } ### Response #### Success Response (201) - **post** (object) - The created post object. - **postId** (string) - Unique identifier of the post. - **title** (string) - Title of the post. - **slug** (string) - URL-friendly slug of the post. - **slugId** (string) - Identifier used in the slug. - **contentMarkdown** (string) - Post content in markdown format. - **userId** (string) - Identifier of the user who created the post. - **createdAt** (string) - Timestamp when the post was created. - **updatedAt** (string) - Timestamp when the post was last updated. - **boardId** (string) - Identifier of the associated board. - **roadmap_id** (string) - Identifier of the associated roadmap. #### Response Example { "post": { "postId": "string", "title": "string", "slug": "string", "slugId": "string", "contentMarkdown": "string", "userId": "string", "createdAt": "2025-09-23T13:28:01.611Z", "updatedAt": "2025-09-23T13:28:01.611Z", "boardId": "string", "roadmap_id": "string" } } #### Error Response (403) - **message** (string) - Error message. - **code** (string) - Error code. #### Error Response Example (403) { "message": "You do not have permission to perform this action.", "code": "NOT_ENOUGH_PERMISSION" } #### Error Response (500) - **message** (string) - Error message. - **code** (string) - Error code. #### Error Response Example (500) { "message": "Something went wrong!", "code": "SERVER_ERROR" } ### Authentication - **bearerAuth** - JWT Bearer token authentication. Provide the token in the Authorization header as `Bearer `. ```