HRIS
15Five
API integration
Ship HRIS features without building the integration. Full 15Five API access via Proxy, normalized data through Unified APIs, and 70+ MCP-ready tools for AI agents — all extensible to your exact use case.
Talk to usUse Cases
Why integrate with 15Five
Common scenarios for SaaS companies building 15Five integrations for their customers.
Sync org hierarchy for compensation decisions
Compensation and equity platforms can pull employee profiles, manager relationships, and department groupings from 15Five to display performance context alongside salary data during merit cycles — without requiring HR teams to manually export and re-upload spreadsheets.
Feed performance data into people analytics dashboards
People analytics platforms can ingest 15Five's user directory and group structure via Truto's Unified User Directory API to map organizational hierarchies, then layer on engagement and performance signals to surface flight-risk indicators and team health trends.
Automate recognition-to-rewards pipelines
Employee rewards platforms can listen for peer recognition events in 15Five and automatically convert them into redeemable points or rewards, creating a seamless loop between day-to-day recognition and tangible incentives.
Keep OKR progress updated from external systems
Productivity and work management tools can push real-time metric updates into 15Five objectives so employees see accurate key result progress during weekly check-ins without manual data entry.
Trigger learning paths from review feedback
Learning management systems can use 15Five review and feedback data to automatically enroll employees in relevant training modules, closing the loop between performance gaps identified by managers and targeted upskilling.
What You Can Build
Ship these features with Truto + 15Five
Concrete product features your team can ship faster by leveraging Truto’s 15Five integration instead of building from scratch.
Org chart auto-sync
Automatically import users, groups, and manager-report relationships from 15Five using Truto's Unified User Directory API to keep your product's organizational view current without manual CSV uploads.
Performance-informed merit cycle view
Display each employee's latest 15Five review rating alongside their compensation data so managers can make equitable raise and bonus decisions in a single screen.
Real-time High Five to rewards bridge
Convert 15Five peer recognition events into reward points or gift card credits inside your platform the moment they're given.
Automated OKR progress updates
Push closed tickets, pipeline milestones, or other quantitative achievements from your product directly into 15Five key results so progress tracks itself.
Pulse-driven flight-risk alerts
Combine 15Five weekly pulse scores with tenure and compensation data to flag employees whose engagement is trending downward over consecutive weeks.
Department-scoped permission provisioning
Use 15Five group memberships synced through the Unified User Directory API to auto-assign roles and access levels in your product based on department or team.
SuperAI
15Five AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_15_five_users
List 15five users. Returns: id, email, is_active, created_at, updated_at.
get_single_15_five_user_by_id
Get a single 15five user by id. Returns: id, email, is_active, created_at, updated_at. Required: id.
update_a_15_five_user_by_id
Update a 15Five user by id (only the fields you send change). Returns the full user record. Required: id.
list_all_15_five_groups
List groups in 15Five. Returns group records including each group's id and its upstream-defined group attributes; the full field set is defined by the 15Five Public API, so consult the upstream reference for the field-level breakdown.
get_single_15_five_group_by_id
Get a single 15Five group by id. Returns the group record: its string id plus content-type-specific attributes whose fields depend on the group's configured group type in 15Five. Required: id (string).
15_five_groups_bulk_update
Update one or more 15Five groups (request body is a list, each item identified by id). Returns the updated groups with id and name. Required per item: id, name.
create_a_15_five_group
Create one or more 15Five groups (request body is a list). Returns the created groups with id, name, group_type_id, group_admins_ids, member_ids. Required per item: name.
list_all_15_five_group_types
List the group types configured in 15Five — the categories (such as Department) used to organize groups. Returns the collection of group type records available in the account.
create_a_15_five_group_type
Create a group type in 15five. Returns: id, name_plural, name_singular. Required: name_plural.
delete_a_15_five_group_type_by_id
Delete a 15five group type by id. Returns an empty 204 response on success. Required: id.
get_single_15_five_group_type_by_id
Get details of a specific group type in 15five. Returns: id, name_plural, name_singular, companygroup_set, create_ts. Required: id.
15_five_group_types_partial_update
Partially update a 15five group type, changing only the fields you send. Returns: id, name_singular, name_plural, companygroup_set, create_ts. Required: group_type_id.
update_a_15_five_group_type_by_id
Update a 15five group type by id, replacing its fields. Returns: id, name_singular, name_plural, companygroup_set, create_ts. Required: id.
list_all_15_five_user_vacations
List vacation records in 15Five. Returns a paginated collection of vacations including id, created_at, and updated_at.
create_a_15_five_user_vacation
Create one or more vacations (out-of-office periods) in 15Five (request body is a list). Returns the created vacations with id, user, start_dt, end_dt, note. Required per item: user, start_dt, end_dt.
delete_a_15_five_user_vacation_by_id
Delete a vacation record in 15Five by id. Returns an empty 204 response on success. Required: id.
15_five_user_vacations_bulk_update
Update one or more 15Five vacations (request body is a list, each item identified by id). Returns the updated vacations. Required per item: id, start_dt, end_dt.
list_all_15_five_questions
List questions in 15five. Returns question records including id, created_at, and updated_at.
get_single_15_five_question_by_id
Get a single question in 15five by id. Returns the question record including id, created_at, and updated_at. Required: id (string unique identifier of the question).
list_all_15_five_check_ins
List check-in reports in 15five. Returns each check-in record with its id and account-specific attributes (fields vary by check-in configuration).
get_single_15_five_check_in_by_id
Get a single check-in report in 15five by id. Returns the check-in record with its id and account-specific attributes (fields vary by check-in configuration). Required: id.
delete_a_15_five_check_in_by_id
Delete a check-in in 15five by id. Returns an empty 204 response on success. Required: id.
list_all_15_five_pulse
List pulse records in 15five. Returns pulse records with id, created_at, and updated_at.
get_single_15_five_pulse_by_id
Get a single pulse record by id in 15five. Returns the pulse record's id, created_at, and updated_at. Required: id.
list_all_15_five_priorities
List priorities in 15five. Returns priority records with id and attributes; attributes holds the priority's upstream-defined, content-specific fields.
create_a_15_five_priority
Create one or more priorities in 15Five (request body is a list). Returns the created priorities with id, user_id, manager_id, text, create_ts. Required per item: user_id, text.
15_five_priorities_bulk_update
Update one or more 15Five priorities (request body is a list, each item identified by id). Returns the updated priorities with id, status, text. Required per item: id, text.
list_all_15_five_answers
List answers in 15five. Returns the collection of answer records, each including its id.
get_single_15_five_answer_by_id
Get a single answer in 15five by id. Returns the answer record including its id. Required: id.
list_all_15_five_one_on_one
List 15five one-on-one meetings. Returns each record's id and attributes (the field set is defined upstream in 15five; consult the upstream docs for the field-level breakdown).
get_single_15_five_one_on_one_by_id
Get a single 15five one-on-one meeting by id. Returns the record's id and attributes (the field set is defined upstream in 15five; consult the upstream docs for the field-level breakdown). Required: id.
list_all_15_five_high_fives
List high fives in 15Five. Returns each high five record including id, created_at, and updated_at.
get_single_15_five_high_five_by_id
Get a single high five in 15Five by id. Returns: id, created_at, updated_at. Required: id.
create_a_15_five_high_five
Create a high five in 15Five. Returns: id, text, creator_id, creator_details, receivers, create_ts. Required: text (with @mentions), creator_id.
list_all_15_five_objectives
List objectives in 15Five, including objectives hidden by privacy settings in the UI (all objectives are fully available via the API). Returns: id, created_at, updated_at.
get_single_15_five_objective_by_id
Get a single 15Five objective by id. Returns: id, created_at, updated_at. Required: id.
create_a_15_five_objective
Create one or more objectives in 15Five (request body is a list). Returns the created objectives with id, description, scope, start_ts, end_ts, user_details, key_results. Required per item: description, start_ts, end_ts, scope, user_id, key_results.
15_five_objectives_bulk_update
Update one or more 15Five objectives (request body is a list, each item identified by id). Set action to complete, deactivate, reactivate or delete to change an objective's state. Returns the updated objectives. Required per item: id, description, start_ts, end_ts, scope, user_id.
list_all_15_five_objective_history
List 15Five objective history records. Returns each record's id and an attributes object with upstream-defined fields; the attribute shape is specific to 15Five's objective history object. Objectives are fully visible through the API regardless of privacy settings.
create_a_15_five_key_result
Create one or more key results on existing 15Five objectives (request body is a list). Returns the created key results. Required per item: objective_id, description.
15_five_key_results_bulk_update
Update one or more 15Five key results (request body is a list, each item identified by id). Returns the updated key results. Required per item: id.
update_a_15_five_key_result_value_by_id
Set the current value of a 15Five key result. Returns: status (ok or error). Required: id (the key result id), current_value.
list_all_15_five_review_cycles
List review cycles in 15Five. Returns: id, created_at, updated_at.
get_single_15_five_review_cycle_by_id
Get a single review cycle in 15Five by id. Returns: id, created_at, updated_at. Required: id.
list_all_15_five_review_cycle_participants
List the participants of a 15Five review cycle. Returns: id, created_at, updated_at. Required: review_cycle_id.
list_all_15_five_review_cycle_answers
List answer results for a review cycle in 15Five. Returns the cycle's answer records, each with an id and an attributes object whose fields are defined upstream — see 15Five's Public API docs for the field-level breakdown. Required: review_cycle_id.
list_all_15_five_review_cycle_performance_measurements
List performance measurement results for a 15Five review cycle. Returns measurement records with id and cycle-specific measurement attributes. Required: review_cycle_id.
list_all_15_five_review_cycle_reviews
List reviews for a 15Five review cycle. Returns review records with id and cycle-specific attributes. Required: review_cycle_id. The API key creator must hold company admin and review admin roles, or the endpoint returns no results.
list_all_15_five_company_is_actives
Check whether the company account is active in 15Five for the authenticated tenant. Returns: is_active.
list_all_15_five_hellos
Check the 15Five API connection and the validity of the API key (GET /api/public/hello/). Returns the 15Five server's current timestamp. Takes no parameters; works with a user or company-wide API key.
list_all_15_five_one_on_one_bulk_exports
Bulk export 1-on-1s in 15five. Returns: reporter, reviewer, start_ts, end_ts, reporter_notes, reviewer_notes, reviewer_private_notes, reporter_private_notes, action_item_list, talking_point_list. No required parameters. Hidden behind a feature flag — contact support before using it.
create_a_15_five_public_attribute_value
Create a people attribute value in 15five. Returns the created value object including its id, value, user, attribute, and create_ts. user_id defaults to the API key user when omitted. Required: name, value.
get_single_15_five_public_attribute_value_by_id
Get a single 15five people attribute value by id. Returns: id, value, user, attribute, create_ts, update_ts. Required: id.
list_all_15_five_public_attribute_values
List 15five people attribute values ordered by id by default. Returns: id, attribute__is_only_admin_editable, attribute__is_default, attribute__id, attribute__name, attribute__slug, attribute__datatype, attribute__category, user_id, value, create_ts, update_ts.
create_a_15_five_public_attribute
Create a people attribute in 15five. Maximum 50 attributes per company. Required: name, datatype.
get_single_15_five_public_attribute_by_id
Get a single people attribute in 15five by id. Returns: id, name, slug, datatype, is_default, is_only_admin_editable, create_ts, update_ts. Required: id.
list_all_15_five_public_attributes
List people attributes in 15five. Returns: id, name, slug, datatype, is_default, is_only_admin_editable, create_ts, update_ts.
create_a_15_five_public_bulk_user_import
Upload a UTF-8 encoded CSV file to bulk-import users into 15five. Returns only the result of processing the import: ok, error, or queued; no imported-record body is returned.
get_single_15_five_public_department_by_id
Get a single 15five department by id. Returns the department's id and name. Required: id. Deprecated: 15five recommends using the group resource instead.
list_all_15_five_public_departments
List 15five departments, optionally filtered by name. Returns departments with id and name. Max 50 per page. Deprecated: use the group resource instead.
list_all_15_five_public_feature_status
Retrieve the current feature statuses for a 15five company. Returns: pulse, demographic_attributes.
15_five_public_objectives_list_history
List the change history of a single 15five objective. Returns history entries with create_ts, update_ts, user, user_details, event, objective_id, and changed values (prior_value, current_value). Required: objective_id.
list_all_15_five_public_security_audits
List security audit events in 15five. Returns: actor, create_ts, type, extra. Paginated with up to 50 results per page.
15_five_public_users_bulk_create
Create or update 15Five users in bulk from an array of user records. Returns: processed_users, errors.
update_a_15_five_user_change_by_id
Update a 15five user's profile (name, email, title, active status, groups) by id. Returns the edited user with id, first_name, last_name, email, is_active, create_ts, and more. Required: id. Deprecated in favor of the newer user update endpoint; phone accepts US numbers only.
list_all_15_five_company_settings
Get the company settings for the 15Five company behind the API key (company-wide API key required). Returns: unique_identifier (the field used to identify existing employee profiles: email or employee_id) and other company-level settings.
list_all_15_five_home_programs
Fetch programs data from the 15Five Context Store for the user's company. Returns the programs payload as stored.
create_a_15_five_home_program
Fetch programs data from the 15Five Context Store for the user's company using a POST request body for filters or options. Returns the programs payload as stored.
list_all_15_five_home_programs_source_last_updated
Fetch the last-updated timestamp of the programs data source in the 15Five Context Store. Returns: the source last-updated timestamp.
list_all_15_five_insights
Fetch proactive insights data from the 15Five Context Store for the user's company. Returns the insights payload as stored.
create_a_15_five_insight
Fetch proactive insights data from the 15Five Context Store for the user's company using a POST request body for filters or options. Returns the insights payload as stored.
create_a_15_five_insights_family
Fetch insight families data from the 15Five Context Store for the user's company. Returns the insight families payload as stored.
create_a_15_five_insights_tile
Fetch insights tiles data from the 15Five Context Store for the user's company. Returns the insight tiles payload as stored.
list_all_15_five_realtime_feedback
List real-time feedback entries in 15Five, filterable by subject, recipient, anytime flag and created/updated/expiry time windows. Returns: id, subject_id, author_id, shared_with_id, is_anytime_feedback, text, created_ts, updated_ts, expiry_ts. Paginated by page.
get_single_15_five_realtime_feedback_by_id
Get a single real-time feedback entry in 15Five by id. Returns: id, subject_id, author_id, shared_with_id, is_anytime_feedback, text, created_ts, updated_ts, expiry_ts. Required: id.
get_single_15_five_user_bulk_log_by_id
Get the status of a 15Five bulk user import log by id (experimental, company-wide API key required). Returns: id, status, errors. Required: id.
create_a_15_five_user_bulk_async
Start an asynchronous bulk create/update of 15Five users (request body is a list, same shape as bulk create; email required per user). Returns: result (queued), message, import_id — poll import_id with the bulk import log tool.
Why Truto
Why use Truto’s MCP server for 15Five
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 950+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
Unified APIs
Unified APIs for 15Five
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
How It Works
From zero to integrated
Go live with 15Five in under an hour. No boilerplate, no maintenance burden.
Link your customer’s 15Five account
Use Truto’s frontend SDK to connect your customer’s 15Five account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call 15Five
Truto’s Proxy API is a 1-to-1 mapping of the 15Five API. You call us, we call 15Five, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate 15Five’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about 15Five on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
Which Truto Unified APIs are available for 15Five today?
15Five is supported through Truto's Unified User Directory API, which covers Users and Groups. This lets you read employee profiles, department/team groupings, and manager-report relationships through a standardized schema.
What if I need access to 15Five data beyond Users and Groups, like OKRs or check-ins?
Additional tools and endpoints for 15Five (such as Objectives, High Fives, Pulse scores, and Review Cycles) are built on request. Contact Truto and the team will scope and deliver the integration based on your specific data needs.
How does authentication work for 15Five integrations through Truto?
Truto handles the full auth flow for your end users connecting their 15Five accounts. 15Five uses API key-based authentication, and Truto manages token storage and credential lifecycle so you don't have to build or maintain auth infrastructure.
Can I reconstruct the full reporting hierarchy from 15Five data?
Yes. The 15Five User object includes a manager_id field, which allows you to reconstruct the complete reporting tree. Combined with Group data for departments and teams, you get a full organizational map.
Does Truto handle pagination and rate limits for the 15Five API?
Yes. Truto abstracts away pagination and respects 15Five's rate limits automatically, so you receive complete result sets without writing retry logic or cursor management code.
How fresh is the data I get through the Unified User Directory API for 15Five?
Data is fetched from 15Five's API in real time when you make a request through Truto. There is no intermediate caching layer that would introduce staleness — you get the current state of Users and Groups as 15Five reports it.
15Five
Get 15Five integrated into your app
Our team understands what it takes to make a 15Five integration successful. A short, crisp 30 minute call with folks who understand the problem.