TfP Docs

Organization schema

Generated from the canonical schema schemas/organization.schema.json by scripts/generate-schema-docs.mjs — do not edit this page by hand.

An institution that can participate in or receive attribution on TfP: a university, company, laboratory, nonprofit, government agency, or consortium. An attribution entity, not an auth tenant. Creation is open to any User (decision 2026-08-31); institutional verification is deferred and impersonation is handled by moderation.

Schema version: 1.0.0 · $id: https://tokensforprogress.org/schemas/organization.schema.json

Fields

id

Type: string · Required: yes · Mutable: no · Pattern: ^org_[0-9a-z]{10,32}$

Stable opaque identifier. Contribution attribution references this id, never the slug or name.

Example: "org_01jf90aa1mit0"

slug

Type: string · Required: yes · Mutable: yes · Pattern: ^[a-z0-9]+(-[a-z0-9]+)*$

URL-safe short name, unique among Organizations. Mutable, but changing it breaks inbound links; prefer stability.

Example: "mit-media-lab"

name

Type: string · Required: yes · Mutable: yes

Human-readable display name of the institution.

Example: "Example Research Lab"

avatar_url

Type: string \| null · Required: no · Mutable: yes

Logo/avatar URL, or null for a generated default.

Example: "https://assets.tokensforprogress.org/orgs/org_01jf90aa1mit0.png"

description_md

Type: string \| null · Required: no · Mutable: yes

Optional Markdown description of the institution and its participation on TfP.

Example: "Research lab within MIT focused on ..."

link_url

Type: string \| null · Required: no · Mutable: yes

Optional canonical external website.

Example: "https://lab.example.org"

created_by_user_id

Type: string · Required: yes · Mutable: no · Pattern: ^usr_[0-9a-z]{10,32}$

The User who created this Organization record. Provenance only — confers no permanent special status.

Example: "usr_01jf8xw3tempo"

created_at

Type: string · Required: yes · Mutable: no

RFC 3339 UTC timestamp of creation.

Example: "2026-08-31T15:04:11Z"

updated_at

Type: string · Required: yes · Mutable: yes

RFC 3339 UTC timestamp of the most recent change to any mutable field.

Example: "2026-08-31T16:20:03Z"

JSON Schema source

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://tokensforprogress.org/schemas/organization.schema.json",
  "title": "Organization",
  "description": "An institution that can participate in or receive attribution on TfP: a university, company, laboratory, nonprofit, government agency, or consortium. An attribution entity, not an auth tenant. Creation is open to any User (decision 2026-08-31); institutional verification is deferred and impersonation is handled by moderation.",
  "x-tfp-version": "1.0.0",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "slug",
    "name",
    "created_by_user_id",
    "created_at",
    "updated_at"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^org_[0-9a-z]{10,32}$",
      "x-mutable": false,
      "description": "Stable opaque identifier. Contribution attribution references this id, never the slug or name.",
      "examples": [
        "org_01jf90aa1mit0"
      ]
    },
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
      "maxLength": 64,
      "x-mutable": true,
      "description": "URL-safe short name, unique among Organizations. Mutable, but changing it breaks inbound links; prefer stability.",
      "examples": [
        "mit-media-lab"
      ]
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "x-mutable": true,
      "description": "Human-readable display name of the institution.",
      "examples": [
        "Example Research Lab"
      ]
    },
    "avatar_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri",
      "x-mutable": true,
      "description": "Logo/avatar URL, or null for a generated default.",
      "examples": [
        "https://assets.tokensforprogress.org/orgs/org_01jf90aa1mit0.png"
      ]
    },
    "description_md": {
      "type": [
        "string",
        "null"
      ],
      "x-mutable": true,
      "description": "Optional Markdown description of the institution and its participation on TfP.",
      "examples": [
        "Research lab within MIT focused on ..."
      ]
    },
    "link_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri",
      "x-mutable": true,
      "description": "Optional canonical external website.",
      "examples": [
        "https://lab.example.org"
      ]
    },
    "created_by_user_id": {
      "type": "string",
      "pattern": "^usr_[0-9a-z]{10,32}$",
      "x-mutable": false,
      "description": "The User who created this Organization record. Provenance only — confers no permanent special status.",
      "examples": [
        "usr_01jf8xw3tempo"
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "x-mutable": false,
      "description": "RFC 3339 UTC timestamp of creation.",
      "examples": [
        "2026-08-31T15:04:11Z"
      ]
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "x-mutable": true,
      "description": "RFC 3339 UTC timestamp of the most recent change to any mutable field.",
      "examples": [
        "2026-08-31T16:20:03Z"
      ]
    }
  }
}