Skip to main content

15Five

15Five is a performance management and HR platform that helps companies run continuous check-ins, set and track OKRs, send high-five recognitions, hold 1-on-1 meetings, gather engagement pulse sentiment, and conduct performance review cycles. The 15Five Public REST API exposes users, groups, departments, objectives and objective history, priorities, high-fives, 1-on-1s, pulse scores, check-in questions and answers, review cycles, people attributes, and security audit logs, enabling integrations to read performance and engagement data into a warehouse or analytics tool and to programmatically create high-fives, objectives, priorities, groups, attributes, vacations, key results, and bulk-imported users from upstream systems.

Power end-to-end data operations for your 15Five API with Nexla. Our bi-directional 15Five connector is purpose-built for 15Five, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to 15Five or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your 15Five workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

The 15Five Public API uses bearer token authentication. Every request to the API must include a Public API token in the Authorization HTTP header as Authorization: Bearer <token> — unauthenticated requests are rejected. Before creating a credential in Nexla, mint the API token from your 15Five account. The token is created and viewed only by a company admin.

Create Your 15Five API Token

  1. Sign in to your 15Five account as a company admin at my.15five.com.

  2. Navigate to Settings > Features > Integrations > Public API.

  3. Enable the Public API if it is not already enabled, then click Create new key.

  4. Copy the generated token, and store it securely. This token grants access to your 15Five account data, so it should be treated like a password.

    Performance review data (for example, review cycles) is only accessible if the admin who creates the key also holds the review-admin role. If you plan to ingest review data, confirm the key creator has this role before generating the token.

For complete information about the 15Five Public API, its supported features, limits, and access rules, see the 15Five Public API documentation.

Important

The 15Five API token grants access to your account's performance and HR data and the ability to create high-fives, objectives, priorities, groups, attributes, vacations, key results, and users. Store it in a secure secret manager, never commit it to source control, and rotate it immediately if you suspect it has been exposed.

Rate Limits

The 15Five API enforces rate limits per server, per source IP (the exact numeric limits are not published). When a request is throttled, the API returns HTTP 429. When configuring Nexla data flows that fan out to many 15Five endpoints, consider these limits when sizing batches and scheduling cadence; Nexla retries throttled requests with exponential backoff.

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter your 15Five API Token in the API Token field. This is the value copied from the Public API section of the 15Five integration settings. Nexla will automatically send this value as Authorization: Bearer <token> on every API call made with this credential.

    The API Token is stored as a secret in Nexla. It is never displayed back after saving and cannot be retrieved — only re-entered or rotated.

  4. Click the Save button at the bottom of the overlay. Nexla validates the credential by issuing a test request to the 15Five API; a failed validation indicates the token is invalid, has been rotated, or lacks access to the account. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the 15Five connector tile, then select the credential that will be used to connect to the 15Five instance, and click Next; or, create a new 15Five credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common 15Five endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

List users (employees): id, email, name, manager, department, role, active flag

This endpoint returns a paginated list of every user (employee) in your 15Five account, including id, email, name, manager, department, role, and active flag. Use it to sync your employee directory into a warehouse or to join performance data to people records downstream.

  • No configuration is required for this endpoint beyond selecting it — all users on the account are returned automatically.

This endpoint sources from GET /api/public/user/. The response is an envelope with the records under the results array, so the path to data is $.results[*]. Nexla follows the next URL to advance through pages automatically.

List groups (teams)

This endpoint returns a paginated list of the groups (teams) in your 15Five account. Use it to sync your team structure into a warehouse or to roll up performance and engagement metrics by team.

  • No configuration is required for this endpoint beyond selecting it — all groups on the account are returned automatically.

This endpoint sources from GET /api/public/group/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List group types

This endpoint returns a paginated list of the group types defined in your 15Five account. Group types categorize the kinds of groups (for example, departments versus project teams) used to organize people.

  • No configuration is required for this endpoint beyond selecting it — all group types on the account are returned automatically.

This endpoint sources from GET /api/public/group-type/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List departments

This endpoint returns a paginated list of the departments in your 15Five account. Use it to sync your org structure into a warehouse or to segment people and performance data by department.

  • No configuration is required for this endpoint beyond selecting it — all departments on the account are returned automatically.

This endpoint sources from GET /api/public/department/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List objectives (OKRs)

This endpoint returns a paginated list of objectives (OKRs) in your 15Five account, including their owners, progress, and status. Use it to report on goal attainment across the organization or to feed OKR dashboards.

  • No configuration is required for this endpoint beyond selecting it — all objectives on the account are returned automatically.

This endpoint sources from GET /api/public/objective/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List objective history/change events

This endpoint returns a paginated list of history and change events for objectives — for example, progress updates and status changes over time. Use it to build an audit trail of OKR activity or to chart objective progress.

  • No configuration is required for this endpoint beyond selecting it — all objective history events on the account are returned automatically.

