id.sifa.org.profile

sifa.id

Documentation

The organization's self-declared profile. Singleton: one org declaration per DID, following the app.bsky.actor.profile pattern.

main record

The organization's self-declared profile. Singleton: one org declaration per DID, following the app.bsky.actor.profile pattern.

Record Key literal:self Fixed literal value

Properties

addresses array of ref #orgAddress Optional

Physical locations for the organization (headquarters, offices), owner-edited on the org page. Each entry mirrors community.lexicon.location.address, but every field is optional and country is NOT ISO-gated at the lexicon layer; Sifa applies country handling and length caps at the app layer. Distinct from id.sifa.profile.location, which is a person's own location record.

maxLength: 20 items
aliases array of string Optional

Alternative names and acronyms the organization is known by ("also known as"), owner-declared.

maxLength: 20 items
companySize string Optional

Declared organization headcount band, owner-edited on the org page. A self-declared bucket, never a calculated count. knownValues is non-exhaustive by AT Protocol convention.

maxLength: 64 bytes
Known values: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+
companyType string Optional

Declared organization form/type, owner-edited on the org page. A self-declared bucket, never a registry fact. knownValues is non-exhaustive by AT Protocol convention; AppViews layer registry legalForm and AI-derived type separately.

maxLength: 64 bytes
Known values: company, cooperative, nonprofit, foundation, government, educational, research_institute, healthcare_provider, professional_association, agency, religious, political, self_employed
contact string Optional

Contact email address for the organization. NOT rendered publicly; used for notifications only. Validated as an email address at the app layer.

createdAt string datetime Required

Client-declared timestamp when this organization profile was originally created.

description string Optional

Organization description / about.

maxLength: 50000 bytesmaxGraphemes: 5000 graphemes
entityRefs array of string uri Optional

