Mavrck Referral Program API

The ReferralProgram API from Mavrck — 1 operation(s) for referralprogram.

OpenAPI Specification

mavrck-referralprogram-api-openapi.yml Raw ↑
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