Stack Exchange · Capability
Stack Exchange API v2.3 — Users
Users surface of the Stack Exchange API. 11 operations. Lead operation: List Users. Self-contained Naftiko capability covering one Stack Exchange business surface.
What You Can Do
GET
Listusers
— List Users
/v1/users
GET
Getusersbyids
— Get Users by Ids
/v1/users/{ids}
GET
Listanswersbyusers
— List Answers by Users
/v1/users/{ids}/answers
GET
Listquestionsbyusers
— List Questions by Users
/v1/users/{ids}/questions
GET
Listcommentsbyusers
— List Comments by Users
/v1/users/{ids}/comments
GET
Listbadgesearnedbyusers
— List Badges Earned by Users
/v1/users/{ids}/badges
GET
Listtagsforusers
— List Tags for Users
/v1/users/{ids}/tags
GET
Listtopanswertagsforusers
— List Top Answer Tags for Users
/v1/users/{ids}/top-answer-tags
GET
Listtopquestiontagsforusers
— List Top Question Tags for Users
/v1/users/{ids}/top-question-tags
GET
Getusersreputationchanges
— Get Users Reputation Changes
/v1/users/{ids}/reputation
GET
Listuserprivileges
— List User Privileges
/v1/users/{ids}/privileges
MCP Tools
list-users
List Users
read-only
idempotent
get-users-ids
Get Users by Ids
read-only
idempotent
list-answers-users
List Answers by Users
read-only
idempotent
list-questions-users
List Questions by Users
read-only
idempotent
list-comments-users
List Comments by Users
read-only
idempotent
list-badges-earned-users
List Badges Earned by Users
read-only
idempotent
list-tags-users
List Tags for Users
read-only
idempotent
list-top-answer-tags-users
List Top Answer Tags for Users
read-only
idempotent
list-top-question-tags-users
List Top Question Tags for Users
read-only
idempotent
get-users-reputation-changes
Get Users Reputation Changes
read-only
idempotent
list-user-privileges
List User Privileges
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Stack Exchange API v2.3 — Users
description: 'Users surface of the Stack Exchange API. 11 operations. Lead operation: List Users. Self-contained Naftiko capability covering one Stack Exchange business surface.'
tags:
- Stack Exchange
- Q And A
- Users
created: '2026-05-29'
modified: '2026-05-29'
binds:
- namespace: env
keys:
STACK_EXCHANGE_KEY: STACK_EXCHANGE_KEY
STACK_EXCHANGE_ACCESS_TOKEN: STACK_EXCHANGE_ACCESS_TOKEN
capability:
consumes:
- type: http
namespace: stack-exchange-users
baseUri: https://api.stackexchange.com/2.3
description: Stack Exchange API v2.3 — Users business capability. Self-contained, no shared references.
authentication:
type: apikey
key: key
value: '{{env.STACK_EXCHANGE_KEY}}'
placement: query
resources:
- name: users
path: /users
operations:
- name: listUsers
method: GET
description: List Users
inputParameters:
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
- name: page
in: query
type: integer
required: false
description: 1-indexed page number.
- name: pagesize
in: query
type: integer
required: false
description: Items per page (max 100).
- name: order
in: query
type: string
required: false
description: Sort direction.
- name: inname
in: query
type: string
required: false
description: inname parameter
- name: sort
in: query
type: string
required: false
description: sort parameter
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-ids
path: /users/{ids}
operations:
- name: getUsersByIds
method: GET
description: Get Users by Ids
inputParameters:
- name: ids
in: path
type: string
required: true
description: Up to 100 semicolon-delimited ids of the resource.
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-ids-answers
path: /users/{ids}/answers
operations:
- name: listAnswersByUsers
method: GET
description: List Answers by Users
inputParameters:
- name: ids
in: path
type: string
required: true
description: Up to 100 semicolon-delimited ids of the resource.
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
- name: page
in: query
type: integer
required: false
description: 1-indexed page number.
- name: pagesize
in: query
type: integer
required: false
description: Items per page (max 100).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-ids-questions
path: /users/{ids}/questions
operations:
- name: listQuestionsByUsers
method: GET
description: List Questions by Users
inputParameters:
- name: ids
in: path
type: string
required: true
description: Up to 100 semicolon-delimited ids of the resource.
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
- name: page
in: query
type: integer
required: false
description: 1-indexed page number.
- name: pagesize
in: query
type: integer
required: false
description: Items per page (max 100).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-ids-comments
path: /users/{ids}/comments
operations:
- name: listCommentsByUsers
method: GET
description: List Comments by Users
inputParameters:
- name: ids
in: path
type: string
required: true
description: Up to 100 semicolon-delimited ids of the resource.
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
- name: page
in: query
type: integer
required: false
description: 1-indexed page number.
- name: pagesize
in: query
type: integer
required: false
description: Items per page (max 100).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-ids-badges
path: /users/{ids}/badges
operations:
- name: listBadgesEarnedByUsers
method: GET
description: List Badges Earned by Users
inputParameters:
- name: ids
in: path
type: string
required: true
description: Up to 100 semicolon-delimited ids of the resource.
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
- name: page
in: query
type: integer
required: false
description: 1-indexed page number.
- name: pagesize
in: query
type: integer
required: false
description: Items per page (max 100).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-ids-tags
path: /users/{ids}/tags
operations:
- name: listTagsForUsers
method: GET
description: List Tags for Users
inputParameters:
- name: ids
in: path
type: string
required: true
description: Up to 100 semicolon-delimited ids of the resource.
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
- name: page
in: query
type: integer
required: false
description: 1-indexed page number.
- name: pagesize
in: query
type: integer
required: false
description: Items per page (max 100).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-ids-top-answer-tags
path: /users/{ids}/top-answer-tags
operations:
- name: listTopAnswerTagsForUsers
method: GET
description: List Top Answer Tags for Users
inputParameters:
- name: ids
in: path
type: string
required: true
description: Up to 100 semicolon-delimited ids of the resource.
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-ids-top-question-tags
path: /users/{ids}/top-question-tags
operations:
- name: listTopQuestionTagsForUsers
method: GET
description: List Top Question Tags for Users
inputParameters:
- name: ids
in: path
type: string
required: true
description: Up to 100 semicolon-delimited ids of the resource.
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-ids-reputation
path: /users/{ids}/reputation
operations:
- name: getUsersReputationChanges
method: GET
description: Get Users Reputation Changes
inputParameters:
- name: ids
in: path
type: string
required: true
description: Up to 100 semicolon-delimited ids of the resource.
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
- name: page
in: query
type: integer
required: false
description: 1-indexed page number.
- name: pagesize
in: query
type: integer
required: false
description: Items per page (max 100).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-ids-privileges
path: /users/{ids}/privileges
operations:
- name: listUserPrivileges
method: GET
description: List User Privileges
inputParameters:
- name: ids
in: path
type: string
required: true
description: Up to 100 semicolon-delimited ids of the resource.
- name: site
in: query
type: string
required: true
description: Target Q&A community. Either the api_site_parameter from a `/sites` entry (e.g. `stackoverflow`, `serverfault`, `superuser`) or a full domain (`stackoverflow.com`).
- name: key
in: query
type: string
required: false
description: App key from stackapps.com. Raises the daily quota to 10,000/IP.
- name: filter
in: query
type: string
required: false
description: Custom response filter id created via /filters/create.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
namespace: stack-exchange-users-rest
port: 8080
description: REST adapter for Stack Exchange API v2.3 — Users. One Spectral-compliant resource per consumed operation, prefixed with /v1.
resources:
- path: /v1/users
name: users
description: REST surface for users.
operations:
- method: GET
name: listUsers
description: List Users
call: stack-exchange-users.listUsers
with:
site: rest.site
key: rest.key
filter: rest.filter
page: rest.page
pagesize: rest.pagesize
order: rest.order
inname: rest.inname
sort: rest.sort
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{ids}
name: users
description: REST surface for users.
operations:
- method: GET
name: getUsersByIds
description: Get Users by Ids
call: stack-exchange-users.getUsersByIds
with:
ids: rest.ids
site: rest.site
key: rest.key
filter: rest.filter
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{ids}/answers
name: answers
description: REST surface for users.
operations:
- method: GET
name: listAnswersByUsers
description: List Answers by Users
call: stack-exchange-users.listAnswersByUsers
with:
ids: rest.ids
site: rest.site
key: rest.key
filter: rest.filter
page: rest.page
pagesize: rest.pagesize
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{ids}/questions
name: questions
description: REST surface for users.
operations:
- method: GET
name: listQuestionsByUsers
description: List Questions by Users
call: stack-exchange-users.listQuestionsByUsers
with:
ids: rest.ids
site: rest.site
key: rest.key
filter: rest.filter
page: rest.page
pagesize: rest.pagesize
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{ids}/comments
name: comments
description: REST surface for users.
operations:
- method: GET
name: listCommentsByUsers
description: List Comments by Users
call: stack-exchange-users.listCommentsByUsers
with:
ids: rest.ids
site: rest.site
key: rest.key
filter: rest.filter
page: rest.page
pagesize: rest.pagesize
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{ids}/badges
name: badges
description: REST surface for users.
operations:
- method: GET
name: listBadgesEarnedByUsers
description: List Badges Earned by Users
call: stack-exchange-users.listBadgesEarnedByUsers
with:
ids: rest.ids
site: rest.site
key: rest.key
filter: rest.filter
page: rest.page
pagesize: rest.pagesize
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{ids}/tags
name: tags
description: REST surface for users.
operations:
- method: GET
name: listTagsForUsers
description: List Tags for Users
call: stack-exchange-users.listTagsForUsers
with:
ids: rest.ids
site: rest.site
key: rest.key
filter: rest.filter
page: rest.page
pagesize: rest.pagesize
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{ids}/top-answer-tags
name: top-answer-tags
description: REST surface for users.
operations:
- method: GET
name: listTopAnswerTagsForUsers
description: List Top Answer Tags for Users
call: stack-exchange-users.listTopAnswerTagsForUsers
with:
ids: rest.ids
site: rest.site
key: rest.key
filter: rest.filter
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{ids}/top-question-tags
name: top-question-tags
description: REST surface for users.
operations:
- method: GET
name: listTopQuestionTagsForUsers
description: List Top Question Tags for Users
call: stack-exchange-users.listTopQuestionTagsForUsers
with:
ids: rest.ids
site: rest.site
key: rest.key
filter: rest.filter
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{ids}/reputation
name: reputation
description: REST surface for users.
operations:
- method: GET
name: getUsersReputationChanges
description: Get Users Reputation Changes
call: stack-exchange-users.getUsersReputationChanges
with:
ids: rest.ids
site: rest.site
key: rest.key
filter: rest.filter
page: rest.page
pagesize: rest.pagesize
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{ids}/privileges
name: privileges
description: REST surface for users.
operations:
- method: GET
name: listUserPrivileges
description: List User Privileges
call: stack-exchange-users.listUserPrivileges
with:
ids: rest.ids
site: rest.site
key: rest.key
filter: rest.filter
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: stack-exchange-users-mcp
port: 9090
transport: http
description: MCP adapter for Stack Exchange API v2.3 — Users. One tool per consumed operation, routed inline through this capability's consumes block.
tools:
- name: list-users
description: List Users
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.listUsers
with:
site: tools.site
key: tools.key
filter: tools.filter
page: tools.page
pagesize: tools.pagesize
order: tools.order
inname: tools.inname
sort: tools.sort
outputParameters:
- type: object
mapping: $.
- name: get-users-ids
description: Get Users by Ids
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.getUsersByIds
with:
ids: tools.ids
site: tools.site
key: tools.key
filter: tools.filter
outputParameters:
- type: object
mapping: $.
- name: list-answers-users
description: List Answers by Users
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.listAnswersByUsers
with:
ids: tools.ids
site: tools.site
key: tools.key
filter: tools.filter
page: tools.page
pagesize: tools.pagesize
outputParameters:
- type: object
mapping: $.
- name: list-questions-users
description: List Questions by Users
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.listQuestionsByUsers
with:
ids: tools.ids
site: tools.site
key: tools.key
filter: tools.filter
page: tools.page
pagesize: tools.pagesize
outputParameters:
- type: object
mapping: $.
- name: list-comments-users
description: List Comments by Users
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.listCommentsByUsers
with:
ids: tools.ids
site: tools.site
key: tools.key
filter: tools.filter
page: tools.page
pagesize: tools.pagesize
outputParameters:
- type: object
mapping: $.
- name: list-badges-earned-users
description: List Badges Earned by Users
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.listBadgesEarnedByUsers
with:
ids: tools.ids
site: tools.site
key: tools.key
filter: tools.filter
page: tools.page
pagesize: tools.pagesize
outputParameters:
- type: object
mapping: $.
- name: list-tags-users
description: List Tags for Users
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.listTagsForUsers
with:
ids: tools.ids
site: tools.site
key: tools.key
filter: tools.filter
page: tools.page
pagesize: tools.pagesize
outputParameters:
- type: object
mapping: $.
- name: list-top-answer-tags-users
description: List Top Answer Tags for Users
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.listTopAnswerTagsForUsers
with:
ids: tools.ids
site: tools.site
key: tools.key
filter: tools.filter
outputParameters:
- type: object
mapping: $.
- name: list-top-question-tags-users
description: List Top Question Tags for Users
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.listTopQuestionTagsForUsers
with:
ids: tools.ids
site: tools.site
key: tools.key
filter: tools.filter
outputParameters:
- type: object
mapping: $.
- name: get-users-reputation-changes
description: Get Users Reputation Changes
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.getUsersReputationChanges
with:
ids: tools.ids
site: tools.site
key: tools.key
filter: tools.filter
page: tools.page
pagesize: tools.pagesize
outputParameters:
- type: object
mapping: $.
- name: list-user-privileges
description: List User Privileges
hints:
readOnly: true
destructive: false
idempotent: true
call: stack-exchange-users.listUserPrivileges
with:
ids: tools.ids
site: tools.site
key: tools.key
filter: tools.filter
outputParameters:
- type: object
mapping: $.