The organization's self-declared profile. Singleton: one org declaration per DID, following the app.bsky.actor.profile pattern.
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 itemsaliases
array
of
string
Optional
Alternative names and acronyms the organization is known by ("also known as"), owner-declared.
maxLength: 20 itemscompanySize
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 bytes1-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 bytescompany, cooperative, nonprofit, foundation, government, educational, research_institute, healthcare_provider, professional_association, agency, religious, political, self_employedcontact
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 graphemesentityRefs
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 itemsfounded
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 bytesindustries
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 itemslabels
union
Optional
Self-label values for this organization profile.
links
array
of
ref
#orgLink
Optional
Featured links surfaced on the org page, owner-edited. Each link's url MUST be an http(s) URL.
maxLength: 20 itemslogo
blob
Optional
Organization logo image.
maxSize: 1.0 MBname
string
Required
Organization display name.
maxLength: 2000 bytesminLength: 1 bytesmaxGraphemes: 200 graphemespersonalProfileVisible
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.
falsewebsite
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."
}