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

# Today's Verifications by Hour API

> Read today's user verifications per local hour in your time zone, next to the same weekday last week, with how many are approved, in review and declined.



Get Today's Verifications by Hour API Prompt
        Copy prompt to clipboard



      
      

\<pre>

\`Read today's verifications of my Didit application hour by hour.

Endpoint:
GET https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/analytics/today/

Authentication:
Use the x-api-key header with my Didit API key. Only a full-access key works: any scoped key gets 403 "This API key has no access to this endpoint.". application_id must be the application the key belongs to.

Goal:
\- Show today's verification volume by hour against the same weekday last week, and today's outcomes, in my own dashboard.

Query parameters:
\- tz - IANA time zone whose midnight starts today, for example Europe/Madrid. Omit it for UTC.

Behavior:
\- hours - 24 counts: today's user verification (KYC) sessions by the local hour they were created in. The hours still to come are 0.
\- previous_hours - the same 24 counts for previous_date, the same weekday one week before.
\- total - today's verifications so far. previous_total_so_far - the comparison day's up to the same local time, so (total - previous_total_so_far) / previous_total_so_far compares the same part of both days.
\- outcomes - of today's verifications, how many are approved, in review and declined now. The rest are not finished yet.
\- current_hour - the local hour it is now. A day on which the clocks change has 23 or 25 hours: the missing hour stays 0 and the repeated hour holds both.

Example call:
curl -X GET "https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/analytics/today/?tz=Europe%2FMadrid" \
-H "x-api-key: YOUR_API_KEY"

Failure modes:
\- 400 - {"tz": ["Unknown time zone: Europe/Atlantis."]} for a name the time zone database does not know.
\- 401 - the API key has expired.
\- 403 - missing or invalid key ({"detail": "Authentication credentials were not provided or are invalid."}), a key of another application ({"detail": "You do not have permission to perform this action."}), any scoped key, or a request from outside the key's IP list.
\- 429 - more than 600 GET requests per minute with this key.

Side effects: none. Not billed.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

Paste into

Didit's Today's Verifications by Hour API returns today's user verifications per hour, from midnight in the time zone you send, next to the same hours of the same weekday last week. It is the data behind the volume card on the Business Console's Home.| Field | What it holds |
| - | - |
| `hours` | Today's verifications per local hour, from 00:00. The hours still to come are `0`. |
| `previous_hours` | The same hours on `previous_date`, the same weekday one week before. |
| `total`, `previous_total_so_far` | Today so far, and the comparison day up to the same local time. |
| `outcomes` | Of today's verifications, how many are `approved`, `in_review` and `declined` now. |The counts are read live from your verifications, so a verification created a moment ago is already counted. For a date range and the other dashboard figures, use [Get Application Analytics](https://docs.didit.me/management-api/analytics/get.md).> [!NOTE]
>
> Only a full-access API key can call this endpoint. A scoped key gets `403` whatever access it holds, and so does a key of another application. See [API keys](https://docs.didit.me/console/api-keys.md).## Related- [Get Application Analytics](https://docs.didit.me/management-api/analytics/get.md)
- [Analytics dashboard](https://docs.didit.me/console/analytics.md)
- [API keys and scoped access](https://docs.didit.me/console/api-keys.md)


## OpenAPI

````yaml GET /v3/organization/{organization_id}/application/{application_id}/analytics/today/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: Identity verification API. Authenticate with x-api-key header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/organization/{organization_id}/application/{application_id}/analytics/today/:
    get:
      tags:
        - Analytics
      summary: Get today's verifications by hour
      description: >-
        Today's user verification (KYC) sessions, from local midnight in `tz`,
        counted per local hour they were created in, next to the same hours of
        the same weekday one week before, and split by the outcome each one
        holds now: approved, in review or declined. This is the volume card of
        the Business Console's Home.


        `total` is today so far. `previous_total_so_far` counts the comparison
        day only up to the same local time, so a change between them compares
        the same part of both days. The hours still to come today are `0`. A day
        on which the clocks change has 23 or 25 hours: the missing hour stays
        `0` and the repeated hour holds both.
      operationId: get_application_analytics_today
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Organization UUID.
          example: 11111111-2222-3333-4444-555555555555
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            Application UUID. Must be the application the API key belongs to: a
            key used on any other application gets `403`.
          example: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
        - name: tz
          in: query
          required: false
          schema:
            type: string
            default: UTC
            example: Europe/Madrid
          description: >-
            IANA time zone whose midnight starts today, for example
            `Europe/Madrid` or `America/Mexico_City`. Omit it for UTC.
      responses:
        '200':
          description: >-
            Today's verifications by local hour, the comparison day's, and
            today's outcomes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationAnalyticsToday'
              examples:
                Madrid, 14:00:
                  value:
                    time_zone: Europe/Madrid
                    date: '2026-10-30'
                    current_hour: 14
                    previous_date: '2026-10-23'
                    hours:
                      - 3
                      - 1
                      - 0
                      - 0
                      - 1
                      - 2
                      - 4
                      - 9
                      - 14
                      - 18
                      - 21
                      - 19
                      - 22
                      - 24
                      - 27
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                      - 0
                    previous_hours:
                      - 2
                      - 1
                      - 1
                      - 0
                      - 1
                      - 3
                      - 5
                      - 8
                      - 12
                      - 16
                      - 19
                      - 18
                      - 20
                      - 22
                      - 24
                      - 26
                      - 23
                      - 19
                      - 15
                      - 12
                      - 9
                      - 7
                      - 5
                      - 3
                    total: 165
                    previous_total_so_far: 151
                    outcomes:
                      approved: 139
                      in_review: 6
                      declined: 18
        '400':
          description: >-
            Unknown time zone. The body is keyed by the parameter, with a list
            of messages.
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
              examples:
                Unknown time zone:
                  value:
                    tz:
                      - 'Unknown time zone: Europe/Atlantis.'
        '401':
          description: >-
            The API key has expired. Only a key created with an expiry date can
            expire; after that date every request with it answers `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            The request is not allowed. Read `detail`: a missing or invalid API
            key (never `401`), a key of another application, any scoped key, or
            a request from outside the key's IP list.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid key:
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Another application:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key:
                  value:
                    detail: This API key has no access to this endpoint.
                Outside the key's IP list:
                  value:
                    detail: This API key can't be used from this IP address.
        '429':
          description: >-
            More than 600 GET requests per minute with this API key. Wait the
            number of seconds in `Retry-After`, then retry.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
          headers:
            Retry-After:
              description: Seconds until the current one-minute window resets.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: Requests allowed per minute in this budget.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix time when the window resets.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/analytics/today/?tz=Europe%2FMadrid'
            \
              -H 'x-api-key: YOUR_API_KEY'