This endpoint sources from GET /api/public/objective/history/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List priorities (weekly goals)

This endpoint returns the priorities (weekly goals) that employees set as part of their check-ins. Use it to track short-term goal-setting and completion alongside check-in data.

  • No configuration is required for this endpoint beyond selecting it — all priorities on the account are returned automatically.

This endpoint sources from GET /api/public/priority/, which returns a bare JSON array. The path to data is therefore $[*]. Unlike most 15Five endpoints, this one is paginated by incrementing a page query parameter (starting at page 1) rather than by following a next URL; Nexla advances the page index automatically.

List high fives (recognitions)

This endpoint returns a paginated list of high fives (peer recognitions) sent within your 15Five account. Use it to measure recognition activity, surface top contributors, or feed engagement dashboards.

  • No configuration is required for this endpoint beyond selecting it — all high fives on the account are returned automatically.

This endpoint sources from GET /api/public/high-five/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List 1-on-1 meetings

This endpoint returns the 1-on-1 meetings recorded in your 15Five account, including manager and report participation. Use it to track meeting cadence and coverage across the organization.

  • No configuration is required for this endpoint beyond selecting it.

This endpoint sources from GET /api/public/one-on-one/, which returns a bare JSON array with no page parameter. The path to data is $[*], and the endpoint is fetched as a single static request (not paginated). Confirm the record shape on a live test pull.

List pulse (engagement sentiment) scores

This endpoint returns a paginated list of pulse scores — the engagement sentiment ratings employees submit with their check-ins. Use it to trend morale over time and segment engagement by team or department.

  • No configuration is required for this endpoint beyond selecting it — all pulse scores on the account are returned automatically.

This endpoint sources from GET /api/public/pulse/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List check-in questions

This endpoint returns a paginated list of the check-in questions configured in your 15Five account. Use it to join question text to the answers returned by the List check-in answers endpoint.

  • No configuration is required for this endpoint beyond selecting it — all questions on the account are returned automatically.

This endpoint sources from GET /api/public/question/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List check-ins (weekly reports)

This endpoint returns a paginated list of check-ins (weekly reports) submitted by employees. Use it to sync the core 15Five check-in cadence into a warehouse for reporting and analysis.

  • No configuration is required for this endpoint beyond selecting it — all check-ins on the account are returned automatically.

This endpoint sources from GET /api/public/report/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List check-in answers

This endpoint returns a paginated list of the answers employees gave to check-in questions. Use it together with the List check-in questions endpoint to reconstruct full check-in responses for analysis.

  • No configuration is required for this endpoint beyond selecting it — all answers on the account are returned automatically.

This endpoint sources from GET /api/public/answer/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List performance review cycles

This endpoint returns a paginated list of performance review cycles configured in your 15Five account. Use it to report on review participation and timelines.

  • No configuration is required for this endpoint beyond selecting it — all review cycles on the account are returned automatically.

This endpoint sources from GET /api/public/review-cycle/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically. Review data is only accessible if the API token's creator holds the review-admin role.

List people attributes (custom fields)

This endpoint returns a paginated list of the people attributes (custom fields) defined in your 15Five account. Use it to discover the custom fields available on user records before joining their values.

  • No configuration is required for this endpoint beyond selecting it — all attributes on the account are returned automatically.

This endpoint sources from GET /api/public/attribute/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List people attribute values

This endpoint returns a paginated list of the values assigned to people attributes (custom fields) across users. Use it together with the List people attributes endpoint to enrich user records with custom field data.

  • No configuration is required for this endpoint beyond selecting it — all attribute values on the account are returned automatically.

This endpoint sources from GET /api/public/attribute_value/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

List security audit log entries

This endpoint returns a paginated list of security audit log entries for your 15Five account. Use it to feed a SIEM or security data lake for monitoring administrative and access activity.

  • No configuration is required for this endpoint beyond selecting it — all audit log entries on the account are returned automatically.

This endpoint sources from GET /api/public/security-audit/. The path to data is $.results[*], and Nexla follows the next URL to advance through pages automatically.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

15Five data sources can also be manually configured to ingest data from any valid 15Five API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

All 15Five API URLs use the base https://my.15five.com/api/public/ followed by the resource path (for example, https://my.15five.com/api/public/user/ or https://my.15five.com/api/public/objective/), and all 15Five read endpoints use GET. Most 15Five list endpoints return a paginated envelope with the records under a results array, so the path to data is $.results[*]; a few endpoints (such as /priority/ and /one-on-one/) return a bare top-level array, so the path to data is $[*]. For paginated endpoints, the envelope carries sibling fields such as count, next, and previous alongside the results array, which can be retained on each record using the Path to Metadata in Response field. The Authorization: Bearer <token> authentication header is added automatically based on your 15Five credential.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new 15Five data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the 15Five destination, and select the Send to Destination option from the menu. Select the 15Five connector from the list of available destination connectors, then select the credential that will be used to connect to the 15Five account, and click Next; or, create a new 15Five credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common 15Five endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Create a high five (recognition)

