openapi: 3.2.0
info:
title: Vibes Platform Incentive Pool API
version: 1.0.0
servers:
- url: https://public-api.vibescm.com
description: North America
- url: https://public-api.eu.vibes.com/
description: EMEA
security:
- basicAuth: []
tags:
- name: Incentive Pool API
paths:
/companies/{company_key}/incentives/pools:
get:
tags:
- Incentive Pool API
summary: Get incentive pools
parameters:
- name: company_key
in: path
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/incentivePoolsResponse'
post:
tags:
- Incentive Pool API
summary: Create a new code pool
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/incentivePoolRequest'
parameters:
- name: X-API-VERSION
in: header
schema:
type: string
- name: Content-Type
in: header
schema:
type: string
example: application/json
required: true
- name: company_key
in: path
schema:
type: string
required: true
description:
Important: Please note that the "Try It" feature to the right will send an actual API call to our system, which may result in a new code pool being created.
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/incentivePoolResponse'
/companies/{company_key}/incentives/pools/{incentive_pool_id}:
put:
tags:
- Incentive Pool API
summary: Update an existing pool
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/incentivePoolRequest'
parameters:
- name: X-API-Version
in: header
schema:
type: string
default: 1
- name: Content-Type
in: header
schema:
type: string
example: application/json
required: true
- name: company_key
in: path
schema:
type: string
required: true
- name: incentive_pool_id
in: path
schema:
type: string
required: true
description: Important: If you are entering a live incentive_pool_id, please note that using the "Try It" feature on the righthand console will send an actual API call to our system. This may result in changes being made to the live code pool.
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/incentivePoolResponse'
get:
tags:
- Incentive Pool API
summary: Get code pool info
parameters:
- name: X-API-Version
in: header
schema:
type: string
default: 1
- name: Content-Type
in: header
schema:
type: string
example: application/json
required: true
- name: company_key
in: path
schema:
type: string
required: true
- name: incentive_pool_id
in: path
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/incentivePoolResponse'
components:
schemas:
incentivePoolRequest:
type: object
properties:
name:
type: string
description: The name given to the incentive pool.
issuance_allowed:
type: boolean
description: Indicates whether codes are currently allowed to be issued from this code pool.
redemption_allowed:
type: boolean
description: Indicates whether codes from this code pool are currently allowed to be redeemed.
incentive_codes:
type: object
properties:
low_threshold:
type: integer
description: The number of remaining incentive codes where a notification is sent.
max_characters:
type: integer
description: The maximum number of characters allowed in an incentive code in this pool.
required:
- low_threshold
- max_characters
distribution:
type: object
properties:
method:
type: string
description: The method of distribution.
enum:
- unique
- multi
notification_email_address:
type: string
description: The email address for all notifications.
required:
- name
- issuance_allowed
- redemption_allowed
- incentive_codes
- distribution
- notification_email_address
incentivePoolResponse:
type: object
properties:
id:
type: integer
description: Vibes unique identifier for each incentive pool.
name:
type: string
description: The name of the incentive pool.
issuance_allowed:
type: boolean
description: Indicates whether codes are currently allowed to be issued from this code pool.
redemption_allowed:
type: boolean
description: Indicates whether codes from this code pool are currently allowed to be redeemed.
incentive_codes:
type: object
properties:
total:
type: integer
description: Total number of incentive codes in the pool.
issued:
type: integer
description: Total number of incentive codes from the pool that have been issued.
remaining:
type: integer
description: Number of incentive codes in the pool that are still available to be issued.
low_threshold:
type: integer
description: Set a number at which you'd like to be notified to add more codes to your pool.
max_charachters:
type: integer
description: The maximum number of characters allowed in an incentive code in this pool.
distribution:
type: object
properties:
method:
type: string
description: The method of distribution (unique|multi).
notification_email_address:
type: string
description: The email address you'd like notifications about this code pool to be send to.
created_at:
type: string
description: The date this pool was created in ISO-8601 format.
updated_at:
type: string
description: The date this pool was last updated in ISO-8601 format.
url:
type: string
incentivePoolsResponse:
type: array
items:
$ref: '#/components/schemas/incentivePoolResponse'
securitySchemes:
basicAuth:
type: http
scheme: basic