{ "openapi": "3.0.0", "info": { "title": "Vibes Platform 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": "Acquisition Campaign API" }, { "name": "Broadcast API" }, { "name": "Callback API" }, { "name": "Event API" }, { "name": "Event-Triggered Campaign API" }, { "name": "Incentive Code API" }, { "name": "Incentive Pool API" }, { "name": "Person API" }, { "name": "Push Device Manager API" }, { "name": "Source Code API" }, { "name": "Subscription API" }, { "name": "Subscription List API" }, { "name": "Wallet Campaign API", "description": "Manage mobile wallet campaigns and the individual wallet items (passes) issued from them. A wallet campaign is the container for a single offer, loyalty card, or event ticket program; it owns the iOS and Android pass templates, the messages you send, and the store locations attached to the passes. Items are the per-recipient passes created when end users add a pass to Apple Wallet or Google Wallet." }, { "name": "Wallet Messaging API", "description": "Send push-style messages to the holders of a wallet campaign's passes and review messages that have already been sent. Messages can be targeted to specific recipients with filters (for example, by token value or group code)." }, { "name": "Android Wallet Templates API", "description": "Define the design and content of the Google Wallet (Android) pass for a wallet campaign. Each campaign has a single Google Wallet template whose fields map to Google Wallet pass concepts. See the Google Wallet reference for field semantics: https://developers.google.com/wallet/generic" }, { "name": "iOS Wallet Templates API", "description": "Define the design and content of the Apple Wallet (iOS) pass for a wallet campaign. Each campaign has a single Apple Wallet (passbook) template whose fields map to PassKit pass concepts. See the Apple Wallet Passes reference for field semantics: https://developer.apple.com/documentation/WalletPasses" }, { "name": "Wallet Location Selector API", "description": "Configure the branded \"Add to Wallet\" landing page shown to end users for a wallet campaign, including its image, heading, colors, and language." }, { "name": "Wallet Store Locations API", "description": "Manage the store locations attached to a wallet campaign. Locations drive geofenced lock-screen notifications that remind pass holders about a nearby store." } ], "paths": { "/companies/{company_key}/campaigns/acquisition": { "get": { "tags": [ "Acquisition Campaign API" ], "summary": "Get acquisition campaigns", "parameters": [ { "name": "X-API-Version", "in": "header", "schema": { "type": "string", "default": 1 } }, { "name": "company_key", "in": "path", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/acquisitionsResponse" } } } }, "404": { "description": "No campaigns can be located." } } } }, "/companies/{company_key}/campaigns/acquisition/{acquisition_id}": { "get": { "tags": [ "Acquisition Campaign API" ], "summary": "Get an acquisition campaign", "parameters": [ { "name": "X-API-Version", "in": "header", "schema": { "type": "string", "default": 1 } }, { "name": "company_key", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "acquisition_id", "in": "path", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/acquisitionResponse" } } } }, "404": { "description": "The `acquisition_id` cannot be located." } } } }, "/companies/{company_key}/campaigns/acquisition/{acquisition_id}/participants": { "get": { "tags": [ "Acquisition Campaign API" ], "summary": "Search for pending participants", "parameters": [ { "name": "X-API-Version", "in": "header", "schema": { "type": "string", "default": 1 } }, { "name": "mdn", "in": "query", "description": "Mobile Directory Number. The dialable phone number associated with the phone. Required if searching by mdn.", "schema": { "type": "string" } }, { "name": "person_id", "in": "query", "description": "Vibes-assigned unique indentifier for the person. Required if searching by person_id", "schema": { "type": "string" } }, { "name": "external_person_id", "in": "query", "description": "A unique person identifier assigned by the brand, which can be used to link non-Vibes-assigned identifiers to Vibes person records. Required if searching by external_person_id.", "schema": { "type": "string" } }, { "name": "company_key", "in": "path", "schema": { "type": "string" }, "required": true }, { "name": "acquisition_id", "in": "path", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "This is returned for all valid requests. The array with be empty for entities without pending subscriptions.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/acquisitionParticipantsResponse" } } } }, "400": { "description": "The supplied MDN is not in proper mobile number format." } } }, "post": { "tags": [ "Acquisition Campaign API" ], "summary": "Add a participant", "requestBody": { "description": "User details for acquisition", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/addParticipantRequest" } } } }, "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": "acquisition_id", "in": "path", "schema": { "type": "string" }, "required": true, "description": "