Gloom · Schema

AppsBoardResponse

FinanceOpen SourceTerminalMarket DataCommunity

Properties

Name Type Description
data array
included object The blocks asked for with include=.
meta object
View JSON Schema on GitHub

JSON Schema

gloom-sh-apps-board-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/gloom-sh/json-schema/gloom-sh-apps-board-response-schema.json",
  "title": "AppsBoardResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/gloom-sh-openapi.json#/components/schemas/AppsBoardResponse",
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AppRank"
      }
    },
    "included": {
      "type": "object",
      "description": "The blocks asked for with include=.",
      "properties": {
        "summary": {
          "type": "object",
          "properties": {
            "appCount": {
              "type": "integer",
              "description": "Apps."
            },
            "companyCount": {
              "type": "integer",
              "description": "Companies."
            },
            "countryCount": {
              "type": "integer",
              "description": "Countries."
            },
            "observationCount": {
              "type": "integer",
              "description": "Chart reads."
            },
            "mappedObservationCount": {
              "type": "integer",
              "description": "Reads of apps mapped to a company."
            },
            "attentionScore": {
              "type": [
                "number",
                "null"
              ],
              "description": "Combined rank and rating momentum."
            },
            "rankVelocity7d": {
              "type": [
                "number",
                "null"
              ],
              "description": "Rank change per day over 7 days."
            },
            "ratingChange7d": {
              "type": [
                "number",
                "null"
              ],
              "description": "Rating change in 7 days."
            },
            "ratingCountGrowth7d": {
              "type": [
                "number",
                "null"
              ],
              "description": "Growth in ratings over 7 days."
            },
            "comparableSeries7d": {
              "type": "integer",
              "description": "Series with a read 7 days earlier."
            },
            "firstObservedAt": {
              "type": [
                "string",
                "null"
              ],
              "format": "date",
              "description": "The first day read."
            },
            "lastObservedAt": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "description": "The latest read."
            }
          },
          "description": "Counts and attention scores across the result."
        },
        "companies": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "symbol": {
                "type": "string",
                "description": "Listing symbol."
              },
              "name": {
                "type": "string",
                "description": "Name."
              },
              "appCount": {
                "type": "integer",
                "description": "Apps."
              },
              "countryCount": {
                "type": "integer",
                "description": "Countries."
              },
              "chartCount": {
                "type": "integer",
                "description": "Charts the apps appear on."
              },
              "attentionScore": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Combined rank and rating momentum."
              },
              "rankVelocity7d": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Rank change per day over 7 days."
              },
              "ratingChange7d": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Rating change in 7 days."
              },
              "ratingCountGrowth7d": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Growth in ratings over 7 days."
              },
              "comparableSeries7d": {
                "type": "integer",
                "description": "Series with a read 7 days earlier."
              },
              "observedAt": {
                "type": "string",
                "format": "date-time",
                "description": "When it was read."
              }
            }
          },
          "description": "Companies by attention score."
        },
        "peers": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "Peer companies."
        },
        "countries": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "Attention by country."
        },
        "history": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "Attention by day."
        },
        "spreads": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "Apps ranked far apart across countries."
        },
        "evidence": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "The chart reads behind the result."
        },
        "coverage": {
          "type": "object",
          "properties": {
            "configuredCountries": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Countries read."
            },
            "observedCountries": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Countries with data."
            },
            "availableCharts": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Charts read."
            },
            "categories": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Categories read."
            },
            "sources": {
              "type": "array",
              "items": {
                "type": "object"
              },
              "description": "Each source and when it was read."
            },
            "limitations": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "What the data cannot show."
            },
            "historyDays": {
              "type": "integer",
              "description": "Days of history."
            },
            "staleAfterHours": {
              "type": "integer",
              "description": "Hours before a chart is stale."
            }
          },
          "description": "Countries, charts and sources covered, with limitations."
        }
      }
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "$defs": {
    "AppRank": {
      "type": "object",
      "description": "One app's place on a store chart.",
      "properties": {
        "appId": {
          "type": "string",
          "description": "Store app id."
        },
        "name": {
          "type": "string",
          "description": "Name."
        },
        "developer": {
          "type": "string",
          "description": "Developer."
        },
        "developerId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Developer id."
        },
        "appUrl": {
          "type": "string",
          "format": "uri",
          "description": "Store page."
        },
        "genres": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Store genres."
        },
        "genreIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Store genre ids."
        },
        "rank": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Chart rank."
        },
        "rating": {
          "type": [
            "number",
            "null"
          ],
          "description": "Average rating, 1 to 5."
        },
        "ratingCount": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Ratings."
        },
        "reviewCount": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Reviews."
        },
        "ratingObservedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "When the rating was read."
        },
        "ratingSourceUrl": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri",
          "description": "Rating source."
        },
        "exchange": {
          "type": [
            "string",
            "null"
          ],
          "description": "Exchange."
        },
        "entityId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Entity id."
        },
        "parentEntityId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Parent company entity id."
        },
        "confidence": {
          "type": "number",
          "description": "Mapping confidence, 0 to 1."
        },
        "mappingSourceUrl": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri",
          "description": "Careers source the listing maps to."
        },
        "mappingRevisionId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Mapping revision."
        },
        "current": {
          "type": "boolean",
          "description": "True for the newest chart read."
        },
        "sourceId": {
          "type": "string",
          "description": "Chart: store, country, chart, category."
        },
        "store": {
          "type": "string",
          "enum": [
            "app-store",
            "google-play",
            "myapp"
          ],
          "description": "app-store, google-play or myapp."
        },
        "country": {
          "type": "string",
          "description": "Country code."
        },
        "chart": {
          "type": "string",
          "enum": [
            "free",
            "paid",
            "grossing",
            "unranked"
          ],
          "description": "Chart."
        },
        "category": {
          "type": "string",
          "description": "Chart category."
        },
        "chartLimit": {
          "type": "integer",
          "description": "Length of the chart."
        },
        "sourceUrl": {
          "type": "string",
          "format": "uri",
          "description": "Where the source publishes it."
        },
        "sourceUpdatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "When the source last updated."
        },
        "observedAt": {
          "type": "string",
          "format": "date-time",
          "description": "When it was read."
        },
        "publishedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "When the store published the chart: sourceUpdatedAt, null where it does not say."
        },
        "revisionId": {
          "type": "string",
          "description": "Revision id."
        },
        "supersedesRevisionId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The revision it replaces."
        },
        "rankChange1d": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Places gained in a day; positive is up."
        },
        "rankChange7d": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Places gained in 7 days."
        },
        "rankVelocity7d": {
          "type": [
            "number",
            "null"
          ],
          "description": "Rank change per day over 7 days."
        },
        "ratingChange7d": {
          "type": [
            "number",
            "null"
          ],
          "description": "Rating change in 7 days."
        },
        "ratingCountGrowth7d": {
          "type": [
            "number",
            "null"
          ],
          "description": "Growth in ratings over 7 days."
        },
        "reviewGrowth7d": {
          "type": [
            "number",
            "null"
          ],
          "description": "Growth in reviews over 7 days."
        },
        "stale": {
          "type": "boolean",
          "description": "True when the source has not updated on schedule."
        },
        "symbol": {
          "type": [
            "string",
            "null"
          ],
          "description": "Listed company that owns it."
        }
      },
      "required": [
        "appId",
        "name",
        "developer",
        "developerId",
        "appUrl",
        "genres",
        "genreIds",
        "rank",
        "rating",
        "ratingCount",
        "reviewCount",
        "ratingObservedAt",
        "ratingSourceUrl",
        "exchange",
        "entityId",
        "parentEntityId",
        "confidence",
        "mappingSourceUrl",
        "mappingRevisionId",
        "current",
        "sourceId",
        "store",
        "country",
        "chart",
        "category",
        "chartLimit",
        "sourceUrl",
        "sourceUpdatedAt",
        "observedAt",
        "publishedAt",
        "revisionId",
        "supersedesRevisionId",
        "rankChange1d",
        "rankChange7d",
        "rankVelocity7d",
        "ratingChange7d",
        "ratingCountGrowth7d",
        "reviewGrowth7d",
        "stale",
        "symbol"
      ]
    },
    "Meta": {
      "type": "object",
      "required": [
        "dataset",
        "requestId",
        "asOf",
        "dataThrough",
        "historyStart",
        "updatedAt",
        "page",
        "next",
        "coverage",
        "source",
        "notices",
        "symbols"
      ],
      "properties": {
        "dataset": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "gpu",
            "hiring-jobs",
            "hiring-momentum",
            "app-attention",
            "awards",
            "kpis-guidance",
            "credit-documents",
            "power",
            "perps",
            "catalysts",
            "supply-chain",
            "exposure",
            "transcripts",
            "exec-pay",
            "risk-factors",
            "events",
            "document-search",
            "news",
            "social-mentions",
            "cpi",
            "energy-inventories",
            "cot",
            "short-volume",
            "short-interest",
            "sec",
            "congress",
            "macro",
            "central-bank-rates",
            "cds",
            "debt-maturities",
            "revenue-breakdown",
            "depositary-receipts",
            "bond-trades",
            "market-data",
            "futures",
            "rate-path",
            "options",
            "earnings",
            "ipo",
            "mna",
            "equity-screener",
            "crypto",
            "session-tape",
            "analyst-estimates",
            null
          ]
        },
        "requestId": {
          "type": "string",
          "description": "Quote it to support."
        },
        "asOf": {
          "type": [
            "string",
            "null"
          ],
          "description": "The point in time you asked for with asOf, or null for the latest."
        },
        "dataThrough": {
          "type": [
            "string",
            "null"
          ],
          "description": "The newest date or time the data covers."
        },
        "historyStart": {
          "type": [
            "string",
            "null"
          ],
          "description": "Earliest date the dataset has history for, when known; otherwise null."
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ],
          "description": "When the data last changed, when known."
        },
        "page": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "object",
              "required": [
                "limit",
                "hasMore",
                "nextCursor",
                "total"
              ],
              "properties": {
                "limit": {
                  "type": "integer",
                  "minimum": 1
                },
                "hasMore": {
                  "type": "boolean"
                },
                "nextCursor": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "total": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "minimum": 0,
                  "description": "Rows that match the query on every page, where the route counts them; null where it does not."
                }
              }
            }
          ],
          "description": "Paging of a list; null for a single record."
        },
        "next": {
          "type": [
            "string",
            "null"
          ],
          "description": "The next page as a ready URL, or null."
        },
        "coverage": {
          "description": "Service-established coverage; null when unavailable."
        },
        "source": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "attribution",
              "licence"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "attribution": {
                "type": "string"
              },
              "licence": {
                "type": "string"
              }
            }
          }
        },
        "delayed": {
          "type": "boolean",
          "const": true,
          "description": "Present, and true, only on market prices that follow delayed-data access."
        },
        "notices": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Notice"
          },
          "description": "Caveats that change how to read the data: disclaimers, gaps, illustrative samples."
        },
        "sampledAt": {
          "type": [
            "string",
            "null"
          ],
          "description": "Only on sample routes: when the sample was read from the dataset. Null for the built-in example, served until the first daily read succeeds."
        },
        "symbols": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/SymbolResult"
              }
            }
          ],
          "description": "Each listing a symbols= call named, in the order sent: as sent, its canonical listing and whether it was read. Only ok listings are charged. Null when the call named none."
        },
        "cursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Only on a change feed (/v1/catalysts/changes, /v1/insider-trades/changes): the cursor to send as cursor on the next poll, with the same since and symbols. It is there caught up too, when meta.next is null. One cursor serves all the symbols of the call: on /v1/catalysts/changes it is the earliest of the listings', each of which is also in meta.symbols."
        },
        "checkedAt": {
          "type": [
            "string",
            "null"
          ],
          "description": "Only on a change feed (/v1/catalysts/changes, /v1/insider-trades/changes): when its collector last finished reading its sources, rows or none, so a quiet feed reads apart from a stalled one; on /v1/catalysts/changes the newest of its sources' last reads. It is in no ETag, and the X-Checked-At header carries it on a 304 too. Null when not recorded."
        },
        "pointInTime": {
          "type": "object",
          "required": [
            "cutoff",
            "basis",
            "versions"
          ],
          "properties": {
            "cutoff": {
              "type": "string",
              "format": "date-time",
              "description": "The last moment the read counts, in UTC: a date's is the end of that day."
            },
            "basis": {
              "type": "string",
              "enum": [
                "observedAt",
                "publishedAt"
              ],
              "description": "observedAt: the rows Gloom had stored by the cutoff. publishedAt: the route does not record when Gloom stored each row, so the rows are those their source had published by then."
            },
            "versions": {
              "type": "string",
              "enum": [
                "kept",
                "unchanged",
                "latest"
              ],
              "description": "kept: each row has the values it had then. unchanged: so does each row, and a row changed since is left out. latest: each row has its values now, which may hold a revision made after the cutoff."
            }
          },
          "description": "Only on a call that sent asOf: what the answer is. Unless basis is observedAt and versions kept, a point_in_time notice says what the route cannot give."
        }
      }
    },
    "Notice": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "SymbolResult": {
      "type": "object",
      "required": [
        "input",
        "symbol",
        "status"
      ],
      "properties": {
        "input": {
          "type": "string",
          "description": "As sent."
        },
        "symbol": {
          "type": [
            "string",
            "null"
          ],
          "description": "The canonical listing: the bare symbol on a US venue (BRK.B), else SYMBOL:MIC (AIR:XPAR). Null when the notation names no listing."
        },
        "status": {
          "type": "string",
          "enum": [
            "ok",
            "empty",
            "not_found",
            "unavailable",
            "partial"
          ],
          "description": "ok: read and charged. empty: a listing Gloom knows that the dataset holds nothing for here, or does not cover (an outside_coverage notice names those); free. not_found: no listing Gloom knows; free. unavailable: it could not be read now; free, retry later. partial: read in part, free, send it again."
        },
        "cursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Only on a route that pages by its own cursor: where this listing reads on. Send it as cursor with symbols= naming this listing alone. On a change feed it is there caught up too. Null when the listing has no more, or was not read."
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/gloom-sh-apps-board-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.