{ "info": { "name": "Bonusly API", "description": "The REST API behind the Bonusly employee recognition and rewards platform. Covers bonuses, users, the reward catalog, redemptions, company settings, and analytics. Base URL: https://bonus.ly/api/v1. All requests require a Bearer personal access token (PAT) with the appropriate read/write/administer scope; a token missing a scope returns 403. API access is available on Bonusly's paid plans.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{bearerToken}}", "type": "string" } ] }, "variable": [ { "key": "baseUrl", "value": "https://bonus.ly/api/v1", "type": "string" }, { "key": "bearerToken", "value": "", "type": "string" } ], "item": [ { "name": "Bonuses", "item": [ { "name": "List bonuses", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/bonuses?limit=20", "host": ["{{baseUrl}}"], "path": ["bonuses"], "query": [{ "key": "limit", "value": "20" }] }, "description": "Lists bonuses, most recent first, with optional user, hashtag, and date filters." } }, { "name": "Create a bonus", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"reason\": \"+10 @alice for shipping the release #teamwork\"\n}" }, "url": { "raw": "{{baseUrl}}/bonuses", "host": ["{{baseUrl}}"], "path": ["bonuses"] }, "description": "Creates a bonus. The reason names one or more receivers, an amount, and a hashtag." } }, { "name": "Retrieve a bonus", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/bonuses/:id", "host": ["{{baseUrl}}"], "path": ["bonuses", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Retrieves a single bonus by ID." } }, { "name": "Update a bonus", "request": { "method": "PUT", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"reason\": \"+10 @alice for the release #teamwork\"\n}" }, "url": { "raw": "{{baseUrl}}/bonuses/:id", "host": ["{{baseUrl}}"], "path": ["bonuses", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Updates the reason text of an existing bonus." } }, { "name": "Delete a bonus", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/bonuses/:id", "host": ["{{baseUrl}}"], "path": ["bonuses", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Deletes a bonus by ID." } } ] }, { "name": "Users", "item": [ { "name": "List users", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/users?limit=20", "host": ["{{baseUrl}}"], "path": ["users"], "query": [{ "key": "limit", "value": "20" }] }, "description": "Lists users in the company." } }, { "name": "Create a user", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"email\": \"new.user@example.com\",\n \"first_name\": \"New\",\n \"last_name\": \"User\"\n}" }, "url": { "raw": "{{baseUrl}}/users", "host": ["{{baseUrl}}"], "path": ["users"] }, "description": "Invites a new user. Requires an administrator-scoped token." } }, { "name": "Retrieve the authenticated user", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/users/me", "host": ["{{baseUrl}}"], "path": ["users", "me"] }, "description": "Returns the user tied to the access token." } }, { "name": "Retrieve a user", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/users/:id", "host": ["{{baseUrl}}"], "path": ["users", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Retrieves a single user by ID." } }, { "name": "Update a user", "request": { "method": "PUT", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"display_name\": \"Updated Name\"\n}" }, "url": { "raw": "{{baseUrl}}/users/:id", "host": ["{{baseUrl}}"], "path": ["users", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Updates a user's profile. Requires an administrator-scoped token." } }, { "name": "Deactivate a user", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/users/:id", "host": ["{{baseUrl}}"], "path": ["users", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Deactivates (archives) a user. Requires an administrator-scoped token." } }, { "name": "Autocomplete users", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/users/autocomplete?query=al", "host": ["{{baseUrl}}"], "path": ["users", "autocomplete"], "query": [{ "key": "query", "value": "al" }] }, "description": "Returns users matching a partial name or email." } }, { "name": "List a user's bonuses", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/users/:id/bonuses", "host": ["{{baseUrl}}"], "path": ["users", ":id", "bonuses"], "variable": [{ "key": "id", "value": "" }] }, "description": "Lists bonuses given or received by a user." } }, { "name": "List a user's redemptions", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/users/:id/redemptions", "host": ["{{baseUrl}}"], "path": ["users", ":id", "redemptions"], "variable": [{ "key": "id", "value": "" }] }, "description": "Lists redemptions made by a user." } } ] }, { "name": "Rewards", "item": [ { "name": "List rewards", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/rewards?country=US", "host": ["{{baseUrl}}"], "path": ["rewards"], "query": [{ "key": "country", "value": "US" }] }, "description": "Lists rewards in the redemption catalog - gift cards, donations, and custom rewards - filterable by country." } } ] }, { "name": "Redemptions", "item": [ { "name": "List redemptions", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/redemptions?limit=20", "host": ["{{baseUrl}}"], "path": ["redemptions"], "query": [{ "key": "limit", "value": "20" }] }, "description": "Lists redemptions across the company." } }, { "name": "Retrieve a redemption", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/redemptions/:id", "host": ["{{baseUrl}}"], "path": ["redemptions", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Retrieves a single redemption by ID." } }, { "name": "Create a user redemption", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"user_id\": \"\",\n \"reward_request\": \"\",\n \"denomination\": 25\n}" }, "url": { "raw": "{{baseUrl}}/user_redemptions", "host": ["{{baseUrl}}"], "path": ["user_redemptions"] }, "description": "Redeems a reward for a user, spending points from their balance." } }, { "name": "List custom reward redemptions", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/custom_reward_redemptions", "host": ["{{baseUrl}}"], "path": ["custom_reward_redemptions"] }, "description": "Lists redemptions of custom company rewards." } }, { "name": "Approve custom reward redemptions", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"ids\": []\n}" }, "url": { "raw": "{{baseUrl}}/custom_reward_redemptions/approve", "host": ["{{baseUrl}}"], "path": ["custom_reward_redemptions", "approve"] }, "description": "Approves pending custom reward redemptions. Requires an administrator-scoped token." } }, { "name": "Fulfill custom reward redemptions", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"ids\": []\n}" }, "url": { "raw": "{{baseUrl}}/custom_reward_redemptions/fulfill", "host": ["{{baseUrl}}"], "path": ["custom_reward_redemptions", "fulfill"] }, "description": "Marks approved custom reward redemptions as fulfilled. Requires an administrator-scoped token." } } ] }, { "name": "Analytics", "item": [ { "name": "Analytics healthcheck", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/analytics/health", "host": ["{{baseUrl}}"], "path": ["analytics", "health"] }, "description": "Returns the availability status of the analytics subsystem." } }, { "name": "Queue a recognition events snapshot", "request": { "method": "POST", "header": [], "url": { "raw": "{{baseUrl}}/analytics/snapshots/recognition_events", "host": ["{{baseUrl}}"], "path": ["analytics", "snapshots", "recognition_events"] }, "description": "Queues an asynchronous snapshot of recognition events; returns a snapshot ID to poll." } }, { "name": "Get snapshot status", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/analytics/snapshots/:id", "host": ["{{baseUrl}}"], "path": ["analytics", "snapshots", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Returns the processing status of a queued analytics snapshot." } }, { "name": "List recognition events", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/analytics/recognition_events", "host": ["{{baseUrl}}"], "path": ["analytics", "recognition_events"] }, "description": "Lists the rows of a completed recognition events snapshot." } } ] }, { "name": "Company", "item": [ { "name": "Retrieve company", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/company", "host": ["{{baseUrl}}"], "path": ["company"] }, "description": "Retrieves company-level settings for the account tied to the token." } }, { "name": "Update company", "request": { "method": "PUT", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{}" }, "url": { "raw": "{{baseUrl}}/company", "host": ["{{baseUrl}}"], "path": ["company"] }, "description": "Updates company-level settings. Requires an administrator-scoped token." } } ] } ] }