Search UserVoice ideas, feedback and users; post ideas, comments, notes and status updates.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Comment text (plain text).
Suggestion to comment on.
Subscribe the commenter to the suggestion's updates (default false).
Comment as this user (default: the API client's admin).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
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.
| Argument | Type | Description |
|---|---|---|
| body* | string | Comment text (plain text). |
| subscribe | boolean | Subscribe the commenter to the suggestion's updates (default false). |
| user_email | string | Comment as this user (default: the API client's admin). |
| suggestion_id* | integer | Suggestion to comment on. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"suggestion_id",
"body"
],
"properties": {
"body": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "Comment text (plain text)."
},
"subscribe": {
"type": "boolean",
"default": false,
"description": "Subscribe the commenter to the suggestion's updates (default false)."
},
"user_email": {
"type": "string",
"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,}$",
"maxLength": 254,
"description": "Comment as this user (default: the API client's admin)."
},
"suggestion_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Suggestion to comment on.",
"exclusiveMinimum": 0
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| body* | string | The feedback text (plain text). |
| source_url | string | Where the feedback came from (a ticket or call URL). |
| user_email | string | The customer who gave the feedback. |
| suggestion_id | integer | Suggestion to link the feedback to. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"body"
],
"properties": {
"body": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "The feedback text (plain text)."
},
"source_url": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Where the feedback came from (a ticket or call URL)."
},
"user_email": {
"type": "string",
"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,}$",
"maxLength": 254,
"description": "The customer who gave the feedback."
},
"suggestion_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Suggestion to link the feedback to.",
"exclusiveMinimum": 0
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| body* | string | Note text (plain text). |
| suggestion_id* | integer | Suggestion to annotate. |
| parent_note_id | integer | Reply to this note. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"suggestion_id",
"body"
],
"properties": {
"body": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "Note text (plain text)."
},
"suggestion_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Suggestion to annotate.",
"exclusiveMinimum": 0
},
"parent_note_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Reply to this note.",
"exclusiveMinimum": 0
}
}
}WRITE: attach a label to a suggestion (attaching it again changes nothing). POST /api/v2/admin/labels/attach.
| Argument | Type | Description |
|---|---|---|
| label_id* | integer | Label to attach (see uservoice_list_labels). |
| suggestion_id* | integer | Suggestion to label. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"label_id",
"suggestion_id"
],
"properties": {
"label_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Label to attach (see uservoice_list_labels).",
"exclusiveMinimum": 0
},
"suggestion_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Suggestion to label.",
"exclusiveMinimum": 0
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| body | string | Description (plain text, max 10000 characters). |
| title* | string | Suggestion title (max 140 characters). |
| forum_id* | integer | Forum to post in (see uservoice_list_forums). |
| category_id | integer | Category (see uservoice_list_categories). |
| creator_name | string | The creator's name, with creator_email. |
| creator_email | string | Post on behalf of this user (default: the API client's admin). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"forum_id",
"title"
],
"properties": {
"body": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "Description (plain text, max 10000 characters)."
},
"title": {
"type": "string",
"maxLength": 140,
"minLength": 1,
"description": "Suggestion title (max 140 characters)."
},
"forum_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Forum to post in (see uservoice_list_forums).",
"exclusiveMinimum": 0
},
"category_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Category (see uservoice_list_categories).",
"exclusiveMinimum": 0
},
"creator_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The creator's name, with creator_email."
},
"creator_email": {
"type": "string",
"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,}$",
"maxLength": 254,
"description": "Post on behalf of this user (default: the API client's admin)."
}
}
}The UserVoice account (subdomain) these credentials belong to: id, name, default forum and settings. GET /api/v2/admin/subdomains/current.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}One suggestion (idea) by id, optionally with related records (forum, category, status, labels, users, status updates). GET /api/v2/admin/suggestions/{id}.
| Argument | Type | Description |
|---|---|---|
| includes | array | Related records to sideload into `included`. |
| suggestion_id* | integer | UserVoice suggestion id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"suggestion_id"
],
"properties": {
"includes": {
"type": "array",
"items": {
"enum": [
"forums",
"categories",
"statuses",
"labels",
"users",
"features",
"status_updates",
"supporter_messages"
],
"type": "string"
},
"maxItems": 8,
"minItems": 1,
"description": "Related records to sideload into `included`."
},
"suggestion_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "UserVoice suggestion id.",
"exclusiveMinimum": 0
}
}
}One user by id. GET /api/v2/admin/users/{id}.
| Argument | Type | Description |
|---|---|---|
| user_id* | integer | UserVoice user id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "UserVoice user id.",
"exclusiveMinimum": 0
}
}
}List suggestion categories, optionally only those of some forums. GET /api/v2/admin/categories.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
| forum_ids | array | Only categories of these forums. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
},
"forum_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only categories of these forums."
}
}
}List public comments, optionally only those on some suggestions or in some moderation states. GET /api/v2/admin/comments.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| state | array | Only these moderation states. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
| updated_after | string | Only records updated after this time. |
| suggestion_ids | array | Only comments on these suggestions. |
| updated_before | string | Only records updated before this time. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"state": {
"type": "array",
"items": {
"enum": [
"published",
"approved",
"for_review",
"deleted",
"spam",
"new",
"filtered"
],
"type": "string"
},
"maxItems": 7,
"minItems": 1,
"description": "Only these moderation states."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
},
"updated_after": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated after this time."
},
"suggestion_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only comments on these suggestions."
},
"updated_before": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated before this time."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| query | string | Search text in the feature name. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
| suggestion_ids | array | Only features linked to these suggestions. |
| product_area_ids | array | Only features in these product areas. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Search text in the feature name."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
},
"suggestion_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only features linked to these suggestions."
},
"product_area_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only features in these product areas."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
| user_ids | array | Only feedback from these users. |
| updated_after | string | Only records updated after this time. |
| suggestion_ids | array | Only feedback linked to these suggestions. |
| updated_before | string | Only records updated before this time. |
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.
| Argument | Type | Description |
|---|---|---|
| open | boolean | Only open (true) or closed (false) forums. |
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"open": {
"type": "boolean",
"description": "Only open (true) or closed (false) forums."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
}
}
}List or search the labels used to organize suggestions. GET /api/v2/admin/labels.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| query | string | Search text in the label name. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Search text in the label name."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
}
}
}List internal (admin-only) notes, optionally only those on one suggestion. GET /api/v2/admin/notes.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
| suggestion_id | integer | Only notes on this suggestion. |
| updated_after | string | Only records updated after this time. |
| updated_before | string | Only records updated before this time. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
},
"suggestion_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only notes on this suggestion.",
"exclusiveMinimum": 0
},
"updated_after": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated after this time."
},
"updated_before": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated before this time."
}
}
}List the public status updates posted on suggestions (message, how many supporters were emailed, opens/clicks, reactions). GET /api/v2/admin/status_updates.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
| updated_after | string | Only records updated after this time. |
| suggestion_ids | array | Only status updates of these suggestions. |
| updated_before | string | Only records updated before this time. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
},
"updated_after": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated after this time."
},
"suggestion_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only status updates of these suggestions."
},
"updated_before": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated before this time."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| query | string | Search text in the suggestion title or description. |
| state | array | Only these states, e.g. ["approved","published"] or ["open"]. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| includes | array | Related records to sideload into `included`. |
| per_page | integer | Records per page (1-100, default 20). |
| forum_ids | array | Only suggestions in these forums. |
List supporters (voters) of suggestions: who supports what, how (channel), importance and subscription. Filter by suggestion, user or forum. GET /api/v2/admin/supporters.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
| user_ids | array | Only these users' support. |
| forum_ids | array | Only support in these forums. |
| updated_after | string | Only records updated after this time. |
| suggestion_ids | array | Only supporters of these suggestions. |
| updated_before | string |
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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based), when no cursor is used. |
| sort | string | Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count. |
| query | string | Search text (name or email). |
| cursor | string | pagination.next_cursor from the previous page (same sort). Preferred over page. |
| per_page | integer | Records per page (1-100, default 20). |
| association | string | With suggestion_ids: how the users relate to them (supported = voted, contributed, engaged = any). |
| suggestion_ids | array | Only users associated with these suggestions. |
| email_addresses | array | Only users with these email addresses. |
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.
| Argument | Type | Description |
|---|---|---|
| body | string | Message to show (plain text). |
| status_id | integer | New public status for the suggestion. |
| suggestion_id* | integer | Suggestion to update. |
| notify_supporters | boolean | Email the suggestion's supporters (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"suggestion_id"
],
"properties": {
"body": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "Message to show (plain text)."
},
"status_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "New public status for the suggestion.",
"exclusiveMinimum": 0
},
"suggestion_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Suggestion to update.",
"exclusiveMinimum": 0
},
"notify_supporters": {
"type": "boolean",
"default": false,
"description": "Email the suggestion's supporters (default false)."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
},
"user_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only feedback from these users."
},
"updated_after": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated after this time."
},
"suggestion_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only feedback linked to these suggestions."
},
"updated_before": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated before this time."
}
}
}| label_ids |
| array |
| Only suggestions with these labels. |
| no_status | boolean | Only suggestions without a public status. |
| status_ids | array | Only suggestions with these public statuses (see uservoice_list_statuses). |
| category_ids | array | Only suggestions in these categories. |
| created_after | string | Only suggestions created after this time. |
| updated_after | string | Only records updated after this time. |
| created_before | string | Only suggestions created before this time. |
| updated_before | string | Only records updated before this time. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Search text in the suggestion title or description."
},
"state": {
"type": "array",
"items": {
"enum": [
"published",
"approved",
"closed",
"for_review",
"deleted",
"merged",
"spam",
"new",
"filtered",
"open",
"active",
"inactive"
],
"type": "string"
},
"maxItems": 12,
"minItems": 1,
"description": "Only these states, e.g. [\"approved\",\"published\"] or [\"open\"]."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"includes": {
"type": "array",
"items": {
"enum": [
"forums",
"categories",
"statuses",
"labels",
"users",
"features",
"status_updates",
"supporter_messages"
],
"type": "string"
},
"maxItems": 8,
"minItems": 1,
"description": "Related records to sideload into `included`."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
},
"forum_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only suggestions in these forums."
},
"label_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only suggestions with these labels."
},
"no_status": {
"type": "boolean",
"description": "Only suggestions without a public status."
},
"status_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only suggestions with these public statuses (see uservoice_list_statuses)."
},
"category_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only suggestions in these categories."
},
"created_after": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only suggestions created after this time."
},
"updated_after": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated after this time."
},
"created_before": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only suggestions created before this time."
},
"updated_before": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated before this time."
}
}
}| Only records updated before this time. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
},
"user_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only these users' support."
},
"forum_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only support in these forums."
},
"updated_after": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated after this time."
},
"suggestion_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only supporters of these suggestions."
},
"updated_before": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$",
"description": "Only records updated before this time."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number (1-based), when no cursor is used."
},
"sort": {
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$",
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count."
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Search text (name or email)."
},
"cursor": {
"type": "string",
"pattern": "^[\\x21-\\x7e]+$",
"maxLength": 2000,
"minLength": 1,
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page."
},
"per_page": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Records per page (1-100, default 20)."
},
"association": {
"enum": [
"supported",
"contributed",
"engaged"
],
"type": "string",
"description": "With suggestion_ids: how the users relate to them (supported = voted, contributed, engaged = any)."
},
"suggestion_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only users associated with these suggestions."
},
"email_addresses": {
"type": "array",
"items": {
"type": "string",
"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,}$",
"maxLength": 254
},
"maxItems": 50,
"minItems": 1,
"description": "Only users with these email addresses."
}
}
}