AIMEAT · Schema

AppSummary

Catalogue/publish view of an app (latest version), as returned by the apps endpoints.

Artificial IntelligenceDemoPlatformOpen SourceProductivity

Properties

Name Type Description
owner string
filename string
version_number integer
manifest object The app's manifest. Among its fields, `formatMd` ({ extension, action }) names the action of the owner's own extension that answers `?format=md`, read from `` at publish.
size integer
mime_type string
protected boolean True when an access code gates downloads
listing string Where the app is listed. `listed`: every catalogue, search and other nodes. `community`: only in the catalogue listing of people signed in to this node, and nowhere public. `unlisted`: only in its own
open_to string Who may open the app (PATCH /v1/apps/{filename} `open_to`). The owner reads the value they set: `anyone`, `signed-in` or `organism:`. Everyone else reads the level only: `anyone`, `signed-in` or `
parked boolean True when the app is off every public surface (listing community or unlisted). Kept for older clients; read `listing`.
forkable boolean True when other users are allowed to fork this app (the owner and their agents can always fork it)
has_draft boolean True for a pending draft when the viewer owns the app or explicitly requests building=true and holds its development right. False for other viewers.
dev_level integer Effective development right. Present only in building=true listings.
dev_level_name string
building_for string Owner whose app the caller helps build.
roadmap_hint string Publication warning when an unshared app was published without a roadmap line.
design_spec_hint string Publication hint when a shared app has no design spec
operator_hidden boolean True when an operator has hidden the app from every public surface (visible only to its owner
operator_hide_reason stringnull Optional operator-supplied reason
has_screenshot boolean
downloads integer
forks integer Number of direct forks of this app
download_url string
screenshot_url stringnull
created_at string
ai_posture object The app's AI transparency posture, or null when it has none. The `gap` member appears only for the app's own owner.
data_map object Where this app puts what, or null when it has no map. The `gap` member appears only for the app's own owner.
View JSON Schema on GitHub

JSON Schema

aimeat-io-app-summary-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/aimeat-io/json-schema/aimeat-io-app-summary-schema.json",
  "title": "AppSummary",
  "description": "Catalogue/publish view of an app (latest version), as returned by the apps endpoints.",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/aimeat-io-openapi.json#/components/schemas/AppSummary",
  "type": "object",
  "properties": {
    "owner": {
      "type": "string"
    },
    "filename": {
      "type": "string"
    },
    "version_number": {
      "type": "integer"
    },
    "manifest": {
      "type": "object",
      "description": "The app's manifest. Among its fields, `formatMd` ({ extension, action }) names the action of the owner's own extension that answers `?format=md`, read from `<meta name=\"aimeat-format-md\">` at publish. The action receives `{ format, app, lang? }`: `lang` is the reader's `?lang=` when it reads as a language tag (two or three letters, at most one subtag), so the app can answer in that language."
    },
    "size": {
      "type": "integer"
    },
    "mime_type": {
      "type": "string"
    },
    "protected": {
      "type": "boolean",
      "description": "True when an access code gates downloads"
    },
    "listing": {
      "type": "string",
      "enum": [
        "listed",
        "community",
        "unlisted"
      ],
      "description": "Where the app is listed. `listed`: every catalogue, search and other nodes. `community`: only in the catalogue listing of people signed in to this node, and nowhere public. `unlisted`: only in its owner's own list. A link opens the app in all three."
    },
    "open_to": {
      "type": "string",
      "description": "Who may open the app (PATCH /v1/apps/{filename} `open_to`). The owner reads the value they set: `anyone`, `signed-in` or `organism:<id>`. Everyone else reads the level only: `anyone`, `signed-in` or `organism`, without the organism's id. On a node set to show its content to signed-in accounts only, `anyone` still needs a sign-in."
    },
    "parked": {
      "type": "boolean",
      "description": "True when the app is off every public surface (listing community or unlisted). Kept for older clients; read `listing`."
    },
    "forkable": {
      "type": "boolean",
      "description": "True when other users are allowed to fork this app (the owner and their agents can always fork it)"
    },
    "has_draft": {
      "type": "boolean",
      "description": "True for a pending draft when the viewer owns the app or explicitly requests building=true and holds its development right. False for other viewers."
    },
    "dev_level": {
      "type": "integer",
      "enum": [
        0,
        10,
        20
      ],
      "description": "Effective development right. Present only in building=true listings."
    },
    "dev_level_name": {
      "type": "string",
      "enum": [
        "full",
        "publisher",
        "drafter"
      ]
    },
    "building_for": {
      "type": "string",
      "description": "Owner whose app the caller helps build."
    },
    "roadmap_hint": {
      "type": "string",
      "description": "Publication warning when an unshared app was published without a roadmap line."
    },
    "design_spec_hint": {
      "type": "string",
      "description": "Publication hint when a shared app has no design spec",
      "or this version moved past the version the spec was written against. Never a refusal.": null
    },
    "operator_hidden": {
      "type": "boolean",
      "description": "True when an operator has hidden the app from every public surface (visible only to its owner",
      "who cannot lift it)": null
    },
    "operator_hide_reason": {
      "type": [
        "string",
        "null"
      ],
      "description": "Optional operator-supplied reason",
      "shown to the owner": null
    },
    "has_screenshot": {
      "type": "boolean"
    },
    "downloads": {
      "type": "integer"
    },
    "forks": {
      "type": "integer",
      "description": "Number of direct forks of this app"
    },
    "download_url": {
      "type": "string"
    },
    "screenshot_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "ai_posture": {
      "allOf": [
        {
          "$ref": "#/$defs/AppAiPosture"
        }
      ],
      "nullable": true,
      "description": "The app's AI transparency posture, or null when it has none. The `gap` member appears only for the app's own owner."
    },
    "data_map": {
      "allOf": [
        {
          "$ref": "#/$defs/DataMapStamp"
        }
      ],
      "nullable": true,
      "description": "Where this app puts what, or null when it has no map. The `gap` member appears only for the app's own owner."
    }
  },
  "$defs": {
    "AppAiPosture": {
      "type": "object",
      "description": "What a published app says about the AI inside it (TARGET-058), plus what the node observed at publish time. Stored on the app manifest. The `gap` member is OWNER-ONLY: it is the publish check telling the app's owner what is missing, and it is stripped from every response served to anyone else.\n",
      "properties": {
        "generates": {
          "type": "array",
          "description": "Modalities the app declares it generates.",
          "items": {
            "type": "string",
            "enum": [
              "text",
              "image",
              "audio",
              "video"
            ]
          }
        },
        "discloses": {
          "type": "boolean",
          "description": "Does the app show the reader an AI label?"
        },
        "publicInterest": {
          "type": "boolean",
          "description": "Does it publish on matters of public interest (a stronger labelling duty)?"
        },
        "source": {
          "type": "string",
          "enum": [
            "declared",
            "observed"
          ],
          "description": "`declared` — the app carries `<meta name=\"aimeat-ai\">`, or inherited one from the version it replaces or the app it was forked from. `observed` — the node worked it out from the source.\n"
        },
        "disclosureCallFound": {
          "type": "boolean",
          "description": "Did the published source contain a disclosure call?"
        },
        "usesAi": {
          "type": "boolean",
          "description": "Does the app request the `ai:use` scope?"
        },
        "gap": {
          "type": [
            "object",
            "null"
          ],
          "description": "OWNER-ONLY. Present when the app requests `ai:use` and tells its users nothing at all. The publish WARNS and proceeds; it never blocks (a publish that fails is a publish that gets worked around, and the app then ships with less transparency rather than more).\n",
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string",
              "description": "Written for the model that built the app — it names the exact calls to add."
            },
            "at": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      }
    },
    "DataMapStamp": {
      "type": "object",
      "description": "The SUMMARY of where a published app puts what — enough for a list to render one line without opening the document. The map ITSELF, with the paragraph saying what the app is for and one sentence per row saying why the data is there, is a public memory record at `docKey`.\nNOTHING HERE IS GUESSED. An app whose builder never wrote a map is stamped `missing: true`, which is the honest answer and the one that gets a map written. An earlier version derived a map from the app's permission words, and the guess then sat exactly where the answer belonged and read like one.\nThe rows are public: where an app puts data is the promise it makes to whoever installs it, and an AI about to change the app needs it before it touches anything. `gap` is OWNER-ONLY and is stripped from every response served to anyone else.\n",
      "properties": {
        "spec": {
          "type": "string"
        },
        "form": {
          "type": "string",
          "enum": [
            "one-person",
            "private",
            "shared-with-named",
            "group",
            "organism-workspace",
            "public-service",
            "static",
            "mixed",
            "unstated"
          ],
          "description": "What shape of app this is, which decides what its map has to contain. `unstated` is a real answer and never a default the node invents.\n"
        },
        "summary": {
          "type": "string",
          "description": "One line for a list",
          "built from the rows.": null
        },
        "heldRows": {
          "type": "integer",
          "description": "Rows describing what this app holds."
        },
        "rowsWithoutWhy": {
          "type": "integer",
          "description": "Rows that say where data goes and not why it goes there."
        },
        "missing": {
          "type": "boolean",
          "description": "True when nobody has written a map for this app."
        },
        "docKey": {
          "type": "string",
          "description": "Where the full map lives."
        },
        "at": {
          "type": "string",
          "format": "date-time"
        },
        "gap": {
          "type": [
            "object",
            "null"
          ],
          "description": "OWNER-ONLY. The worst thing still missing from this map. The publish WARNS and proceeds; it NEVER blocks — a map is a statement about storage rather than a property of the bytes.\n",
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "at": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      }
    }
  }
}

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/aimeat-io-app-summary"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.