> ## Documentation Index
> Fetch the complete documentation index at: https://docs-consumer.voucher.allride.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get the analytics overview

> Returns key figures for a date range (default: this month so far) and the previous period of the same length. The range spans at most 366 days. Statistics use your partner time zone and are eventually consistent (up to 2 minutes). See [Analytics](/consumer/analytics).

**Required permissions:** `view-consumer-analytics` · **API keys:** allowed



## OpenAPI

````yaml /openapi/consumer.v1.json get /consumer/v1/analytics/overview
openapi: 3.1.1
info:
  title: AllRide Voucher Consumer API
  version: 1.0.0
  description: >-
    The Consumer API (`/consumer/v1`) and the shared Workspace API
    (`/partner/v1`) of the AllRide Voucher Platform for Partner Consumers:
    browse your catalog, redeem vouchers, manage redemption entities and
    Redemption Links, configure email OTP, read analytics and billing, and
    administer your workspace. Start with the
    [quickstart](https://docs-consumer.voucher.allride.io/quickstart). This
    document lists the sandbox server; production uses
    `https://api.voucher.allride.io`.
  contact:
    name: AllRide
    url: https://allride.io
servers:
  - url: https://api.voucher-staging.allride.io
    description: Sandbox
security:
  - apiKey: []
tags:
  - name: Catalog
    description: >-
      Browse the providers, voucher sets and categories AllRide makes available
      to you.
  - name: Catalog settings
    description: >-
      Turn providers and voucher sets on or off for your channels and keep your
      own settings and references.
  - name: Redemptions
    description: >-
      Redeem vouchers (single or batch), read issued codes and links, and void
      redemptions.
  - name: Redemption entities
    description: Your end customers or accounts, identified by your own opaque `refId`.
  - name: Redemption links
    description: >-
      Shareable links that let an end customer redeem on an AllRide-hosted
      landing page.
  - name: Email (SMTP and templates)
    description: >-
      Email OTP Gate settings, your SMTP configuration and the OTP email
      templates.
  - name: Analytics
    description: Redemption, entity and link statistics in your partner time zone.
  - name: Billing
    description: >-
      Billing account, contacts, payment methods, invoices (including
      Stornorechnungen), payments, usage and balance.
  - name: Pricing
    description: Your resolved Price Terms per voucher set and your Price Acceptances.
  - name: Partner
    description: >-
      Your partner record, settings, principal introspection, API access and the
      developer reference.
  - name: Members
    description: Users of your partner and their invitations.
  - name: Groups
    description: Groups, their permissions and the permission catalog.
  - name: API keys
    description: API keys of your partner (dashboard only).
  - name: Webhook endpoints
    description: Webhook endpoints, their secrets and the event types you can subscribe to.
  - name: Webhook deliveries
    description: The webhook delivery log and replays.
  - name: IP allowlist
    description: Source address ranges allowed to call the API.
  - name: Custom domains
    description: Your own host names for Redemption Link landing pages.
  - name: Workspace branding
    description: Workspace Branding (dashboards and landing pages) and brand assets.
  - name: Single sign-on
    description: SAML and OIDC connections for your users.
  - name: Audit log
    description: Every change made in your partner, by whom and when.
paths:
  /consumer/v1/analytics/overview:
    get:
      tags:
        - Analytics
      summary: Get the analytics overview
      description: >-
        Returns key figures for a date range (default: this month so far) and
        the previous period of the same length. The range spans at most 366
        days. Statistics use your partner time zone and are eventually
        consistent (up to 2 minutes). See [Analytics](/consumer/analytics).


        **Required permissions:** `view-consumer-analytics` · **API keys:**
        allowed
      operationId: consumer.analytics.overview
      parameters:
        - name: from
          in: query
          required: false
          description: 'First day (default: first day of the current month).'
          schema:
            type: string
            format: date
        - name: to
          in: query
          required: false
          description: 'Last day, inclusive (default: today); at most 366 days after `from`.'
          schema:
            type: string
            format: date
      responses:
        '200':
          description: OK
          headers:
            X-Request-Id:
              $ref: '#/components/headers/XRequestId'
            Idempotency-Key-Ignored:
              $ref: '#/components/headers/IdempotencyKeyIgnored'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedemptionOverviewResponse'
              examples:
                default:
                  summary: OK
                  value:
                    data:
                      resource: redemption-overview
                      from: '2026-10-01'
                      to: '2026-10-22'
                      timezone: Europe/Berlin
                      asOf: '2026-10-22T08:14:00Z'
                      redemptions:
                        redeemedCount: 48211
                        voidedCount: 112
                        netCount: 48099
                        voidRatePercent: 0.23
                      previousPeriod:
                        from: '2026-09-09'
                        to: '2026-09-30'
                        redeemedCount: 44102
                        voidedCount: 97
                        netCount: 44005
                        netChangePercent: 9.3
                      uniqueEntities: 40977
                      newEntities: 3120
                      faceValue:
                        value: 24105500
                        label: €241,055.00
                      byChannel:
                        - channel: api
                          redeemedCount: 47020
                        - channel: dashboard
                          redeemedCount: 191
                        - channel: redemption-link
                          redeemedCount: 1000
                      topProviders:
                        - providerPartnerId: 1030
                          providerDisplayName:
                            de: Acme Scooters
                            en: Acme Scooters
                          redeemedCount: 30117
                        - providerPartnerId: 1056
                          providerDisplayName:
                            de: Acme Bikes
                            en: Acme Bikes
                          redeemedCount: 18094
                      links:
                        activeCount: 12
                        visits: 3400
                        otpRequested: 1500
                        otpVerified: 1320
                        redemptions: 1000
                        conversionRatePercent: 29.41
                      catalog:
                        visibleProviders: 14
                        enabledProviders: 9
                        visibleVoucherSets: 31
                        enabledVoucherSets: 20
                        upcomingVoucherSets: 3
                        deactivationScheduledVoucherSets: 2
                        lowStockEnabledVoucherSets: 1
                        depletedEnabledVoucherSets: 0
                      _links:
                        self:
                          href: >-
                            https://api.voucher.allride.io/consumer/v1/analytics/overview?from=2026-10-01&to=2026-10-22
                          type: application/json
        '400':
          description: Bad Request
          x-error-codes:
            - data-failed-validation
          headers:
            X-Request-Id:
              $ref: '#/components/headers/XRequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                data-failed-validation:
                  summary: Data failed validation
                  value:
                    errors:
                      - message: >-
                          One or more properties or parameters are invalid; each
                          is listed in `more.validationErrors` with its property
                          path and violated constraint. Unknown properties and
                          query parameters are refused as well.
                        statusCode: 400
                        errorCode: data-failed-validation
                        more:
                          validationErrors:
                            - property: name
                              constraint: required
                              message:
                                en: This property is required.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  headers:
    XRequestId:
      description: Request id (yours if you sent a valid `X-Request-Id`, else generated).
      schema:
        type: string
    IdempotencyKeyIgnored:
      description: '`true` when you sent `Idempotency-Key` on a method that ignores it.'
      schema:
        type: string
        enum:
          - 'true'
    RetryAfter:
      description: Seconds to wait before retrying or polling.
      schema:
        type: integer
  schemas:
    RedemptionOverviewResponse:
      type: object
      description: Single-object envelope around a `RedemptionOverview`.
      properties:
        data:
          $ref: '#/components/schemas/RedemptionOverview'
      required:
        - data
      additionalProperties: false
    ErrorResponse:
      type: object
      description: >-
        Error body of every 4xx and 5xx response (`Content-Type:
        application/json`).
      properties:
        errors:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ErrorEntry'
          description: The errors; in v1 always exactly one.
      required:
        - errors
      additionalProperties: false
    RedemptionOverview:
      type: object
      description: Key figures of a period.
      properties:
        resource:
          type: string
          enum:
            - redemption-overview
          description: Always `redemption-overview`.
        from:
          $ref: '#/components/schemas/LocalDate'
          description: First day (inclusive).
        to:
          $ref: '#/components/schemas/LocalDate'
          description: Last day (inclusive).
        timezone:
          type: string
          description: Your partner time zone.
        asOf:
          $ref: '#/components/schemas/Instant'
          description: Freshness of the figures.
        redemptions:
          type: object
          properties:
            redeemedCount:
              type: integer
              description: Redemptions.
            voidedCount:
              type: integer
              description: Voids.
            netCount:
              type: integer
              description: Redeemed minus voided.
            voidRatePercent:
              type:
                - number
                - 'null'
              description: voidedCount / redeemedCount × 100 (2 decimals).
          required:
            - redeemedCount
            - voidedCount
            - netCount
            - voidRatePercent
          additionalProperties: false
          description: Totals of the period.
        previousPeriod:
          type: object
          properties:
            from:
              $ref: '#/components/schemas/LocalDate'
              description: First day.
            to:
              $ref: '#/components/schemas/LocalDate'
              description: Last day.
            redeemedCount:
              type: integer
              description: Redemptions.
            voidedCount:
              type: integer
              description: Voids.
            netCount:
              type: integer
              description: Net.
            netChangePercent:
              type:
                - number
                - 'null'
              description: Change of `netCount`.
          required:
            - from
            - to
            - redeemedCount
            - voidedCount
            - netCount
            - netChangePercent
          additionalProperties: false
          description: The same number of days before `from`.
        uniqueEntities:
          type: integer
          description: Distinct redemption entities that redeemed.
        newEntities:
          type: integer
          description: Entities created in the period.
        faceValue:
          $ref: '#/components/schemas/Money'
          description: Face value of the redeemed vouchers in euros.
        byChannel:
          type: array
          items:
            type: object
            properties:
              channel:
                type: string
                enum:
                  - api
                  - dashboard
                  - redemption-link
                  - import
                description: 'Channel. Treat as an open set: new values may be added.'
              redeemedCount:
                type: integer
                description: Redemptions.
            required:
              - channel
              - redeemedCount
            additionalProperties: false
          description: Redemptions per channel.
        topProviders:
          type: array
          items:
            type: object
            properties:
              providerPartnerId:
                $ref: '#/components/schemas/ULong'
                description: Provider.
              providerDisplayName:
                $ref: '#/components/schemas/I18nText'
                description: Provider name.
              redeemedCount:
                type: integer
                description: Redemptions.
            required:
              - providerPartnerId
              - providerDisplayName
              - redeemedCount
            additionalProperties: false
          description: Top 5 providers.
        links:
          type: object
          properties:
            activeCount:
              type: integer
              description: Active links.
            visits:
              type: integer
              description: Landing visits.
            otpRequested:
              type: integer
              description: OTP requests.
            otpVerified:
              type: integer
              description: OTP verifications.
            redemptions:
              type: integer
              description: Redemptions through links.
            conversionRatePercent:
              type:
                - number
                - 'null'
              description: redemptions / visits × 100.
          required:
            - activeCount
            - visits
            - otpRequested
            - otpVerified
            - redemptions
            - conversionRatePercent
          additionalProperties: false
          description: Redemption Link funnel.
        catalog:
          type: object
          properties:
            visibleProviders:
              type: integer
              description: Visible providers.
            enabledProviders:
              type: integer
              description: Enabled providers.
            visibleVoucherSets:
              type: integer
              description: Visible sets.
            enabledVoucherSets:
              type: integer
              description: Enabled sets (both toggles on).
            upcomingVoucherSets:
              type: integer
              description: Upcoming sets.
            deactivationScheduledVoucherSets:
              type: integer
              description: Sets scheduled for deactivation.
            lowStockEnabledVoucherSets:
              type: integer
              description: Enabled sets with low stock.
            depletedEnabledVoucherSets:
              type: integer
              description: Enabled depleted sets.
          required:
            - visibleProviders
            - enabledProviders
            - visibleVoucherSets
            - enabledVoucherSets
            - upcomingVoucherSets
            - deactivationScheduledVoucherSets
            - lowStockEnabledVoucherSets
            - depletedEnabledVoucherSets
          additionalProperties: false
          description: Current catalog coverage.
        _links:
          type: object
          properties:
            self:
              $ref: '#/components/schemas/Link'
              description: This overview.
          required:
            - self
          additionalProperties: false
          description: Links.
      required:
        - resource
        - from
        - to
        - timezone
        - asOf
        - redemptions
        - previousPeriod
        - uniqueEntities
        - newEntities
        - faceValue
        - byChannel
        - topProviders
        - links
        - catalog
        - _links
      additionalProperties: false
    ErrorEntry:
      type: object
      description: One error. Branch on `errorCode`; ignore members you do not know.
      properties:
        message:
          type: string
          description: >-
            Human-readable message. For 5xx errors it is always the generic
            `Something went wrong on our side`.
        statusCode:
          type: integer
          description: The HTTP status.
        errorCode:
          type: string
          description: Stable kebab-case error code, listed in the error catalog.
        requestId:
          type: string
          description: >-
            5xx only: the request id (also in the `X-Request-Id` header). Quote
            it when you contact support.
        more:
          type: object
          additionalProperties: true
          description: >-
            Additional details for some codes, for example `validationErrors`
            (array of `ValidationError`) or `requiredPermissions`. The members
            per code are listed in the error catalog.
          properties:
            validationErrors:
              type: array
              items:
                $ref: '#/components/schemas/ValidationError'
              description: Invalid properties or parameters.
      required:
        - message
        - statusCode
        - errorCode
      additionalProperties: true
    LocalDate:
      type: string
      format: date
      description: Calendar date `YYYY-MM-DD`.
      example: '2026-11-01'
    Instant:
      type: string
      format: date-time
      description: >-
        RFC 3339 timestamp in UTC with `Z`, millisecond precision, truncated: no
        fraction when the milliseconds are zero (`2026-11-01T00:00:00Z`),
        otherwise exactly three digits (`2026-10-21T17:42:10.120Z`). Inputs must
        carry an offset and are normalised to UTC.
      example: '2026-11-01T00:00:00Z'
    Money:
      type: object
      description: >-
        An amount in euros: `value` in cent (2900 = €29.00). All amounts are in
        euros (EUR). In requests send `value`; a `label` you send is ignored.
      properties:
        value:
          type: integer
          minimum: 0
          description: Amount in cent (2900 = €29.00).
        label:
          type: string
          readOnly: true
          description: >-
            Server-formatted amount in the response locale (`€5.00` in English,
            `5,00 €` in German).
      required:
        - value
        - label
      additionalProperties: false
      example:
        value: 2900
        label: 29,00 €
    ULong:
      type: integer
      format: uint64
      minimum: 0
      maximum: 18446744073709552000
      x-bigint: true
      description: >-
        Unsigned 64-bit integer (ids and large counters). May exceed 2^53; parse
        with a BigInt-safe JSON parser in JavaScript.
    I18nText:
      type: object
      description: >-
        Localised text: an object keyed by locale (`de`, `en`). Responses always
        return the full map; pick the locale on your side. Requests must include
        your partner's default locale.
      properties:
        de:
          type: string
          description: German text.
        en:
          type: string
          description: English text.
      additionalProperties: false
      example:
        de: 5 € Fahrguthaben
        en: €5 ride credit
    Link:
      type: object
      description: A link to a related resource.
      properties:
        href:
          type: string
          format: uri
          description: Absolute URL.
        type:
          type: string
          description: Media type of the target, usually `application/json`.
      required:
        - href
        - type
      additionalProperties: false
    ValidationError:
      type: object
      description: >-
        One invalid property or parameter of a `data-failed-validation` error
        (also used for item failures of batch operations and content checks).
      properties:
        property:
          type: string
          description: >-
            Path of the offending property in your request body
            (`items[2].quantity`), or the name of the query parameter, path
            parameter or header.
        constraint:
          type: string
          description: >-
            The violated rule as a kebab-case item code, for example `required`,
            `too-long`, `invalid-id`, `unknown-field`. See the validation item
            codes in the error catalog.
        params:
          type: object
          additionalProperties: true
          description: >-
            Parameters of the constraint, for example `min` and `max` for
            `invalid-page` or `allowed` for `invalid-sort`.
        value:
          description: The rejected value, when it is safe to return.
        message:
          type: object
          description: Explanation per locale.
          properties:
            en:
              type: string
              description: English message.
            de:
              type: string
              description: German message.
          required:
            - en
          additionalProperties: false
      required:
        - property
        - constraint
        - message
      additionalProperties: true
  responses:
    Unauthorized:
      description: 'Unauthorized: the credential is missing or invalid.'
      x-error-codes:
        - unauthenticated
        - token-invalid
        - token-expired
        - api-key-invalid
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            unauthenticated:
              summary: Authentication required
              value:
                errors:
                  - message: No credential was sent with the request.
                    statusCode: 401
                    errorCode: unauthenticated
            token-invalid:
              summary: Invalid credential
              value:
                errors:
                  - message: >-
                      The credential cannot be verified for this surface (wrong
                      scheme, signature or credential kind).
                    statusCode: 401
                    errorCode: token-invalid
            token-expired:
              summary: Credential expired
              value:
                errors:
                  - message: The dashboard ID token has expired.
                    statusCode: 401
                    errorCode: token-expired
            api-key-invalid:
              summary: Invalid API key
              value:
                errors:
                  - message: >-
                      The API key is unknown, revoked, expired, past its roll
                      grace period or belongs to the other environment
                      (`vk_test_` against production or `vk_live_` against the
                      sandbox).
                    statusCode: 401
                    errorCode: api-key-invalid
    Forbidden:
      description: 'Forbidden: an access gate refused the request.'
      x-error-codes:
        - partner-role-missing
        - partner-suspended
        - partner-offboarded
        - api-access-inactive
        - ip-not-allowed
        - mfa-required
        - sso-required
        - missing-permission
        - reauthentication-required
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            partner-role-missing:
              summary: Partner role missing
              value:
                errors:
                  - message: >-
                      Your partner lacks the role (provider or consumer) this
                      surface needs.
                    statusCode: 403
                    errorCode: partner-role-missing
                    more:
                      requiredRole: consumer
            partner-suspended:
              summary: Partner suspended
              value:
                errors:
                  - message: >-
                      Your partner is suspended: writes are refused (billing
                      writes from the dashboard excepted).
                    statusCode: 403
                    errorCode: partner-suspended
            partner-offboarded:
              summary: Partner offboarded
              value:
                errors:
                  - message: Your partner has been offboarded; every route is refused.
                    statusCode: 403
                    errorCode: partner-offboarded
            api-access-inactive:
              summary: API access inactive
              value:
                errors:
                  - message: >-
                      API access of your partner is not active (not yet granted,
                      revoked, or the partner is suspended), so API keys are
                      refused.
                    statusCode: 403
                    errorCode: api-access-inactive
            ip-not-allowed:
              summary: IP address not allowed
              value:
                errors:
                  - message: >-
                      The request's source address is not in your IP allowlist
                      while enforcement is on.
                    statusCode: 403
                    errorCode: ip-not-allowed
            mfa-required:
              summary: Multi-factor authentication required
              value:
                errors:
                  - message: >-
                      Your partner requires multi-factor authentication for
                      dashboard users.
                    statusCode: 403
                    errorCode: mfa-required
            sso-required:
              summary: Single sign-on required
              value:
                errors:
                  - message: >-
                      Your partner enforces single sign-on for this user's email
                      domain.
                    statusCode: 403
                    errorCode: sso-required
            missing-permission:
              summary: Missing permission
              value:
                errors:
                  - message: >-
                      The membership or API key lacks a permission the operation
                      requires, including non-delegable permissions called with
                      an API key.
                    statusCode: 403
                    errorCode: missing-permission
                    more:
                      requiredPermissions:
                        - create-consumer-redemptions
            reauthentication-required:
              summary: Recent sign-in required
              value:
                errors:
                  - message: >-
                      The operation needs a sign-in within the last 15 minutes
                      (dashboard users only).
                    statusCode: 403
                    errorCode: reauthentication-required
    NotFound:
      description: Not found.
      x-error-codes:
        - route-not-found
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            route-not-found:
              summary: Route not found
              value:
                errors:
                  - message: No operation exists for this path.
                    statusCode: 404
                    errorCode: route-not-found
    InternalError:
      description: Unexpected failure; quote the `requestId`.
      x-error-codes:
        - internal-error
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            internal-error:
              summary: Internal error
              value:
                errors:
                  - message: Something went wrong on our side
                    statusCode: 500
                    errorCode: internal-error
                    requestId: 0c9f2ea5-fe09-463c-8f96-b6cae67800ad
    ServiceUnavailable:
      description: Temporarily unavailable; retry after `Retry-After`.
      x-error-codes:
        - service-unavailable
        - db-unavailable
        - query-timeout
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            service-unavailable:
              summary: Service unavailable
              value:
                errors:
                  - message: Something went wrong on our side
                    statusCode: 503
                    errorCode: service-unavailable
                    requestId: 0c9f2ea5-fe09-463c-8f96-b6cae67800ad
            db-unavailable:
              summary: Database unavailable
              value:
                errors:
                  - message: Something went wrong on our side
                    statusCode: 503
                    errorCode: db-unavailable
                    requestId: 0c9f2ea5-fe09-463c-8f96-b6cae67800ad
            query-timeout:
              summary: Query timeout
              value:
                errors:
                  - message: Something went wrong on our side
                    statusCode: 503
                    errorCode: query-timeout
                    requestId: 0c9f2ea5-fe09-463c-8f96-b6cae67800ad
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: vk_live_<keyId>_<secret>
      description: >-
        Your API key in `Authorization: Bearer <key>`. Use `vk_test_…` keys
        against the sandbox and `vk_live_…` keys against production.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.