Mavrck Referral Program API
The ReferralProgram API from Mavrck — 1 operation(s) for referralprogram.
The ReferralProgram API from Mavrck — 1 operation(s) for referralprogram.
openapi: 3.2.0
info:
version: 1.0.0
description: Identify your most influential customers and activate them to drive more conversions on social.
title: MAVRCK.IO Referral Program API
servers:
- url: http://app.splashscore.com/v1
- url: https://app.splashscore.com/v1
security:
- apiKey: []
tags:
- name: ReferralProgram
paths:
/referral-program:
get:
tags:
- ReferralProgram
operationId: getPrimaryReferralActivity
x-handler: referral_programs/referral_program_controller.js
x-access:
- administrator
- influencer
summary: Retrieve a community's referral program activity
parameters:
- name: communityId
in: query
required: false
schema:
type: string
responses:
'200':
description: Referral program activity returned.
content:
application/json:
schema:
$ref: '#/components/schemas/ActionGroupDeprecated'
'400':
description: Invalid or missing parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Session expired.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Access forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Global user or resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
put:
tags:
- ReferralProgram
operationId: updateReferralProgram
x-handler: referral_programs/referral_program_controller.js
x-access:
- administrator
summary: Update a community's referral program incentives
responses:
'200':
description: Referral program activity returned.
content:
application/json:
schema:
$ref: '#/components/schemas/EmptyObject'
'400':
description: Invalid or missing parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Session expired.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Access forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Global user or resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Server error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
content:
application/json:
schema:
type: object
properties:
sharingDescription:
type: string
referrerId:
type: integer
refereeId:
type: integer
required: true
components:
schemas:
Error:
type: object
properties:
type:
type: string
description: A key representing the type of error that has occurred.
error:
type: string
description: A static description of the type of error.
params:
type: array
description: For errors invovling parameters, this is an array containing the invalid parameters.
items:
type: string
keys:
type: array
items:
type:
- string
- object
artifactLinks:
$ref: '#/components/schemas/LinksDeprecated'
parent:
type: object
properties:
type:
type: string
description: A key representing the type of error generated by a request to an external API.
error:
type: string
description: A static description of the parent error.
BonusTier:
description: 'Swagger 2 representation of a tiered bonus entry.
`upperBound` is required for `BOUNDED` tiers and must be omitted for
`OPEN_ENDED` tiers. The bonus-tier validator enforces that conditional rule.
Validation rules:
- `bonusTiers` may contain at most 5 tiers.
- Tiers must be sorted by `lowerBound`.
- Adjacent tiers must be contiguous.
- The final tier must be `OPEN_ENDED`.
- `bonusTierCurrencyCode` is required when `bonusTiers` is non-empty.'
properties:
type:
type: string
enum:
- BOUNDED
- OPEN_ENDED
lowerBound:
type: number
format: double
description: Inclusive lower conversion/order bound for this payout tier. Must be non-negative.
upperBound:
type: number
format: double
description: Exclusive upper conversion/order bound for a `BOUNDED` tier.
bonusAmount:
type: number
format: double
description: Bonus payout amount in `bonusTierCurrencyCode`. Must be positive.
required:
- type
- lowerBound
- bonusAmount
type: object
additionalProperties: false
WorkflowStatusRequirementDeprecated:
type: object
properties:
satisfied:
type: boolean
incentiveId:
type: number
name:
type: string
QuestionDeprecated:
type: object
properties:
id:
type: integer
description: The question ID
key:
type: string
description: Unique key of the question
type:
type: string
description: Indicates the HTML tag that is used to dynamically render this question.
className:
type: string
description: Additional classes for fields styling and formatting.
questionText:
type: string
description: The text of the question
markUpQuestionText:
type: string
description: The text of the question with HTML markup
questionResponses:
x-access:
- root
- administrator
type: array
items:
type: object
maxResponses:
type: integer
description: Maximum length of responses allowed for this question.
hasResponses:
x-access:
- root
- administrator
type: boolean
templateOptions:
type: object
properties:
type:
type: string
description: Indicates the data type to be submitted for this question in the form response.
label:
type: string
description: Human-readable label for the question.
placeholder:
type: string
description: Placeholder text to be display in the input field.
maxUploads:
type: integer
description: Maximum uploads for file upload questions
accept:
type: string
description: The accepted file extension types for file upload questions
required:
type: boolean
description: Required value for the question
min:
type: integer
description: Minimum number allowed for a number type
max:
type: integer
description: Maximum number allowed for a number type
minlength:
type: integer
description: Minimum length of string allowed for a text type
maxlength:
type: integer
description: Maximum length of string allowed for a text type
options:
type: array
description: Array of possible options for a radio type
items:
type: object
properties:
name:
type: string
description: Text to show for option
value:
type: string
description: Key for option
dataPointDefinitionId:
type: integer
description: Use a data point definition to create a question.
x-access:
- administrator
- root
dataPointDefinition:
$ref: '#/components/schemas/DataPointDefinitionDeprecated'
required:
type: boolean
order:
type: integer
hideFromInfluencers:
type: boolean
RoutingDeprecated:
type: object
description: Routing configuration.
properties:
success:
$ref: '#/components/schemas/RoutingOptionsDeprecated'
not_eligible:
$ref: '#/components/schemas/RoutingOptionsDeprecated'
AudienceDeprecated:
type: object
x-access:
- root
- administrator
properties:
id:
type: integer
description: Unique identifier representing a single audience.
name:
type: string
description: Human-readable description of the audience displayed to administrators.
criteria:
type: array
items:
$ref: '#/components/schemas/InfluencerDataPointCriteriaDeprecated'
NetworkSlug:
type: string
enum:
- blog
- facebook
- facebook_group
- facebook_live
- facebook_reel
- image
- instagram
- instagram_reel
- instagram_story
- linkedin
- pinterest
- snapchat_story
- tiktok
- twitch_stream
- twitter
- video
- youtube_video
- youtube_shorts
BazaarVoiceAppProductDeprecated:
type: object
properties:
reviewProductId:
type: integer
description: Product id assigned by Mavrck
externalBazaarProductId:
type: string
description: Product id assigned by BazaarVoice
DataPointDefinitionDeprecated:
type: object
required:
- name
- multi
- customSet
- type
properties:
id:
type: integer
description: Unique identifier for the data point.
key:
type: string
description: Key for the datapoint
name:
type: string
description: Display name for the data point.
description:
type: string
description: The description of the datapoint definition
x-access:
- root
- administrator
multi:
type: boolean
description: Boolean indicating whether multiple responses are allowed.
customSet:
type: boolean
description: Boolean indicating whether there is a custom set of responses, otherwise it is free-form.
type:
type: string
description: Type of the data point, e.g. string, integer_range.
markUpDescription:
type: string
description: The markup display description for the data point.
communityId:
type: integer
description: The communityId to which this data point definition belongs.
x-access:
- root
createdAt:
type: string
format: date-time
description: Date time data point created.
x-access:
- root
- administrator
updatedAt:
type: string
format: date-time
description: Date time data point updated.
x-access:
- root
- administrator
mergeTag:
type: boolean
description: 1 if the data point should be included as a merge tag, 0 otherwise
archived:
type: boolean
description: 1 if the data point is archived, 0 if it is not
setElements:
$ref: '#/components/schemas/DataPointDefinitionSetElementDeprecated'
membersCompleted:
type: integer
description: The count of members who have completed this data point.
x-access:
- administrator
actionGroups:
type: array
description: An array of live action groups that this datapoint is a part of
x-access:
- administrator
items:
type: object
properties:
id:
type: integer
title:
type: string
DataPointDefinitionSetElementDeprecated:
type: array
items:
type: object
properties:
id:
type: integer
description: Unique identifier for the data point set element.
key:
type: string
displayLabel:
type: string
markUpDisplayLabel:
type: string
ProductDeprecated:
type: object
properties:
id:
type: integer
description: id of the product
title:
type: string
description: title of the product
description:
type: string
description: Description of product
image:
type: string
description: product image url
communityId:
type: string
description: instance to which this product belongs
bazaarVoiceAppProduct:
$ref: '#/components/schemas/BazaarVoiceAppProductDeprecated'
powerReviewsPage:
$ref: '#/components/schemas/PowerReviewsPageDeprecated'
yotpoAppProduct:
$ref: '#/components/schemas/YotpoAppProductDeprecated'
PendingActivationURI:
type: object
properties:
id:
type: integer
ActivationURI:
type: object
required:
- id
properties:
id:
type: integer
description: Unique identifier representing the activation.
incentive:
$ref: '#/components/schemas/IncentiveDeprecated'
points:
type: number
description: The number of points earned after activating.
NetworkName:
type: string
enum:
- Blog
- Facebook
- Facebook Group
- Facebook Live
- Facebook Reel
- Image
- Instagram
- Instagram Reel
- Instagram Story
- LinkedIn
- Pinterest
- Snapchat Story
- TikTok
- Twitch Stream
- Twitter
- Video
- YouTube Video
- YouTube Shorts
PowerReviewsPageDeprecated:
type: object
properties:
id:
type: integer
description: id of the product
reviewProductId:
type: integer
description: the power reviews id
powerReviewsAppId:
type: string
description: the product id
externalPageId:
type: string
description: product image url
PowerReviewsApp:
type: object
items:
$ref: '#/components/schemas/PowerReviewsAppDeprecated'
LinksDeprecated:
type: object
x-access:
- anonymous
- influencer
properties:
normal:
type: string
description: A normal link to an entity.
deep:
type: string
description: A deep link to the entity.
ActionDeprecated:
type: object
properties:
id:
type: string
description: Unique identifier representing a single action.
type:
type: string
description: A key to specify the type of action.
title:
type: string
description: A concise call to action, grabbing the influencer's attention.
label:
type: string
description: Internal label for action.
description:
type: string
description: An elaboration on the title.
image:
type: string
description: An image to associate with the action.
instructions:
type: string
description: Instructions on how to complete the action
linkReference:
type: string
description: Reference to Link
actionGroupId:
type: integer
x-access:
- administrator
- root
- influencer
description: ID of the parent action group.
actionGroupType:
type: string
x-access:
- administrator
- root
description: Type of the parent action group.
actionGroupTitle:
type: string
brandSuitabilityGuidelines:
type:
- 'null'
- string
description: Optional guidelines from the parent action group to customize the brand suitability review for this action's campaign.
ActionGroup:
type: object
properties:
id:
type: integer
description: Unique identifier representing a single action group.
communityId:
type: string
communityName:
type: string
communityImage:
type: string
type:
type: string
mainType:
type: string
description: First action in the group type
name:
type: string
description: Human-readable description of the action group displayed for administrators.
x-access:
- root
- administrator
title:
type: string
description:
type: string
image:
type: string
contentType:
type: string
description: For content action groups, this provides the type of content, which either matches og:image or is derived from internal heuristics.
url:
type: string
description: For content action groups, this contains the url input upon creation.
status:
type: string
description: The state of the action group. One of the set {"LIVE", "PAUSED", "PENDING", "EXPIRED"}.
x-access:
- root
- administrator
startDate:
format: date-time
type: string
description: The scheduled time in which the action group will become available to influencers.
endDate:
format: date-time
type:
- 'null'
- string
description: The scheduled time in which the action group will no longer be available to influencers.
createdAt:
format: date-time
type:
- 'null'
- string
notInCommunity:
type: boolean
x-access:
- root
- administrator
description: Filter this action group if the client specifies channel=community.
isAutoCreated:
type: boolean
isPrimaryReferralActivity:
type: boolean
multipleActivations:
type: boolean
description: Indicates whether this action group can be completed multiple times. Only available for photoChallenge.
campaign:
type: object
x-access:
- root
- administrator
properties:
id:
type: integer
description: Unique identifier representing a single campaign.
name:
type: string
description: Name of campaign.
description:
type: string
description: Name of campaign.
brand:
$ref: '#/components/schemas/BrandDeprecated'
hasActivations:
type: boolean
description: Flag that indicates whether this campaign is associated with any activations.
createdAt:
format: date-time
type: string
description: The date and time that the campaign was created.
audience:
$ref: '#/components/schemas/AudienceDeprecated'
incentive:
$ref: '#/components/schemas/IncentiveDeprecated'
incentives:
items:
$ref: '#/components/schemas/IncentiveDeprecated'
type: array
points:
type: object
properties:
min:
type: integer
max:
type: integer
hasScheduledNotifications:
type: boolean
description: Indicates whether the action group is tied to any scheduled notifications. The audience cannot be modified if this is the case.
listId:
type: integer
listDeliverables:
type: array
items:
$ref: '#/components/schemas/ListDeliverable'
influencerReviewDeliverable:
type: object
properties:
id:
type: integer
count:
type: integer
listId:
type: integer
workflowStatuses:
type: array
items:
$ref: '#/components/schemas/ListCustomStatusDeprecated'
locale:
type: string
description: Formatted according to language codes (https://www.w3schools.com/tags/ref_language_codes.asp)
activatedUsersMetrics:
type: integer
clicksMetrics:
type: integer
engagementsMetrics:
type: integer
impressionsMetrics:
type: integer
conversionsCountMetrics:
type: integer
conversionsValueMetrics:
type: number
posts:
type: integer
engagements:
type: integer
impressions:
type: integer
cpe:
type: number
cpp:
type: number
cpm:
type: number
cpa:
type: number
committedAmount:
type: number
paidAmount:
type: number
readyAmount:
type: number
cost:
type: number
roiValue:
type: number
workflowSummary:
type: object
properties:
accepted:
type: integer
rejected:
type: integer
candidates:
type: integer
applicants:
type: integer
participants:
type: integer
completed:
type: integer
requiredHashtag:
type: string
description: Hashtag for action group (required)
ftcHashtag:
type: string
description: FTC hashtag for an action group.
youtubeHashtag:
type: string
description: YouTube hashtag for an action group.
internalDescription:
type: string
description: Internal description on an action group.
activityBudget:
type:
- 'null'
- number
description: Total budget for all actions under an action group.
numberOfInfluencers:
type:
- 'null'
- integer
description: Target number of influencers for all actions under an action group.
cpeGoal:
type:
- number
- 'null'
description: Cost per engagement goal for a single action group
cpmGoal:
type:
- number
- 'null'
description: Cost per 1000 impressions goal for a single action group
impressionsGoal:
type:
- number
- 'null'
description: Impressions goal for a single action group
engagementsGoal:
type:
- number
- 'null'
description: Engagements goal for a single action group
engagementRateGoal:
type:
- number
- 'null'
description: Engagement rate goal for a single action group
contentDueDate:
type:
- string
- 'null'
description: Due date for content on an action group.
draftDueDate:
type:
- string
- 'null'
description: Due date for drafts on an action group.
conceptDueDate:
type:
- string
- 'null'
description: Due date for concepts on an action group.
primaryNetwork:
type: string
hasPointsEnabled:
type: boolean
shareableReportLink:
type: string
termsOfServiceLink:
type: string
autoAcceptApplicant:
type: boolean
globalUserListDefinitionId:
type:
- integer
- 'null'
ready:
type: number
pending:
type: number
fulfilled:
type: number
brief:
type: string
hideOnIcm:
type: boolean
application:
type: object
properties:
requestBrandedContentPermission:
type: boolean
community:
type: object
properties:
instagramHandle:
type: string
isSetupEnabled:
type: boolean
isCopied:
type: boolean
hideTemplateUpdateCTA:
type: boolean
isLaterCreatorExperienceEnabled:
type: boolean
isMavelyCreatorExperienceEnabled:
type: boolean
budgetReferenceId:
type:
- string
- 'null'
budgetReferenceIdType:
type:
- string
- 'null'
enum:
- IROF
- OPPORTUNITY
- null
brandSuitabilityGuidelines:
type:
- string
- 'null'
publicSummary:
type:
- string
- 'null'
version:
type: integer
description: Version of the action group.
lastPolledAt:
type:
- string
- 'null'
format: date-time
description: The last time the action group was manually polled for updates.
routing:
$ref: '#/components/schemas/RoutingDeprecated'
survey:
type: object
required:
- questions
properties:
id:
type: integer
description: id of form
reviewProductId:
type: integer
product:
$ref: '#/components/schemas/ProductDeprecated'
questions:
type: array
description: Array of form questions
items:
$ref: '#/components/schemas/QuestionDeprecated'
title:
type: string
description:
type: string
url:
type: string
incentivized:
x-access:
- administrator
- root
type: boolean
description: whether the form is incentivized
responses:
type: array
x-access:
- administrator
- root
items:
type: object
properties:
membership:
$ref: '#/components/schemas/MembershipDeprecated'
questionResponses:
type: array
items:
type: object
url:
type: string
description: Url to be visited by influencers.
link:
type: object
properties:
id:
type: integer
name:
type: string
title:
type: string
communityId:
type: string
url:
type: string
shortLink:
type: string
trackingPixelCode:
type: string
conversionId:
type: string
description: Assign a conversion to track conversions resulting from clicks on this link.
domainId:
type: string
domain:
type: string
type:
type: string
numClicks:
type: integer
lastUpdated:
type: string
isDeleted:
type: string
membershipId:
type: string
conversions:
type: integer
conversionsValue:
type: number
providerCode:
type: string
providerName:
type: string
isAffiliate:
type: boolean
destinationUrl:
type: string
description: A user will ultimately be redirected to this url when someone clicks on the link contained in an artifact on a network.
metaInformation:
$ref: '#/components/schemas/MetaInformationDeprecated'
previewContentType:
type: string
description: For content activities, this indicates the type of content to be previewed.
article:
type: object
properties:
html:
type: string
description: Article content to be viewed by influencers.
video:
type: object
properties:
url:
type: string
description: Video to be watched by influencers.
submit:
type: string
description: Type of content for influencers to submit
reviewFormId:
type: integer
description: Review Form Id tied to this action
productId:
type: integer
description: Product Id tied to this action
product:
$ref: '#/components/schemas/ProductDeprecated'
activations:
description: If the user has created any activations for this action, then they are displayed here.
x-access:
- influencer
type: array
items:
$ref: '#/components/schemas/ActivationURI'
pendingActivation:
$ref: '#/components/schemas/PendingActivationURI'
conversion:
$ref: '#/components/schemas/ConversionTagDeprecated'
conversionAssignedAt:
format: date-time
type: string
description: The date time when a conversion tag is assigned to this action.
x-access:
- administrator
- root
brand:
$ref: '#/components/schemas/BrandDeprecated'
points:
type: number
descr
# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mavrck/refs/heads/main/openapi/mavrck-referralprogram-api-openapi.yml