# List voters on a post Returns all voters (upvoters) for a specific post. Voters are users who have upvoted the post. Each voter is returned in the standard user format with: - Basic info: id, name, email, profilePicture - User type (admin, customer, guest, etc.) - Companies the user belongs to - Activity stats: commentsCreated, postsCreated, lastActivity - Preferences: subscribedToChangelog, locale, verified ### Pagination This endpoint uses cursor-based pagination: - limit - Number of voters to return (1-100, default 10) - cursor - Opaque cursor from a previous response's nextCursor field Example: To paginate through results: 1. First request: GET /v2/posts/{id}/voters?limit=10 2. If nextCursor is not null, use it for the next page 3. Next request: GET /v2/posts/{id}/voters?limit=10&cursor={nextCursor} ### Response Format Returns a list object with: - object - Always "list" - data - Array of user objects - nextCursor - Cursor for the next page (null if no more results) ### Permissions Requires member-level access or higher. Endpoint: GET /v2/posts/{id}/voters Version: 2026-01-01.nova Security: bearerAuth ## Header parameters: - `Featurebase-Version` (string) API version for this request. Defaults to your organization's configured API version if not specified. Example: "2026-01-01.nova" ## Path parameters: - `id` (string, required) Post unique identifier Example: "507f1f77bcf86cd799439011" ## Query parameters: - `limit` (integer) A limit on the number of voters to be returned, between 1 and 100. Example: 10 - `cursor` (string) An opaque cursor for pagination. Use the nextCursor value from a previous response to fetch the next page of results. Example: "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9" ## Response 200 fields (application/json): - `object` (string, required) Object type identifier Enum: "list" - `data` (array, required) Array of users Example: [] - `data.id` (string, required) Unique identifier Example: "676f0f6765bdaa7d7d760f88" - `data.userId` (string) External user ID from SSO Example: "676f0f673dbb299c8a4f3057" - `data.organizationId` (string) Organization ID the user belongs to Example: "5febde12dc56d60012d47db6" - `data.companies` (array) Companies the user belongs to - `data.companies.id` (string, required) Featurebase internal ID Example: "507f1f77bcf86cd799439011" - `data.companies.companyId` (string, required) External company ID from your system Example: "comp_12345" - `data.companies.name` (string, required) Company name Example: "Acme Inc" - `data.companies.monthlySpend` (number,null, required) Monthly spend Example: 5000 - `data.companies.industry` (string,null, required) Industry Example: "Technology" - `data.companies.website` (string,null, required) Company website URL Example: "https://acme.com" - `data.companies.plan` (string,null, required) Plan or tier name Example: "enterprise" - `data.companies.linkedUsers` (number,null, required) Number of users linked to this company Example: 15 - `data.companies.companySize` (number,null, required) Company employee headcount Example: 250 - `data.companies.lastActivity` (string,null, required) ISO date of last activity Example: "2025-01-15T00:00:00.000Z" - `data.companies.customFields` (object) Custom field values Example: {"location":"Europe","priority":"high"} - `data.companies.createdAt` (string,null, required) ISO date when company was created Example: "2025-01-01T12:00:00.000Z" - `data.companies.updatedAt` (string,null, required) ISO date when company was last updated Example: "2025-01-10T15:30:00.000Z" - `data.email` (string,null) User email Example: "john@example.com" - `data.name` (string, required) User display name Example: "John Steezy" - `data.profilePicture` (string,null) Profile picture URL Example: "https://fb-usercontent.fra1.cdn.digitaloceanspaces.com/anon_23.png" - `data.commentsCreated` (number) Number of comments created - `data.postsCreated` (number) Number of posts created - `data.lastActivity` (string) Last activity ISO timestamp Example: "2025-01-03T21:42:30.181Z" - `data.subscribedToChangelog` (boolean) Whether subscribed to changelog Example: true - `data.manuallyOptedOutFromChangelog` (boolean) Whether manually opted out from changelog - `data.roles` (array) User roles Example: [] - `data.locale` (string) User locale Example: "en" - `data.verified` (boolean) Whether email is verified Example: true - `data.type` (string, required) Type of user Enum: "admin", "customer", "guest", "integration", "bot", "lead" - `data.description` (string) User description/bio - `data.customFields` (object) Custom field values on the user - `nextCursor` (string,null, required) Cursor for fetching the next page (cursor-based pagination) Example: "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9" - `pagination` (object) Pagination metadata for page-based requests - `pagination.page` (number, required) Current page number Example: 1 - `pagination.limit` (number, required) Items per page Example: 10 - `pagination.total` (number, required) Total number of items Example: 42 - `pagination.totalPages` (number, required) Total number of pages Example: 5 ## Response 400 fields (application/json): - `error` (object, required) - `error.type` (string, required) The type of error returned Enum: "invalid_request_error" - `error.code` (string, required) Machine-readable error code Enum: "invalid_id", "invalid_cursor" - `error.message` (string, required) Human-readable error message Example: "An error occurred" - `error.param` (string) The parameter that caused the error (if applicable) Example: "id" - `error.status` (number, required) HTTP status code Enum: 400 ## Response 404 fields (application/json): - `error` (object, required) - `error.type` (string, required) The type of error returned Enum: "invalid_request_error" - `error.code` (string, required) Machine-readable error code Enum: "post_not_found" - `error.message` (string, required) Human-readable error message Example: "An error occurred" - `error.param` (string) The parameter that caused the error (if applicable) Example: "id" - `error.status` (number, required) HTTP status code Enum: 404