This endpoint creates a new high five (peer recognition) in your 15Five account. Use it to seed recognitions programmatically from an upstream rewards, chat, or HR system.

  • Each record in the upstream Nexset is sent as the JSON body of the POST /api/public/high-five/ call. Use the Nexla transform layer to shape upstream attributes into the field names expected by 15Five (for example, sender, recipient, and message).

15Five returns the created high five in the response. Enable the Response Webhook option (in the Manual configuration section below, after switching to the Advanced tab) to capture the new record into a Nexla webhook source for downstream branching.

Create an objective (OKR)

This endpoint creates a new objective (OKR) in your 15Five account. Use it to push goals defined in an external planning tool into 15Five.

  • Each record in the upstream Nexset is sent as the JSON body of the POST /api/public/objective/ call. Include the objective's title, owner, and any timeframe or progress fields 15Five expects.

Pair this endpoint with Create a key result on an objective to add measurable key results to the objectives you create.

Create a priority (weekly goal)

This endpoint creates a new priority (weekly goal) in your 15Five account. Use it to seed weekly goals from an upstream task or project tool.

  • Each record in the upstream Nexset is sent as the JSON body of the POST /api/public/priority/ call. Include the priority text and the user it belongs to.

Create a group

This endpoint creates a new group (team) in your 15Five account. Use it to sync team structure from an HRIS or org-management tool into 15Five.

  • Each record in the upstream Nexset is sent as the JSON body of the POST /api/public/group/ call. Include the group name and the group type it belongs to.

If the group type does not yet exist, create it first with Create a group type.

Create a group type

This endpoint creates a new group type in your 15Five account. Group types categorize the kinds of groups (for example, departments versus project teams) used to organize people.

  • Each record in the upstream Nexset is sent as the JSON body of the POST /api/public/group-type/ call. Include the group type name.

Create a people attribute (custom field)

This endpoint creates a new people attribute (custom field) in your 15Five account. Use it to define custom fields that mirror those in your source-of-truth HR system.

  • Each record in the upstream Nexset is sent as the JSON body of the POST /api/public/attribute/ call. Include the attribute name and type.

After creating an attribute, assign its values to users with Create a people attribute value.

Create a people attribute value

This endpoint assigns a value for a people attribute (custom field) to a user in your 15Five account. Use it to populate custom fields from an upstream HR system.

  • Each record in the upstream Nexset is sent as the JSON body of the POST /api/public/attribute_value/ call. Include the attribute, the user, and the value.

Create a company vacation/time-off entry

This endpoint creates a company vacation or time-off entry in your 15Five account. Use it to publish company holidays or scheduled closures into 15Five.

  • Each record in the upstream Nexset is sent as the JSON body of the POST /api/public/vacation/ call. Include the vacation name and its date range.

Create a key result on an objective

This endpoint creates a key result on an existing objective in your 15Five account. Use it to add measurable outcomes to objectives synced from an external planning tool.

  • Each record in the upstream Nexset is sent as the JSON body of the POST /api/public/key-result/ call. Reference the parent objective and include the key result's target and current values.

Create the parent objective first with Create an objective (OKR), then reference its ID when creating key results.

Bulk create/import users

This endpoint bulk creates or imports users (employees) into your 15Five account. Use it to onboard people in bulk from an HRIS or identity provider.

  • Each record in the upstream Nexset is sent as the JSON body of the POST /api/public/bulk-user-import/ call. Include the user fields 15Five expects (for example, email, name, manager, and department).

Because this endpoint creates real user accounts, validate upstream data carefully before activating this destination.

Manual configuration

15Five destinations can also be manually configured to send data to any valid 15Five API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

All 15Five API URLs use the base https://my.15five.com/api/public/ followed by the resource path (for example, https://my.15five.com/api/public/high-five/ or https://my.15five.com/api/public/objective/), and all 15Five write endpoints in these templates use POST. The 15Five API expects application/json for all write endpoints, so JSON is the appropriate choice for every 15Five destination. Most 15Five create endpoints accept one record per request; the exception is Bulk create/import users, which is designed to accept many users in a single call. Combined with 15Five's per-IP rate limits, large unbatched loads should be paced accordingly. The Authorization: Bearer <token> authentication header is added automatically based on your 15Five credential, and Content-Type: application/json is added based on the selected Content Format. Enabling the response webhook is particularly useful for create endpoints that return the newly created resource ID in their response — these IDs are often needed by downstream Nexla flows (for example, to attach key results to a newly created objective).

Important

Test payloads sent to write endpoints (such as Create a high five, Create an objective, or Bulk create/import users) will make real changes in your 15Five account. Use a test 15Five account before sending test data against a production 15Five account.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured 15Five endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the 15Five endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.