Canonical external entity identifiers this account represents: Wikidata Q-ID URIs (http://www.wikidata.org/entity/Q...), ROR URIs, or LEI URIs. Self-declared; downstream validation (registry match) confirms or fails each binding.

maxLength: 20 items
founded string Optional

Founding date, owner-declared. A year (YYYY), month (YYYY-MM), or full date (YYYY-MM-DD). Not an ISO 8601 timestamp -- organizations typically remember only the year.

maxLength: 10 bytes
industries array of ref id.sifa.defs#industryDomain Optional

Industry/domain pairs the organization operates in, owner-declared. Each entry has a required industry and an optional domain refinement. Mirrors the person profile's industries field (same id.sifa.defs#industryDomain shape). Self-declared: registry-sourced industry classifications are layered separately by AppViews.

maxLength: 10 items
name string Required

Organization display name.

maxLength: 2000 bytesminLength: 1 bytesmaxGraphemes: 200 graphemes
personalProfileVisible boolean Optional

Whether the account holder's personal profile stays publicly visible alongside this organization profile. For sole traders and one-person businesses whose personal domain is also their trade name: the person and the organization are the same account, and both pages render. When false or absent, the account presents solely as an organization and the personal profile is not rendered.

Default: false
website string uri Optional

Official website URL.

View raw schema
{
  "description": "The organization's self-declared profile. Singleton: one org declaration per DID, following the app.bsky.actor.profile pattern.",
  "key": "literal:self",
  "record": {
    "properties": {
      "addresses": {
        "description": "Physical locations for the organization (headquarters, offices), owner-edited on the org page. Each entry mirrors community.lexicon.location.address, but every field is optional and country is NOT ISO-gated at the lexicon layer; Sifa applies country handling and length caps at the app layer. Distinct from id.sifa.profile.location, which is a person's own location record.",
        "items": {
          "ref": "#orgAddress",
          "type": "ref"
        },
        "maxLength": 20,
        "type": "array"
      },
      "aliases": {
        "description": "Alternative names and acronyms the organization is known by (\"also known as\"), owner-declared.",
        "items": {
          "maxGraphemes": 200,
          "maxLength": 2000,
          "type": "string"
        },
        "maxLength": 20,
        "type": "array"
      },
      "companySize": {
        "description": "Declared organization headcount band, owner-edited on the org page. A self-declared bucket, never a calculated count. knownValues is non-exhaustive by AT Protocol convention.",
        "knownValues": [
          "1-10",
          "11-50",
          "51-200",
          "201-500",
          "501-1000",
          "1001-5000",
          "5001-10000",
          "10001+"
        ],
        "maxLength": 64,
        "type": "string"
      },
      "companyType": {
        "description": "Declared organization form/type, owner-edited on the org page. A self-declared bucket, never a registry fact. knownValues is non-exhaustive by AT Protocol convention; AppViews layer registry legalForm and AI-derived type separately.",
        "knownValues": [
          "company",
          "cooperative",
          "nonprofit",
          "foundation",
          "government",
          "educational",
          "research_institute",
          "healthcare_provider",
          "professional_association",
          "agency",
          "religious",
          "political",
          "self_employed"
        ],
        "maxLength": 64,
        "type": "string"
      },
      "contact": {
        "description": "Contact email address for the organization. NOT rendered publicly; used for notifications only. Validated as an email address at the app layer.",
        "type": "string"
      },
      "createdAt": {
        "description": "Client-declared timestamp when this organization profile was originally created.",
        "format": "datetime",
        "type": "string"
      },
      "description": {
        "description": "Organization description / about.",
        "maxGraphemes": 5000,
        "maxLength": 50000,
        "type": "string"
      },
      "entityRefs": {
        "description": "Canonical external entity identifiers this account represents: Wikidata Q-ID URIs (http://www.wikidata.org/entity/Q...), ROR URIs, or LEI URIs. Self-declared; downstream validation (registry match) confirms or fails each binding.",
        "items": {
          "format": "uri",
          "type": "string"
        },
        "maxLength": 20,
        "type": "array"
      },
      "founded": {
        "description": "Founding date, owner-declared. A year (YYYY), month (YYYY-MM), or full date (YYYY-MM-DD). Not an ISO 8601 timestamp -- organizations typically remember only the year.",
        "maxLength": 10,
        "type": "string"
      },
      "industries": {
        "description": "Industry/domain pairs the organization operates in, owner-declared. Each entry has a required industry and an optional domain refinement. Mirrors the person profile's industries field (same id.sifa.defs#industryDomain shape). Self-declared: registry-sourced industry classifications are layered separately by AppViews.",
        "items": {
          "ref": "id.sifa.defs#industryDomain",
          "type": "ref"
        },
        "maxLength": 10,
        "type": "array"
      },
      "labels": {
        "description": "Self-label values for this organization profile.",
        "refs": [
          "com.atproto.label.defs#selfLabels"
        ],
        "type": "union"
      },
      "links": {
        "description": "Featured links surfaced on the org page, owner-edited. Each link's url MUST be an http(s) URL.",
        "items": {
          "ref": "#orgLink",
          "type": "ref"
        },
        "maxLength": 20,
        "type": "array"
      },
      "logo": {
        "accept": [
          "image/png",
          "image/jpeg"
        ],
        "description": "Organization logo image.",
        "maxSize": 1000000,
        "type": "blob"
      },
      "name": {
        "description": "Organization display name.",
        "maxGraphemes": 200,
        "maxLength": 2000,
        "minLength": 1,
        "type": "string"
      },
      "personalProfileVisible": {
        "default": false,
        "description": "Whether the account holder's personal profile stays publicly visible alongside this organization profile. For sole traders and one-person businesses whose personal domain is also their trade name: the person and the organization are the same account, and both pages render. When false or absent, the account presents solely as an organization and the personal profile is not rendered.",
        "type": "boolean"
      },
      "website": {
        "description": "Official website URL.",
        "format": "uri",
        "type": "string"
      }
    },
    "required": [
      "name",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record",
  "x-skos:exactMatch": [
    "schema:Organization",
    "org:FormalOrganization"
  ],
  "x-skos:note": "ROR is the value anchor."
}
orgAddress object

A single physical location for the organization. Mirrors community.lexicon.location.address, but every field is optional (country is NOT ISO-gated at the lexicon layer); Sifa applies country handling and length caps at the app layer.

Properties

country string Optional

ISO 3166 country code (preferably the 2-letter code). Enforced at the app layer.

locality string Optional

Locality of the region (for example, a city).

name string Optional

Optional label for this location (for example, "Head office").

postalCode string Optional

Postal code of the location.

region string Optional

Administrative region of the country (for example, a state or province).

street string Optional

Street address.

View raw schema
{
  "description": "A single physical location for the organization. Mirrors community.lexicon.location.address, but every field is optional (country is NOT ISO-gated at the lexicon layer); Sifa applies country handling and length caps at the app layer.",
  "properties": {
    "country": {
      "description": "ISO 3166 country code (preferably the 2-letter code). Enforced at the app layer.",
      "type": "string"
    },
    "locality": {
      "description": "Locality of the region (for example, a city).",
      "type": "string"
    },
    "name": {
      "description": "Optional label for this location (for example, \"Head office\").",
      "type": "string"
    },
    "postalCode": {
      "description": "Postal code of the location.",
      "type": "string"
    },
    "region": {
      "description": "Administrative region of the country (for example, a state or province).",
      "type": "string"
    },
    "street": {
      "description": "Street address.",
      "type": "string"
    }
  },
  "type": "object"
}
orgLink object

A featured link surfaced on the org page.

Properties

name string Required

Display label for the link.

maxLength: 2560 bytesminLength: 1 bytesmaxGraphemes: 256 graphemes
url string uri Required

Link target. MUST be an http(s) URL; other schemes are dropped at the app layer.

View raw schema
{
  "description": "A featured link surfaced on the org page.",
  "properties": {
    "name": {
      "description": "Display label for the link.",
      "maxGraphemes": 256,
      "maxLength": 2560,
      "minLength": 1,
      "type": "string"
    },
    "url": {
      "description": "Link target. MUST be an http(s) URL; other schemes are dropped at the app layer.",
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "name",
    "url"
  ],
  "type": "object"
}

Lexicon Garden

@