Albertsons Media Collective API

The Albertsons Media Collective API enables advertisers to integrate with Albertsons retail media network for campaign management and performance analytics. The API provides near-real-time access to campaign performance data, allowing advertisers to bring data into their own measurement models for analysis. The developer portal, built on Microsoft Azure API Management, provides API documentation, code samples, and an interactive console for testing.

OpenAPI Specification

albertsons-retail-media-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Albertsons Media Collective API
  description: >-
    The Albertsons Media Collective API enables advertisers to integrate with
    Albertsons retail media network for campaign management and performance
    analytics. The API provides near-real-time access to campaign performance
    data, allowing advertisers to bring data into their own measurement
    models for analysis. Supported via the Albertsons developer portal built
    on Microsoft Azure API Management.
  version: '1.0'
  contact:
    name: Albertsons Media Collective
    url: https://portal-prod.apim.azwestus.stratus.albertsons.com/
  x-generated-from: documentation
servers:
  - url: https://api.albertsons.com
    description: Production API server
tags:
  - name: Audiences
    description: Manage audience targeting segments for retail media campaigns.
  - name: Campaigns
    description: Manage advertising campaigns on the Albertsons Media Collective.
  - name: Performance
    description: Access campaign performance metrics and analytics.
  - name: Reporting
    description: Generate and retrieve performance reports.