components:
  schemas:
    ApplicationAnalyticsToday:
      type: object
      description: Today's verifications by local hour against the same weekday last week.
      required:
        - time_zone
        - date
        - current_hour
        - previous_date
        - hours
        - previous_hours
        - total
        - previous_total_so_far
        - outcomes
      properties:
        time_zone:
          type: string
          description: The IANA time zone the day and its hours are in.
          example: Europe/Madrid
        date:
          type: string
          format: date
          description: Today in that time zone.
          example: '2026-10-30'
        current_hour:
          type: integer
          minimum: 0
          maximum: 23
          description: The local hour it is now.
          example: 14
        previous_date:
          type: string
          format: date
          description: 'The comparison day: the same weekday one week before.'
          example: '2026-10-23'
        hours:
          type: array
          items:
            type: integer
            minimum: 0
          minItems: 24
          maxItems: 24
          description: >-
            Verifications created today, per local hour from 00:00. The hours
            still to come are 0.
        previous_hours:
          type: array
          items:
            type: integer
            minimum: 0
          minItems: 24
          maxItems: 24
          description: >-
            Verifications created on the comparison day, per local hour from
            00:00.
        total:
          type: integer
          minimum: 0
          description: Verifications created today so far.
          example: 165
        previous_total_so_far:
          type: integer
          minimum: 0
          description: >-
            Verifications created on the comparison day up to the same local
            time.
          example: 151
        outcomes:
          type: object
          description: >-
            Of today's verifications, how many are approved, waiting in review
            and declined now. The rest are not finished yet.
          required:
            - approved
            - in_review
            - declined
          properties:
            approved:
              type: integer
              minimum: 0
            in_review:
              type: integer
              minimum: 0
            declined:
              type: integer
              minimum: 0
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your application's API key, from Developers -> API keys in the Business
        Console. The primary key has full access. A named key can be scoped:
        none, read or write per resource, limited to some workflows or to
        approved sessions, to a list of IP addresses, and to an expiry date. 401
        means the key is wrong, revoked or expired; 403 means no key was sent,
        the key has no access to this resource or action, or the request came
        from an address outside its IP list; 404 on a session route means the
        session is outside the key's workflows or statuses. A key without media
        access receives image, video and PDF URLs as null, and a key without
        sessions write receives session links and tokens as null. See
        https://docs.didit.me/console/api-keys.

````

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