Mavrck Entitlements API

The Entitlements API from Mavrck — 2 operation(s) for entitlements.

OpenAPI Specification

mavrck-entitlements-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 Entitlements API
servers:
- url: http://app.splashscore.com/v1
- url: https://app.splashscore.com/v1
security:
- apiKey: []
tags:
- name: Entitlements
paths:
  /v1/entitlements:
    get:
      operationId: getEntitlements
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entitlements'
        '400':
          description: Missing Parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateErrorJSON'
        '403':
          description: Access forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: The resource does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
      tags:
      - Entitlements
      parameters:
      - in: query
        name: featureIds
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
    put:
      operationId: updateEntitlements
      responses:
        '200':
          description: OK
        '400':
          description: Missing Parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateErrorJSON'
        '403':
          description: Access forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: The resource does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
      tags:
      - Entitlements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEntitlementFields'
        required: true
  /v1/entitlements/bulk:
    put:
      operationId: bulkUpdateEntitlements
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpdateEntitlementsResponse'
        '400':
          description: Missing Parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateErrorJSON'
        '403':
          description: Access forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: The resource does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
      description: 'Bulk enable/disable a feature flag for many communities in a single operation.

        Replaces the frontend pattern of firing N sequential PUT /v1/entitlements calls.


        Accepts three targeting modes (see BulkUpdateEntitlementsRequest):

        - allCommunities: updates every community + flips features.default_state

        - groups: backend resolves to matching community IDs (e.g. all omni instances)

        - communityIds: explicit list'
      tags:
      - Entitlements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkUpdateEntitlementsRequest'
        required: true