paths:
  /campaigns:
    get:
      operationId: listCampaigns
      summary: Albertsons Media Collective List Campaigns
      description: >-
        Retrieves a list of advertising campaigns configured on the
        Albertsons Media Collective platform with status, budget, and
        targeting details.
      tags:
        - Campaigns
      parameters:
        - name: status
          in: query
          description: Filter campaigns by status (active, paused, completed, draft).
          schema:
            type: string
            enum:
              - active
              - paused
              - completed
              - draft
          example: active
        - name: limit
          in: query
          description: Maximum number of campaigns to return.
          schema:
            type: integer
            default: 20
            maximum: 100
          example: 20
        - name: offset
          in: query
          description: Number of campaigns to skip for pagination.
          schema:
            type: integer
            default: 0
          example: 0
      security:
        - bearerAuth: []
      responses:
        '200':
          description: List of campaigns retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignListResponse'
              examples:
                ListCampaigns200Example:
                  summary: Default listCampaigns 200 response
                  x-microcks-default: true
                  value:
                    campaigns:
                      - campaignId: '500123'
                        name: Spring EV Battery Promotion
                        status: active
                        budget: 50000.00
                        startDate: '2026-03-01'
                        endDate: '2026-05-31'
                        impressions: 1250000
                        clicks: 18750
                    total: 1
                    limit: 20
                    offset: 0
        '401':
          description: Unauthorized - invalid or missing bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden - insufficient permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createCampaign
      summary: Albertsons Media Collective Create Campaign
      description: >-
        Creates a new advertising campaign on the Albertsons Media Collective
        platform with specified budget, targeting, and scheduling parameters.
      tags:
        - Campaigns
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCampaignRequest'
            examples:
              CreateCampaignRequestExample:
                summary: Default createCampaign request
                x-microcks-default: true
                value:
                  name: Summer Grocery Promotion
                  budget: 25000.00
                  startDate: '2026-06-01'
                  endDate: '2026-08-31'
                  targetAudienceIds:
                    - aud-001
                    - aud-002
      responses:
        '201':
          description: Campaign created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
              examples:
                CreateCampaign201Example:
                  summary: Default createCampaign 201 response
                  x-microcks-default: true
                  value:
                    campaignId: '500124'
                    name: Summer Grocery Promotion
                    status: draft
                    budget: 25000.00
                    startDate: '2026-06-01'
                    endDate: '2026-08-31'
                    impressions: 0
                    clicks: 0
        '400':
          description: Bad request - invalid campaign parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /campaigns/{campaignId}:
    get:
      operationId: getCampaign
      summary: Albertsons Media Collective Get Campaign
      description: >-
        Retrieves details for a specific advertising campaign by its unique
        identifier, including status, budget utilization, and targeting configuration.
      tags:
        - Campaigns
      parameters:
        - name: campaignId
          in: path
          required: true
          description: Unique identifier of the campaign.
          schema:
            type: string
          example: '500123'
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Campaign details retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
              examples:
                GetCampaign200Example:
                  summary: Default getCampaign 200 response
                  x-microcks-default: true
                  value:
                    campaignId: '500123'
                    name: Spring EV Battery Promotion
                    status: active
                    budget: 50000.00
                    startDate: '2026-03-01'
                    endDate: '2026-05-31'
                    impressions: 1250000
                    clicks: 18750
        '404':
          description: Campaign not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /performance:
    get:
      operationId: listPerformanceMetrics
      summary: Albertsons Media Collective List Performance Metrics
      description: >-
        Retrieves near-real-time performance metrics for active and
        completed advertising campaigns, including impressions, clicks,
        conversions, and return on ad spend (ROAS).
      tags:
        - Performance
      parameters:
        - name: campaignId
          in: query
          description: Filter metrics by campaign identifier.
          schema:
            type: string
          example: '500123'
        - name: startDate
          in: query
          description: Start date for metrics window (ISO 8601 date format).
          schema:
            type: string
            format: date
          example: '2026-03-01'
        - name: endDate
          in: query
          description: End date for metrics window (ISO 8601 date format).
          schema:
            type: string
            format: date
          example: '2026-03-31'
        - name: granularity
          in: query
          description: Time granularity for metrics aggregation.
          schema:
            type: string
            enum:
              - daily
              - weekly
              - monthly
            default: daily
          example: daily
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Performance metrics retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PerformanceMetricsResponse'
              examples:
                ListPerformanceMetrics200Example:
                  summary: Default listPerformanceMetrics 200 response
                  x-microcks-default: true
                  value:
                    metrics:
                      - date: '2026-03-15'
                        campaignId: '500123'
                        impressions: 45000
                        clicks: 675
                        conversions: 34
                        spend: 1250.00
                        roas: 4.2
                        clickThroughRate: 0.015
                    total: 1
        '400':
          description: Bad request - invalid date range or parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /audiences:
    get:
      operationId: listAudiences
      summary: Albertsons Media Collective List Audiences
      description: >-
        Retrieves a list of audience segments available for campaign
        targeting on the Albertsons Media Collective, based on shopper
        purchase behavior and demographic data.
      tags:
        - Audiences
      parameters:
        - name: category
          in: query
          description: Filter audiences by product category.
          schema:
            type: string
          example: grocery
        - name: limit
          in: query
          description: Maximum number of audience segments to return.
          schema:
            type: integer
            default: 20
            maximum: 100
          example: 20
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Audience segments retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AudienceListResponse'
              examples:
                ListAudiences200Example:
                  summary: Default listAudiences 200 response
                  x-microcks-default: true
                  value:
                    audiences:
                      - audienceId: aud-001
                        name: Organic Food Buyers
                        description: Shoppers with high organic product purchase frequency
                        size: 2500000
                        category: grocery
                    total: 1
                    limit: 20
                    offset: 0
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /reports:
    post:
      operationId: generateReport
      summary: Albertsons Media Collective Generate Report
      description: >-
        Generates a custom performance report for advertising campaigns
        with specified dimensions, metrics, and date ranges for export
        to external analytics dashboards.
      tags:
        - Reporting
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportRequest'
            examples:
              GenerateReportRequestExample:
                summary: Default generateReport request
                x-microcks-default: true
                value:
                  campaignIds:
                    - '500123'
                  startDate: '2026-03-01'
                  endDate: '2026-03-31'
                  dimensions:
                    - date
                    - campaign
                  metrics:
                    - impressions
                    - clicks
                    - roas
                  format: json
      responses:
        '200':
          description: Report generated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportResponse'
              examples:
                GenerateReport200Example:
                  summary: Default generateReport 200 response
                  x-microcks-default: true
                  value:
                    reportId: rpt-abc123
                    status: completed
                    createdAt: '2026-04-19T10:30:00Z'
                    downloadUrl: https://api.albertsons.com/reports/rpt-abc123/download
        '400':
          description: Bad request - invalid report parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication via Azure AD OAuth2.
  schemas:
    Campaign:
      type: object
      title: Campaign
      description: An advertising campaign on the Albertsons Media Collective platform.
      properties:
        campaignId:
          type: string
          description: Unique identifier of the campaign.
          example: '500123'
        name:
          type: string
          description: Display name of the campaign.
          example: Spring Grocery Promotion
        status:
          type: string
          enum:
            - active
            - paused
            - completed
            - draft
          description: Current status of the campaign.
          example: active
        budget:
          type: number
          format: double
          description: Total budget allocated to the campaign in USD.
          example: 50000.00
        startDate:
          type: string
          format: date
          description: Campaign start date in ISO 8601 format.
          example: '2026-03-01'
        endDate:
          type: string
          format: date
          description: Campaign end date in ISO 8601 format.
          example: '2026-05-31'
        impressions:
          type: integer
          description: Total impressions delivered for the campaign.
          example: 1250000
        clicks:
          type: integer
          description: Total clicks recorded for the campaign.
          example: 18750
    CampaignListResponse:
      type: object
      title: Campaign List Response
      description: Paginated list of campaigns.
      properties:
        campaigns:
          type: array
          items:
            $ref: '#/components/schemas/Campaign'
          description: Array of campaign objects.
        total:
          type: integer
          description: Total number of campaigns matching the query.
          example: 42
        limit:
          type: integer
          description: Maximum number of results returned.
          example: 20
        offset:
          type: integer
          description: Number of results skipped.
          example: 0
    CreateCampaignRequest:
      type: object
      title: Create Campaign Request
      description: Request body for creating a new advertising campaign.
      required:
        - name
        - budget
        - startDate
        - endDate
      properties:
        name:
          type: string
          description: Display name for the new campaign.
          example: Summer Grocery Promotion
        budget:
          type: number
          format: double
          description: Total budget allocated to the campaign in USD.
          example: 25000.00
        startDate:
          type: string
          format: date
          description: Campaign start date (ISO 8601).
          example: '2026-06-01'
        endDate:
          type: string
          format: date
          description: Campaign end date (ISO 8601).
          example: '2026-08-31'
        targetAudienceIds:
          type: array
          items:
            type: string
          description: List of audience segment IDs for targeting.
          example:
            - aud-001
            - aud-002
    PerformanceMetric:
      type: object
      title: Performance Metric
      description: Performance metrics for an advertising campaign at a given time period.
      properties:
        date:
          type: string
          format: date
          description: Date of the metric data point.
          example: '2026-03-15'
        campaignId:
          type: string
          description: Campaign identifier associated with these metrics.
          example: '500123'
        impressions:
          type: integer
          description: Number of ad impressions served.
          example: 45000
        clicks:
          type: integer
          description: Number of ad clicks recorded.
          example: 675
        conversions:
          type: integer
          description: Number of conversions attributed to the campaign.
          example: 34
        spend:
          type: number
          format: double
          description: Total ad spend in USD for the period.
          example: 1250.00
        roas:
          type: number
          format: double
          description: Return on ad spend ratio.
          example: 4.2
        clickThroughRate:
          type: number
          format: double
          description: Click-through rate as a decimal (clicks / impressions).
          example: 0.015
    PerformanceMetricsResponse:
      type: object
      title: Performance Metrics Response
      description: Collection of performance metric data points.
      properties:
        metrics:
          type: array
          items:
            $ref: '#/components/schemas/PerformanceMetric'
          description: Array of performance metric data points.
        total:
          type: integer
          description: Total number of metric records returned.
          example: 31
    Audience:
      type: object
      title: Audience
      description: An audience targeting segment based on shopper behavior.
      properties:
        audienceId:
          type: string
          description: Unique identifier of the audience segment.
          example: aud-001
        name:
          type: string
          description: Display name of the audience segment.
          example: Organic Food Buyers
        description:
          type: string
          description: Description of the audience segment criteria.
          example: Shoppers with high organic product purchase frequency
        size:
          type: integer
          description: Approximate number of shoppers in the audience segment.
          example: 2500000
        category:
          type: string
          description: Product category associated with the audience.
          example: grocery
    AudienceListResponse:
      type: object
      title: Audience List Response
      description: Paginated list of audience segments.
      properties:
        audiences:
          type: array
          items:
            $ref: '#/components/schemas/Audience'
          description: Array of audience segment objects.
        total:
          type: integer
          description: Total number of audience segments available.
          example: 150
        limit:
          type: integer
          description: Maximum number of results returned.
          example: 20
        offset:
          type: integer
          description: Number of results skipped.
          example: 0
    ReportRequest:
      type: object
      title: Report Request
      description: Request body for generating a custom performance report.
      required:
        - startDate
        - endDate
      properties:
        campaignIds:
          type: array
          items:
            type: string
          description: List of campaign IDs to include in the report. Empty returns all.
          example:
            - '500123'
        startDate:
          type: string
          format: date
          description: Start date for the report period (ISO 8601).
          example: '2026-03-01'
        endDate:
          type: string
          format: date
          description: End date for the report period (ISO 8601).
          example: '2026-03-31'
        dimensions:
          type: array
          items:
            type: string
          description: Dimensions to group report data by.
          example:
            - date
            - campaign
        metrics:
          type: array
          items:
            type: string
          description: Metrics to include in the report.
          example:
            - impressions
            - clicks
            - roas
        format:
          type: string
          enum:
            - json
            - csv
          description: Output format for the report.
          example: json
    ReportResponse:
      type: object
      title: Report Response
      description: Response containing the generated report details.
      properties:
        reportId:
          type: string
          description: Unique identifier for the generated report.
          example: rpt-abc123
        status:
          type: string
          enum:
            - pending
            - processing
            - completed
            - failed
          description: Current status of the report generation.
          example: completed
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the report was created.
          example: '2026-04-19T10:30:00Z'
        downloadUrl:
          type: string
          format: uri
          description: URL to download the completed report.
          example: https://api.albertsons.com/reports/rpt-abc123/download
    ErrorResponse:
      type: object
      title: Error Response
      description: Standard error response object.
      properties:
        error:
          type: string
          description: Error code identifier.
          example: UNAUTHORIZED
        message:
          type: string
          description: Human-readable error message.
          example: Invalid or missing bearer token.
        statusCode:
          type: integer
          description: HTTP status code.
          example: 401