---
title: "Get Data Schema"
method: GET
path: "/v2/charts/data-schema"
tags: ["Charts V2"]
---

# Get Data Schema

`GET /v2/charts/data-schema`

## Request

- Base URL: `https://api.superwall.com`
- URL: `https://api.superwall.com/v2/charts/data-schema`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `accounts_superwall_token`
  - HTTP bearer

Lists everything an app has sent to Superwall in production: the user and device attribute keys it set, with every JSON type each arrived as, and its event names, split into custom events (placements it registers and events it tracks) and standard events (Superwall's own, including store webhooks). Each item carries when it last arrived. Read from pre-aggregated data, so it answers in about a second for any app. Each event list holds the 1,000 most recent names; `events_truncated` says when there are more. Requires charts:read scope.

## Query parameters

- `application_id` string, required

## Response `200`

Success

- object
  - `object` 'data_schema', required: Object type, always `data_schema`
  - `user_attributes` object[], required: Attributes the app set on users (`setUserAttributes`), sorted by key
    - `key` string, required: The attribute's key, as the app sent it
    - `types` string[], required: Every JSON type the key has arrived as, most recently seen first. More than one means the app has sent the key with different types.
    - `last_seen_at` string, required: ISO 8601 time the key last arrived
  - `device_attributes` object[], required: Attributes the SDK reports about the device, sorted by key
    - `key` string, required: The attribute's key, as the app sent it
    - `types` string[], required: Every JSON type the key has arrived as, most recently seen first. More than one means the app has sent the key with different types.
    - `last_seen_at` string, required: ISO 8601 time the key last arrived
  - `custom_events` object[], required: Events the app defines: placements it registers and events it tracks. Most recent first.
    - `name` string, required: The event's name, as the app sent it
    - `last_seen_at` string, required: ISO 8601 time the event last arrived
    - `property_count` number, required: How many property keys the event has carried. Get Data Schema Event Properties lists them.
  - `standard_events` object[], required: Superwall's own events, from the SDK and from store and integration webhooks (such as `renewal`). Most recent first.
    - `name` string, required: The event's name, as the app sent it
    - `last_seen_at` string, required: ISO 8601 time the event last arrived
    - `property_count` number, required: How many property keys the event has carried. Get Data Schema Event Properties lists them.
  - `events_truncated` boolean, required: True when the app has sent more event names than are listed. Each event list holds at most 1,000 names, the most recent, so a list that was cut holds exactly that many.

## Other responses

- `400`: The request did not match the expected schema | The request was invalid or malformed
- `401`: No API key was provided in the request | The API key does not have a valid format | The API key is invalid or has been revoked | An error occurred while validating the API key | The session cookie is invalid or expired
- `403`: The API key does not have permission to perform this action
- `404`: The requested resource was not found
- `429`: Too many requests have been made in a short period
- `500`: An unexpected error occurred on the server

## Changes

- **2026-10-30** `4b041e865f49`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/superwall/apis/superwall-api-v2/changes/v2/charts/data-schema/get.md)

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) - [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/superwall/apis/superwall-api-v2/revisions/523b4734dfab?raw)
