UserVoice MCP by usefulapi
Search UserVoice ideas, feedback and users; post ideas, comments, notes and status updates.
我该使用它吗
质量与安全性
发现(1)
- LOW在 uservoice_list_feedback_records 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"uservoice": {
"url": "https://uservoice.usefulapi.io/mcp"
}
}
}远程端点
https://uservoice.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(21)
🟢uservoice_get_account
The UserVoice account (subdomain) these credentials belong to: id, name, default forum and settings. GET /api/v2/admin/subdomains/current.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_forums(open, sort, per_page, cursor, page)
List the feedback forums (idea portals) with name, open/private state and suggestion counts. Use a forum id to filter or create suggestions. GET /api/v2/admin/forums.
输入模式
{
"type": "object",
"properties": {
"open": {
"description": "Only open (true) or closed (false) forums.",
"type": "boolean"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_categories(forum_ids, sort, per_page, cursor, page)
List suggestion categories, optionally only those of some forums. GET /api/v2/admin/categories.
输入模式
{
"type": "object",
"properties": {
"forum_ids": {
"description": "Only categories of these forums.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_statuses(sort, per_page, cursor, page)
List the public suggestion statuses (e.g. under review, planned, started, completed, declined) with ids, colors and open/closed flag. Use the ids for filters and status updates. GET /api/v2/admin/statuses.
输入模式
{
"type": "object",
"properties": {
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_labels(query, sort, per_page, cursor, page)
List or search the labels used to organize suggestions. GET /api/v2/admin/labels.
输入模式
{
"type": "object",
"properties": {
"query": {
"description": "Search text in the label name.",
"type": "string",
"minLength": 1,
"maxLength": 500
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_suggestions(query, forum_ids, category_ids, status_ids, no_status, ...)
List or search suggestions (ideas) with title, body, state, vote/supporter counts, revenue of supporters and links to forum, category, status and labels. Filter by text, forum, category, status, state, label or created/updated time. GET /api/v2/admin/suggestions.
输入模式
{
"type": "object",
"properties": {
"query": {
"description": "Search text in the suggestion title or description.",
"type": "string",
"minLength": 1,
"maxLength": 500
},
"forum_ids": {
"description": "Only suggestions in these forums.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"category_ids": {
"description": "Only suggestions in these categories.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"status_ids": {
"description": "Only suggestions with these public statuses (see uservoice_list_statuses).",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"no_status": {
"description": "Only suggestions without a public status.",
"type": "boolean"
},
"label_ids": {
"description": "Only suggestions with these labels.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"state": {
"description": "Only these states, e.g. [\"approved\",\"published\"] or [\"open\"].",
"minItems": 1,
"maxItems": 12,
"type": "array",
"items": {
"type": "string",
"enum": [
"published",
"approved",
"closed",
"for_review",
"deleted",
"merged",
"spam",
"new",
"filtered",
"open",
"active",
"inactive"
]
}
},
"created_after": {
"description": "Only suggestions created after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"created_before": {
"description": "Only suggestions created before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"includes": {
"description": "Related records to sideload into `included`.",
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"enum": [
"forums",
"categories",
"statuses",
"labels",
"users",
"features",
"status_updates",
"supporter_messages"
]
}
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_get_suggestion(suggestion_id, includes)
One suggestion (idea) by id, optionally with related records (forum, category, status, labels, users, status updates). GET /api/v2/admin/suggestions/{id}.
输入模式
{
"type": "object",
"properties": {
"suggestion_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "UserVoice suggestion id."
},
"includes": {
"description": "Related records to sideload into `included`.",
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"enum": [
"forums",
"categories",
"statuses",
"labels",
"users",
"features",
"status_updates",
"supporter_messages"
]
}
}
},
"required": [
"suggestion_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_comments(suggestion_ids, state, updated_after, updated_before, sort, ...)
List public comments, optionally only those on some suggestions or in some moderation states. GET /api/v2/admin/comments.
输入模式
{
"type": "object",
"properties": {
"suggestion_ids": {
"description": "Only comments on these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"state": {
"description": "Only these moderation states.",
"minItems": 1,
"maxItems": 7,
"type": "array",
"items": {
"type": "string",
"enum": [
"published",
"approved",
"for_review",
"deleted",
"spam",
"new",
"filtered"
]
}
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_notes(suggestion_id, updated_after, updated_before, sort, per_page, ...)
List internal (admin-only) notes, optionally only those on one suggestion. GET /api/v2/admin/notes.
输入模式
{
"type": "object",
"properties": {
"suggestion_id": {
"description": "Only notes on this suggestion.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_status_updates(suggestion_ids, updated_after, updated_before, sort, per_page, ...)
List the public status updates posted on suggestions (message, how many supporters were emailed, opens/clicks, reactions). GET /api/v2/admin/status_updates.
输入模式
{
"type": "object",
"properties": {
"suggestion_ids": {
"description": "Only status updates of these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_supporters(suggestion_ids, user_ids, forum_ids, updated_after, updated_before, ...)
List supporters (voters) of suggestions: who supports what, how (channel), importance and subscription. Filter by suggestion, user or forum. GET /api/v2/admin/supporters.
输入模式
{
"type": "object",
"properties": {
"suggestion_ids": {
"description": "Only supporters of these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"user_ids": {
"description": "Only these users' support.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"forum_ids": {
"description": "Only support in these forums.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_feedback_records(suggestion_ids, user_ids, updated_after, updated_before, sort, ...)
List captured feedback (from the admin console, widget, Zendesk, Salesforce, Slack, API ...), optionally only that linked to some suggestions or users. GET /api/v2/admin/feedback_records.
输入模式
{
"type": "object",
"properties": {
"suggestion_ids": {
"description": "Only feedback linked to these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"user_ids": {
"description": "Only feedback from these users.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_features(query, suggestion_ids, product_area_ids, sort, per_page, ...)
List product features (the roadmap items suggestions are linked to) with suggestion counts and supporter revenue. Filter by text, linked suggestion or product area. GET /api/v2/admin/features.
输入模式
{
"type": "object",
"properties": {
"query": {
"description": "Search text in the feature name.",
"type": "string",
"minLength": 1,
"maxLength": 500
},
"suggestion_ids": {
"description": "Only features linked to these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"product_area_ids": {
"description": "Only features in these product areas.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_users(query, email_addresses, suggestion_ids, association, sort, ...)
List or search end users and admins (name, email, satisfaction score, supported suggestions count). Filter by text, email address or supported suggestion. GET /api/v2/admin/users.
输入模式
{
"type": "object",
"properties": {
"query": {
"description": "Search text (name or email).",
"type": "string",
"minLength": 1,
"maxLength": 500
},
"email_addresses": {
"description": "Only users with these email addresses.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"suggestion_ids": {
"description": "Only users associated with these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"association": {
"description": "With suggestion_ids: how the users relate to them (supported = voted, contributed, engaged = any).",
"type": "string",
"enum": [
"supported",
"contributed",
"engaged"
]
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_get_user(user_id)
One user by id. GET /api/v2/admin/users/{id}.
输入模式
{
"type": "object",
"properties": {
"user_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "UserVoice user id."
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_create_suggestion(forum_id, title, body, category_id, creator_email, ...)
WRITE: create a new suggestion (idea) in a forum, optionally in a category and on behalf of a user (by email; the user is created if new). It appears on the portal. POST /api/v2/admin/suggestions.
输入模式
{
"type": "object",
"properties": {
"forum_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Forum to post in (see uservoice_list_forums)."
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 140,
"description": "Suggestion title (max 140 characters)."
},
"body": {
"description": "Description (plain text, max 10000 characters).",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"category_id": {
"description": "Category (see uservoice_list_categories).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"creator_email": {
"description": "Post on behalf of this user (default: the API client's admin).",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"creator_name": {
"description": "The creator's name, with creator_email.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"forum_id",
"title"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_add_comment(suggestion_id, body, user_email, subscribe)
WRITE: post a PUBLIC comment on a suggestion, visible on the portal and emailed to its subscribers, optionally on behalf of a user (by email). For an admin-only remark use uservoice_add_note. POST /api/v2/admin/comments.
输入模式
{
"type": "object",
"properties": {
"suggestion_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Suggestion to comment on."
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Comment text (plain text)."
},
"user_email": {
"description": "Comment as this user (default: the API client's admin).",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"subscribe": {
"default": false,
"description": "Subscribe the commenter to the suggestion's updates (default false).",
"type": "boolean"
}
},
"required": [
"suggestion_id",
"body"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_add_note(suggestion_id, body, parent_note_id)
WRITE: add an internal note (admins only, never shown to end users) to a suggestion, optionally as a reply to another note. POST /api/v2/admin/notes.
输入模式
{
"type": "object",
"properties": {
"suggestion_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Suggestion to annotate."
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Note text (plain text)."
},
"parent_note_id": {
"description": "Reply to this note.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"suggestion_id",
"body"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_post_status_update(suggestion_id, status_id, body, notify_supporters)
WRITE: post a public status update on a suggestion, optionally changing its public status (see uservoice_list_statuses). Supporters are emailed ONLY when notify_supporters is true. POST /api/v2/admin/status_updates.
输入模式
{
"type": "object",
"properties": {
"suggestion_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Suggestion to update."
},
"status_id": {
"description": "New public status for the suggestion.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"body": {
"description": "Message to show (plain text).",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"notify_supporters": {
"default": false,
"description": "Email the suggestion's supporters (default false).",
"type": "boolean"
}
},
"required": [
"suggestion_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_add_feedback(body, user_email, suggestion_id, source_url)
WRITE: capture a piece of customer feedback (for example from a call or ticket), optionally from a user (by email) and linked to a suggestion, which adds that user's support. POST /api/v2/admin/feedback_records.
输入模式
{
"type": "object",
"properties": {
"body": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "The feedback text (plain text)."
},
"user_email": {
"description": "The customer who gave the feedback.",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"suggestion_id": {
"description": "Suggestion to link the feedback to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"source_url": {
"description": "Where the feedback came from (a ticket or call URL).",
"type": "string",
"maxLength": 2000,
"format": "uri"
}
},
"required": [
"body"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_attach_label(label_id, suggestion_id)
WRITE: attach a label to a suggestion (attaching it again changes nothing). POST /api/v2/admin/labels/attach.
输入模式
{
"type": "object",
"properties": {
"label_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Label to attach (see uservoice_list_labels)."
},
"suggestion_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Suggestion to label."
}
},
"required": [
"label_id",
"suggestion_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据