Download OpenAPI specification:Download
Artalk is a modern comment system based on Golang.
Verify user enters correct captcha code
The data to check
value required | string The captcha value to check |
{- "value": "string"
}
{ }
Get a list of comments by some conditions
string The user email | |
flat_mode | boolean Enable flat_mode |
limit | integer The limit for pagination |
name | string The username |
offset | integer The offset for pagination |
page_key required | string The comment page_key |
scope | string Enum: "page" "user" "site" The scope of comments |
search | string Search keywords |
site_name | string The site name of your content scope |
sort_by | string Enum: "date_asc" "date_desc" "vote" Sort by condition |
type | string Enum: "all" "mentions" "mine" "pending" Message center show type |
view_only_admin | boolean Only show comments by admin |
{- "comments": [
- {
- "badge_color": "string",
- "badge_name": "string",
- "content": "string",
- "content_marked": "string",
- "date": "string",
- "email_encrypted": "string",
- "id": 0,
- "ip_region": "string",
- "is_allow_reply": true,
- "is_collapsed": true,
- "is_pending": true,
- "is_pinned": true,
- "is_verified": true,
- "link": "string",
- "nick": "string",
- "page_key": "string",
- "page_url": "string",
- "rid": 0,
- "site_name": "string",
- "ua": "string",
- "user_id": 0,
- "visible": true,
- "vote_down": 0,
- "vote_up": 0
}
], - "count": 0,
- "page": {
- "admin_only": true,
- "id": 0,
- "key": "string",
- "pv": 0,
- "site_name": "string",
- "title": "string",
- "url": "string",
- "vote_down": 0,
- "vote_up": 0
}, - "roots_count": 0
}
Create a new comment
The comment data
content required | string The comment content |
email required | string The comment email |
link | string The comment link |
name required | string The comment name |
page_key required | string The comment page_key |
page_title | string The comment page_title |
rid | integer The comment rid |
site_name required | string The site name of your content scope |
ua | string The comment ua |
{- "content": "string",
- "email": "string",
- "link": "string",
- "name": "string",
- "page_key": "string",
- "page_title": "string",
- "rid": 0,
- "site_name": "string",
- "ua": "string"
}
{- "badge_color": "string",
- "badge_name": "string",
- "content": "string",
- "content_marked": "string",
- "date": "string",
- "email_encrypted": "string",
- "id": 0,
- "ip_region": "string",
- "is_allow_reply": true,
- "is_collapsed": true,
- "is_pending": true,
- "is_pinned": true,
- "is_verified": true,
- "link": "string",
- "nick": "string",
- "page_key": "string",
- "page_url": "string",
- "rid": 0,
- "site_name": "string",
- "ua": "string",
- "user_id": 0,
- "visible": true,
- "vote_down": 0,
- "vote_up": 0
}
Get the detail of a comment by comment id
id required | integer The comment ID you want to get |
{- "comment": {
- "badge_color": "string",
- "badge_name": "string",
- "content": "string",
- "content_marked": "string",
- "date": "string",
- "email_encrypted": "string",
- "id": 0,
- "ip_region": "string",
- "is_allow_reply": true,
- "is_collapsed": true,
- "is_pending": true,
- "is_pinned": true,
- "is_verified": true,
- "link": "string",
- "nick": "string",
- "page_key": "string",
- "page_url": "string",
- "rid": 0,
- "site_name": "string",
- "ua": "string",
- "user_id": 0,
- "visible": true,
- "vote_down": 0,
- "vote_up": 0
}, - "reply_comment": {
- "badge_color": "string",
- "badge_name": "string",
- "content": "string",
- "content_marked": "string",
- "date": "string",
- "email_encrypted": "string",
- "id": 0,
- "ip_region": "string",
- "is_allow_reply": true,
- "is_collapsed": true,
- "is_pending": true,
- "is_pinned": true,
- "is_verified": true,
- "link": "string",
- "nick": "string",
- "page_key": "string",
- "page_url": "string",
- "rid": 0,
- "site_name": "string",
- "ua": "string",
- "user_id": 0,
- "visible": true,
- "vote_down": 0,
- "vote_up": 0
}
}
Update a specific comment
id required | integer The comment ID you want to update |
The comment data
content required | string The comment content |
string The comment email | |
ip | string The comment ip |
is_collapsed required | boolean The comment is_collapsed |
is_pending required | boolean The comment is_pending |
is_pinned required | boolean The comment is_pinned |
link | string The comment link |
nick | string The comment nick |
page_key required | string The comment page_key |
rid required | integer The comment rid |
site_name required | string The site name of your content scope |
ua | string The comment ua |
{- "content": "string",
- "email": "string",
- "ip": "string",
- "is_collapsed": true,
- "is_pending": true,
- "is_pinned": true,
- "link": "string",
- "nick": "string",
- "page_key": "string",
- "rid": 0,
- "site_name": "string",
- "ua": "string"
}
{- "badge_color": "string",
- "badge_name": "string",
- "content": "string",
- "content_marked": "string",
- "date": "string",
- "email_encrypted": "string",
- "id": 0,
- "ip_region": "string",
- "is_allow_reply": true,
- "is_collapsed": true,
- "is_pending": true,
- "is_pinned": true,
- "is_verified": true,
- "link": "string",
- "nick": "string",
- "page_key": "string",
- "page_url": "string",
- "rid": 0,
- "site_name": "string",
- "ua": "string",
- "user_id": 0,
- "visible": true,
- "vote_down": 0,
- "vote_up": 0
}
Send an email to test the email sender
The email data
body required | string The body of email |
subject required | string The subject of email |
to_addr required | string The email address of the receiver |
{- "body": "string",
- "subject": "string",
- "to_addr": "string"
}
{ }
Apply settings and restart the server
The settings
yaml required | string The content of the config file in YAML format |
{- "yaml": "string"
}
{ }
Get config templates in different languages for rendering the settings page in the frontend
locale required | string The locale of the settings template you want to get |
{- "yaml": "string"
}
Get a list of notifies for user
name required | string The user name |
email required | string The user email |
{- "count": 0,
- "notifies": [
- {
- "comment_id": 0,
- "id": 0,
- "is_emailed": true,
- "is_read": true,
- "read_link": "string",
- "user_id": 0
}
]
}
Mark all notifies as read for user
The options
email required | string The user email |
name required | string The username |
{- "email": "string",
- "name": "string"
}
{ }
Get a list of pages by some conditions
limit | integer The limit for pagination |
offset | integer The offset for pagination |
site_name | string The site name of your content scope |
{- "count": 0,
- "pages": [
- {
- "admin_only": true,
- "id": 0,
- "key": "string",
- "pv": 0,
- "site_name": "string",
- "title": "string",
- "url": "string",
- "vote_down": 0,
- "vote_up": 0
}
]
}
Fetch the data of all pages
The options
site_name | string If not empty, only fetch pages of this site |
{- "site_name": "string"
}
{ }
Increase and get the number of page views
The page to record pv
page_key required | string The page key |
page_title | string The page title |
site_name | string The site name of your content scope |
{- "page_key": "string",
- "page_title": "string",
- "site_name": "string"
}
{- "pv": 0
}
Update a specific page
id required | integer The page ID you want to update |
The page data
admin_only required | boolean Updated page admin_only option |
key required | string Updated page key |
site_name required | string The site name of your content scope |
title required | string Updated page title |
{- "admin_only": true,
- "key": "string",
- "site_name": "string",
- "title": "string"
}
{- "admin_only": true,
- "id": 0,
- "key": "string",
- "pv": 0,
- "site_name": "string",
- "title": "string",
- "url": "string",
- "vote_down": 0,
- "vote_up": 0
}
Fetch the data of a specific page
id required | integer The page ID you want to fetch |
{- "admin_only": true,
- "id": 0,
- "key": "string",
- "pv": 0,
- "site_name": "string",
- "title": "string",
- "url": "string",
- "vote_down": 0,
- "vote_up": 0
}
Create a new site
The site data
name required | string The site name |
urls required | Array of strings The site urls |
{- "name": "string",
- "urls": [
- "string"
]
}
{- "first_url": "string",
- "id": 0,
- "name": "string",
- "urls": [
- "string"
], - "urls_raw": "string"
}
Update a specific site
id required | integer The site ID you want to update |
The site data
name required | string Updated site name |
urls required | Array of strings Updated site urls |
{- "name": "string",
- "urls": [
- "string"
]
}
{- "first_url": "string",
- "id": 0,
- "name": "string",
- "urls": [
- "string"
], - "urls_raw": "string"
}
Get the statistics of various data analysis
type required | string Enum: "latest_comments" "latest_pages" "pv_most_pages" "comment_most_pages" "page_pv" "site_pv" "page_comment" "site_comment" "rand_comments" "rand_pages" The type of statistics |
limit | integer The limit for pagination |
page_keys | string multiple page keys separated by commas |
site_name | string The site name of your content scope |
{- "data": null,
- "msg": "string"
}
Import data to Artalk
The data to import
assumeyes | boolean Automatically answer yes for all questions. |
json_data | string The JSON data |
json_file | string The JSON file path |
target_site_name | string The target site name |
target_site_url | string The target site url |
url_resolver | boolean Enable URL resolver |
{- "assumeyes": true,
- "json_data": "string",
- "json_file": "string",
- "target_site_name": "string",
- "target_site_url": "string",
- "url_resolver": true
}
Get user info to prepare for login or check current user status
string The user email | |
name | string The username |
{- "is_login": true,
- "notifies": [
- {
- "comment_id": 0,
- "id": 0,
- "is_emailed": true,
- "is_read": true,
- "read_link": "string",
- "user_id": 0
}
], - "notifies_count": 0,
- "user": {
- "badge_color": "string",
- "badge_name": "string",
- "email": "string",
- "id": 0,
- "is_admin": true,
- "link": "string",
- "name": "string",
- "receive_email": true
}
}
Login user by name or email
The user login data
email required | string The user email |
name | string The username |
password required | string The user password |
{- "email": "string",
- "name": "string",
- "password": "string"
}
{- "token": "string",
- "user": {
- "badge_color": "string",
- "badge_name": "string",
- "email": "string",
- "id": 0,
- "is_admin": true,
- "link": "string",
- "name": "string",
- "receive_email": true
}
}
Create a new user
The user data
badge_color | string The user badge color (hex format) |
badge_name | string The user badge name |
email required | string The user email |
is_admin required | boolean The user is an admin |
link | string The user link |
name required | string The user name |
password | string The user password |
receive_email required | boolean The user receive email |
{- "badge_color": "string",
- "badge_name": "string",
- "email": "string",
- "is_admin": true,
- "link": "string",
- "name": "string",
- "password": "string",
- "receive_email": true
}
{- "badge_color": "string",
- "badge_name": "string",
- "comment_count": 0,
- "email": "string",
- "id": 0,
- "is_admin": true,
- "is_in_conf": true,
- "last_ip": "string",
- "last_ua": "string",
- "link": "string",
- "name": "string",
- "receive_email": true
}
Update a specific user
id required | integer The user ID you want to update |
The user data
badge_color | string The user badge color (hex format) |
badge_name | string The user badge name |
email required | string The user email |
is_admin required | boolean The user is an admin |
link | string The user link |
name required | string The user name |
password | string The user password |
receive_email required | boolean The user receive email |
{- "badge_color": "string",
- "badge_name": "string",
- "email": "string",
- "is_admin": true,
- "link": "string",
- "name": "string",
- "password": "string",
- "receive_email": true
}
{- "badge_color": "string",
- "badge_name": "string",
- "comment_count": 0,
- "email": "string",
- "id": 0,
- "is_admin": true,
- "is_in_conf": true,
- "last_ip": "string",
- "last_ua": "string",
- "link": "string",
- "name": "string",
- "receive_email": true
}
Get a list of users by some conditions
type required | string Enum: "all" "admin" "in_conf" The type of users |
limit | integer The limit for pagination |
offset | integer The offset for pagination |
{- "count": 0,
- "users": [
- {
- "badge_color": "string",
- "badge_name": "string",
- "comment_count": 0,
- "email": "string",
- "id": 0,
- "is_admin": true,
- "is_in_conf": true,
- "last_ip": "string",
- "last_ua": "string",
- "link": "string",
- "name": "string",
- "receive_email": true
}
]
}
Vote for a specific comment or page
type required | string Enum: "comment_up" "comment_down" "page_up" "page_down" The type of vote target |
target_id required | integer Target comment or page ID you want to vote for |
The vote data
string The user email | |
name | string The username |
{- "email": "string",
- "name": "string"
}
{- "down": 0,
- "up": 0
}