components:
  schemas:
    EntitlementGroup:
      type: string
      enum:
      - omni
      - mavely
      - private_label
      description: Predefined instance groups that the backend can resolve without the frontend sending individual IDs.
    FeatureId:
      type: string
      enum:
      - ''
      - add_creator_non_root
      - add_to_creators_v2
      - ai_brand_suitability
      - ai_brand_suitability_bulk_reports
      - ai_brand_suitability_v02
      - ai_brand_suitability_v03
      - ai_brand_suitability_internal
      - ai_creator_match
      - amazon_mavely_integration
      - amplify_content
      - audience_predominant_city_filter
      - background_content_export
      - bazaarvoice_ratings_only
      - brand_safety
      - budget_reference_id_required
      - budget_reference_id_required_fulfillment
      - campaign_application_embed
      - campaign_subscription
      - community
      - concepts_for_creators
      - content_module
      - create_content
      - creator_refresh_non_root
      - creator_tax_collection
      - custom_analytics_reporting
      - custom_workflow_stages
      - export_email
      - facebook_cds_v2
      - facebook_creator_api
      - fraud_risk
      - funds_tracking
      - global_influencer_performance_data_2
      - global_influencer_performance_data
      - ig_paid_media
      - incentive_advisor_v2
      - influence_two_admin
      - influence_two_campaign_content
      - influence_two_campaign_manage
      - influence_two_campaign_performance
      - influence_two_campaign_search
      - influence_two_campaign_setup
      - influence_two_campaign_workflow
      - influence_two_campaigns
      - influence_two_content
      - influence_two_dashboard
      - influence_two_incentives
      - influence_two_influencers
      - influence_two_messages
      - influence_two_reports
      - influence_two_search_summary
      - influence_two_search
      - influence_two_settings
      - influence_two
      - instagram_cds_v2
      - instance_branding
      - keyword_search_chips
      - later_360_reports_shareable_link
      - later_cta
      - mavely_campaign_experience
      - mavely_integration
      - mavely_payments
      - messages_scheduling
      - meta_business_integration
      - meta_post_partnerships
      - payments_custom_reports
      - paypal_payments
      - pinterest_cds_v2
      - public_campaign_summary
      - react_migration
      - remove_creator
      - reports_module
      - reports_audience_demographics
      - search_account_type_dropdown
      - search_creator_card_grid_view
      - search_filter_redesign
      - search_later_influencers
      - search_non_registered
      - search_query_tuning
      - search_refactor_query_builder
      - search_relevance_tuning
      - search_onsocial_relevance
      - self_serve_users
      - shareable_links
      - shopify_discount_creation
      - show_search_count
      - stripe_international_payments
      - stripe_payments
      - submit_review
      - submit_survey
      - threaded_influencer_feedback
      - tipalti_payments_usd
      - tiktok_paid_media
      - use_new_opensearch_index
      - webhook_setup
      - ytbc_deal_reporting_enabled
    BulkUpdateEntitlementsRequest:
      properties:
        communityIds:
          items:
            type: string
          type: array
        groups:
          items:
            $ref: '#/components/schemas/EntitlementGroup'
          type: array
        allCommunities:
          type: boolean
        featureEnabled:
          type: boolean
        featureId:
          $ref: '#/components/schemas/FeatureId'
      required:
      - featureEnabled
      - featureId
      type: object
      description: 'Request body for PUT /v1/entitlements/bulk.


        Exactly one targeting strategy is required:

        - `allCommunities: true` — updates every community (and flips features.default_state).

        - `groups` — backend resolves to matching community IDs (prefix match or hardcoded list).

        - `communityIds` — explicit list of community IDs.


        `groups` and `communityIds` can be combined (merged with OR).

        `allCommunities` is exclusive and ignores the other two.'
    BulkUpdateEntitlementsResponse:
      properties:
        paymentProvisioning:
          properties:
            failed:
              type: number
              format: double
            succeeded:
              type: number
              format: double
            attempted:
              type: number
              format: double
          required:
          - failed
          - succeeded
          - attempted
          type: object
          description: Present when enabling stripe_payments or mavely_payments triggers payment provider app provisioning.
        cascaded:
          properties:
            affectedCount:
              type: number
              format: double
            featureEnabled:
              type: boolean
            featureId:
              $ref: '#/components/schemas/FeatureId'
          required:
          - affectedCount
          - featureEnabled
          - featureId
          type: object
          description: Present when the operation triggered a dependent feature flag cascade.
        affectedCount:
          type: number
          format: double
          description: Number of feature_toggles rows updated by the primary operation.
      required:
      - affectedCount
      type: object
      description: 'Response from PUT /v1/entitlements/bulk.


        Always includes the count of feature_toggles rows updated. Optionally includes

        cascade info (bazaarvoice/submit_review coupling) and payment provisioning results

        (stripe/mavely) when those side-effects are triggered.'
    Entitlement:
      properties:
        id:
          type: number
          format: double
        featureId:
          $ref: '#/components/schemas/FeatureId'
        communityId:
          type: string
        featureEnabled:
          type: boolean
        label:
          type: string
      required:
      - id
      - featureId
      - communityId
      - featureEnabled
      type: object
      additionalProperties: false
    UpdateEntitlementFields:
      properties:
        communityId:
          type: string
        label:
          type: string
        featureId:
          $ref: '#/components/schemas/FeatureId'
        featureEnabled:
          type: boolean
      required:
      - featureId
      - featureEnabled
      type: object
    ForbiddenError:
      properties:
        message:
          type: string
          enum:
          - Access Forbidden
        details:
          properties: {}
          additionalProperties:
            additionalProperties: true
          type: object
      required:
      - message
      - details
      type: object
      additionalProperties: false
    ServerError:
      properties:
        message:
          type: string
          enum:
          - Server Error
        details:
          properties: {}
          additionalProperties:
            additionalProperties: true
          type: object
      required:
      - message
      - details
      type: object
      additionalProperties: false
    NotFoundError:
      properties:
        message:
          type: string
          enum:
          - Resource Not Found
        details:
          properties: {}
          additionalProperties:
            additionalProperties: true
          type: object
      required:
      - message
      - details
      type: object
      additionalProperties: false
    Entitlements:
      properties:
        data:
          items:
            $ref: '#/components/schemas/Entitlement'
          type: array
      required:
      - data
      type: object
    ValidateErrorJSON:
      properties:
        message:
          type: string
          enum:
          - Validation failed
        details:
          properties: {}
          additionalProperties:
            additionalProperties: true
          type: object
      required:
      - message
      - details
      type: object
      additionalProperties: false
  securitySchemes:
    apiKey:
      type: apiKey
      name: api-key
      in: header