Mavrck Notifications API

The Notifications API from Mavrck — 4 operation(s) for notifications.

OpenAPI Specification

mavrck-notifications-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 Notifications API
servers:
- url: http://app.splashscore.com/v1
- url: https://app.splashscore.com/v1
security:
- apiKey: []
tags:
- name: Notifications
paths:
  /scheduled-notifications:
    get:
      x-handler: /influencer_notifications/schedule_notification_controller.js
      operationId: getScheduledNotifications
      summary: Retrieve all scheduled notifications in a list format.
      x-access:
      - administrator
      parameters:
      - name: notificationDefinitionKeys
        in: query
        description: Select only scheduled notifications associated with these specified notification definition keys.
        required: false
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/orderByParam'
      - name: sent
        in: query
        schema:
          type: boolean
      - name: beforeSendTime
        in: query
        description: Select only notifications scheduled to be sent prior to this date-time.
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: An array of scheduled notifications
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    $ref: '#/components/schemas/ResponseMetadata'
                  data:
                    items:
                      $ref: '#/components/schemas/ScheduledNotification'
                    type: array
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Session expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Invalid API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Notifications
    post:
      x-handler: influencer_notifications/schedule_notification_controller.js
      operationId: createScheduledNotification
      summary: Create a scheduled notification
      x-access:
      - administrator
      responses:
        '200':
          description: URI for scheduled notification
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Session expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Invalid API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Resource conflict.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Notifications
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - notificationDefinitionKey
              - sendTime
              properties:
                resourceId:
                  description: Identifier of the resource contexual to the the notification (e.g. ActionGroup id)
                  type: integer
                sendTime:
                  type: string
                  format: date-time
                  description: time to send notification
                notificationDefinitionKey:
                  description: notification definition key
                  type: string
        required: true
  /scheduled-notifications/{id}:
    get:
      x-handler: influencer_notifications/schedule_notification_controller.js
      operationId: getScheduledNotification
      summary: Retrieve a single scheduled notification.
      x-access:
      - administrator
      tags:
      - Notifications
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: A scheduled notification.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledNotification'
        '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: Scheduled notification not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    put:
      x-handler: influencer_notifications/schedule_notification_controller.js
      operationId: updateScheduledNotification
      summary: Update a scheduled notification. Notifications that have already been sent cannot be updated.
      x-access:
      - administrator
      parameters:
      - name: id
        in: path
        description: Id of scheduled notification
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Empty object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyObject'
        '400':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Session expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Invalid API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Scheduled notification not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Resource conflict.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Notifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledNotification'
        required: true
    delete:
      x-handler: influencer_notifications/schedule_notification_controller.js
      operationId: deleteScheduledNotification
      summary: Delete the specified scheduled notification. Notifications that have already been sent cannot be deleted.
      x-access:
      - administrator
      parameters:
      - name: id
        in: path
        description: Id of scheduled notification
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Empty object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyObject'
        '400':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Session expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Invalid API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Scheduled notification not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Notifications
  /scheduled-notifications/{id}/approval:
    put:
      x-handler: influencer_notifications/schedule_notification_approval_controller.js
      operationId: approveScheduledNotification
      summary: Approve a scheduled notification to be sent.
      x-access:
      - administrator
      parameters:
      - name: id
        in: path
        description: Id of scheduled notification
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Empty object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyObject'
        '400':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Session expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Invalid API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Scheduled notification not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Notifications
  /scheduled-notifications/{id}/unapproval:
    put:
      x-handler: influencer_notifications/schedule_notification_unapproval_controller.js
      operationId: unapproveScheduledNotification
      summary: Unapprove a scheduled notification to not be sent.
      x-access:
      - administrator
      parameters:
      - name: id
        in: path
        description: Id of scheduled notification
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Empty object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyObject'
        '400':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Session expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Invalid API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Scheduled notification not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Notifications
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.
    ResponseMetadata:
      properties:
        limit:
          type: number
          format: double
        offset:
          type: number
          format: double
        status:
          type: string
          enum:
          - failure
          - success
        totalCount:
          type: number
          format: double
      type: object
      additionalProperties: false
    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
                l

# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mavrck/refs/heads/main/openapi/mavrck-notifications-api-openapi.yml