app.tempomusic.feed.defs

lexicons.tempomusic.fan

Documentation

albumRef object

An album, EP, single, or any long-form release.

Properties

artist ref #artistInfo Required

No description available.

artworkUrl string uri Optional

Fallback artwork URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available.

did string did Optional

Optional DID of a verified Tempo record for this album.

platformIds array of ref#platformId Optional

Commercial platform identifiers (Spotify album ID, Apple Music album ID, etc.).

releaseYear integer Optional

Year of release. For finer precision (full date, time), AppViews should resolve via platformIds against the music-catalogue rather than encoding it here.

minimum: 1860maximum: 2100
standardIds array of ref#standardId Optional

Canonical identifiers (UPC, MusicBrainz release MBID, etc.).

title string Required

No description available.

maxLength: 512 bytes
View raw schema
{
  "type": "object",
  "required": [
    "title",
    "artist"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did",
      "description": "Optional DID of a verified Tempo record for this album."
    },
    "title": {
      "type": "string",
      "maxLength": 512
    },
    "artist": {
      "ref": "#artistInfo",
      "type": "ref"
    },
    "artworkUrl": {
      "type": "string",
      "format": "uri",
      "description": "Fallback artwork URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available."
    },
    "platformIds": {
      "type": "array",
      "items": {
        "ref": "#platformId",
        "type": "ref"
      },
      "description": "Commercial platform identifiers (Spotify album ID, Apple Music album ID, etc.)."
    },
    "releaseYear": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 1860,
      "description": "Year of release. For finer precision (full date, time), AppViews should resolve via platformIds against the music-catalogue rather than encoding it here."
    },
    "standardIds": {
      "type": "array",
      "items": {
        "ref": "#standardId",
        "type": "ref"
      },
      "description": "Canonical identifiers (UPC, MusicBrainz release MBID, etc.)."
    }
  },
  "description": "An album, EP, single, or any long-form release."
}
artistInfo object

Artist information embedded as an attribute of a song or album. Distinct from artistRef, which represents an artist as the standalone subject of a post. Notably omits artworkUrl, since artwork in this context belongs to the parent entity (the song or album).

Properties

did string did Optional

Optional DID of the verified Tempo account for this artist.

name string Required

No description available.

maxLength: 256 bytes
platformIds array of ref#platformId Optional

No description available.

standardIds array of ref#standardId Optional

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did",
      "description": "Optional DID of the verified Tempo account for this artist."
    },
    "name": {
      "type": "string",
      "maxLength": 256
    },
    "platformIds": {
      "type": "array",
      "items": {
        "ref": "#platformId",
        "type": "ref"
      }
    },
    "standardIds": {
      "type": "array",
      "items": {
        "ref": "#standardId",
        "type": "ref"
      }
    }
  },
  "description": "Artist information embedded as an attribute of a song or album. Distinct from artistRef, which represents an artist as the standalone subject of a post. Notably omits artworkUrl, since artwork in this context belongs to the parent entity (the song or album)."
}
artistRef object

A music artist as the standalone subject of a post (no specific release referenced). For artist as an attribute of a song or album, see #artistInfo.

Properties

artworkUrl string uri Optional

Fallback artist photo or avatar URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available.

did string did Optional

Optional DID of the verified Tempo account for this artist.

name string Required

No description available.

maxLength: 256 bytes
platformIds array of ref#platformId Optional

Commercial platform identifiers (Spotify artist ID, Apple Music artist ID, etc.).

standardIds array of ref#standardId Optional

Canonical identifiers (MusicBrainz artist MBID, etc.).

View raw schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did",
      "description": "Optional DID of the verified Tempo account for this artist."
    },
    "name": {
      "type": "string",
      "maxLength": 256
    },
    "artworkUrl": {
      "type": "string",
      "format": "uri",
      "description": "Fallback artist photo or avatar URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available."
    },
    "platformIds": {
      "type": "array",
      "items": {
        "ref": "#platformId",
        "type": "ref"
      },
      "description": "Commercial platform identifiers (Spotify artist ID, Apple Music artist ID, etc.)."
    },
    "standardIds": {
      "type": "array",
      "items": {
        "ref": "#standardId",
        "type": "ref"
      },
      "description": "Canonical identifiers (MusicBrainz artist MBID, etc.)."
    }
  },
  "description": "A music artist as the standalone subject of a post (no specific release referenced). For artist as an attribute of a song or album, see #artistInfo."
}
authorView object

AppView projection of an actor profile for use as a post or reply author.

Properties

avatar string Optional

Avatar catalog identifier from the author's most recent actor.profile record. Bounds mirror app.tempomusic.actor.profile#catalogAvatar.id.

maxLength: 64 bytes
avatarBackgroundColor string Optional

Avatar background color palette token from the author's most recent actor.profile record. Bounds mirror app.tempomusic.actor.profile#catalogAvatar.backgroundColor.

maxLength: 32 bytes
did string did Required

A decentralized identifier (DID).

displayName string Optional

Display name from the author's most recent actor.profile record. Bounds mirror app.tempomusic.actor.profile#displayName.

maxLength: 180 bytesmaxGraphemes: 18 graphemes
View raw schema
{
  "type": "object",
  "required": [
    "did"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did"
    },
    "avatar": {
      "type": "string",
      "maxLength": 64,
      "description": "Avatar catalog identifier from the author's most recent actor.profile record. Bounds mirror app.tempomusic.actor.profile#catalogAvatar.id."
    },
    "displayName": {
      "type": "string",
      "maxLength": 180,
      "description": "Display name from the author's most recent actor.profile record. Bounds mirror app.tempomusic.actor.profile#displayName.",
      "maxGraphemes": 18
    },
    "avatarBackgroundColor": {
      "type": "string",
      "maxLength": 32,
      "description": "Avatar background color palette token from the author's most recent actor.profile record. Bounds mirror app.tempomusic.actor.profile#catalogAvatar.backgroundColor."
    }
  },
  "description": "AppView projection of an actor profile for use as a post or reply author."
}
platformId object

An identifier issued by a commercial music platform. May change or disappear over time; multiple per entity are possible (regional variants, re-releases, remasters).

Properties

id string Required

No description available.

maxLength: 256 bytes
provider string Required

The platform issuing the identifier. knownValues is informational; AppViews should accept unknown providers and skip them.

maxLength: 100 bytes
Known values: spotify, appleMusic, deezer, tidal, amazonMusic, youtubeMusic
uri string uri Optional

Optional deep-link URI (e.g. spotify:track:xxx, https://music.apple.com/...).

View raw schema
{
  "type": "object",
  "required": [
    "provider",
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 256
    },
    "uri": {
      "type": "string",
      "format": "uri",
      "description": "Optional deep-link URI (e.g. spotify:track:xxx, https://music.apple.com/...)."
    },
    "provider": {
      "type": "string",
      "maxLength": 100,
      "description": "The platform issuing the identifier. knownValues is informational; AppViews should accept unknown providers and skip them.",
      "knownValues": [
        "spotify",
        "appleMusic",
        "deezer",
        "tidal",
        "amazonMusic",
        "youtubeMusic"
      ]
    }
  },
  "description": "An identifier issued by a commercial music platform. May change or disappear over time; multiple per entity are possible (regional variants, re-releases, remasters)."
}
postView object

AppView projection of an app.tempomusic.feed.post record.

Properties

author ref #authorView Required

No description available.

cid string cid Required

A content identifier (CID) referencing immutable data.

indexedAt string datetime Required

Timestamp at which the AppView indexed this post.

likeCount integer Optional

Number of likes indexed against this post.

minimum: 0
record unknown Required

The underlying app.tempomusic.feed.post record. Carried verbatim with its $type discriminator; lexicon-typed as unknown to match the AT Protocol convention for embedded records.

replyCount integer Optional

Number of replies indexed against this post.

minimum: 0
uri string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

viewer ref #viewerState Optional

Viewer-relative projection. Absent when the request omitted the viewer parameter.

View raw schema
{
  "type": "object",
  "required": [
    "uri",
    "cid",
    "author",
    "record",
    "indexedAt"
  ],
  "properties": {
    "cid": {
      "type": "string",
      "format": "cid"
    },
    "uri": {
      "type": "string",
      "format": "at-uri"
    },
    "author": {
      "ref": "#authorView",
      "type": "ref"
    },
    "record": {
      "type": "unknown",
      "description": "The underlying app.tempomusic.feed.post record. Carried verbatim with its $type discriminator; lexicon-typed as unknown to match the AT Protocol convention for embedded records."
    },
    "viewer": {
      "ref": "#viewerState",
      "type": "ref",
      "description": "Viewer-relative projection. Absent when the request omitted the viewer parameter."
    },
    "indexedAt": {
      "type": "string",
      "format": "datetime",
      "description": "Timestamp at which the AppView indexed this post."
    },
    "likeCount": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of likes indexed against this post."
    },
    "replyCount": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of replies indexed against this post."
    }
  },
  "description": "AppView projection of an app.tempomusic.feed.post record."
}
replyView object

AppView projection of an app.tempomusic.feed.reply record.

Properties

author ref #authorView Required

No description available.

cid string cid Required

A content identifier (CID) referencing immutable data.

indexedAt string datetime Required

Timestamp at which the AppView indexed this reply.

likeCount integer Optional

Number of likes indexed against this reply.

minimum: 0
record unknown Required

The underlying app.tempomusic.feed.reply record. Carried verbatim with its $type discriminator; lexicon-typed as unknown to match the AT Protocol convention for embedded records.

uri string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

viewer ref #viewerState Optional

Viewer-relative projection. Absent when the request omitted the viewer parameter.

View raw schema
{
  "type": "object",
  "required": [
    "uri",
    "cid",
    "author",
    "record",
    "indexedAt"
  ],
  "properties": {
    "cid": {
      "type": "string",
      "format": "cid"
    },
    "uri": {
      "type": "string",
      "format": "at-uri"
    },
    "author": {
      "ref": "#authorView",
      "type": "ref"
    },
    "record": {
      "type": "unknown",
      "description": "The underlying app.tempomusic.feed.reply record. Carried verbatim with its $type discriminator; lexicon-typed as unknown to match the AT Protocol convention for embedded records."
    },
    "viewer": {
      "ref": "#viewerState",
      "type": "ref",
      "description": "Viewer-relative projection. Absent when the request omitted the viewer parameter."
    },
    "indexedAt": {
      "type": "string",
      "format": "datetime",
      "description": "Timestamp at which the AppView indexed this reply."
    },
    "likeCount": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of likes indexed against this reply."
    }
  },
  "description": "AppView projection of an app.tempomusic.feed.reply record."
}
songRef object

A specific song. Used as a post subject and as an inline music facet target.

Properties

albumTitle string Optional

Display hint for the album this song is from. Optional. For posts about the album itself as a subject, use albumRef instead.

maxLength: 512 bytes
artist ref #artistInfo Required

The performing artist. Carries display name plus optional DID and external identifiers.

artworkUrl string uri Optional

Fallback artwork URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available.

did string did Optional

Optional DID of a verified Tempo record for this song (e.g. owned by a verified artist account).

platformIds array of ref#platformId Optional

Commercial platform identifiers (Spotify track ID, Apple Music ID, etc.).

releaseYear integer Optional

Year of release. For finer precision (full date, time), AppViews should resolve via platformIds against the music-catalogue rather than encoding it here.

minimum: 1860maximum: 2100
standardIds array of ref#standardId Optional

Canonical identifiers (ISRC, MusicBrainz recording MBID, etc.).

title string Required

No description available.

maxLength: 512 bytes
View raw schema
{
  "type": "object",
  "required": [
    "title",
    "artist"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did",
      "description": "Optional DID of a verified Tempo record for this song (e.g. owned by a verified artist account)."
    },
    "title": {
      "type": "string",
      "maxLength": 512
    },
    "artist": {
      "ref": "#artistInfo",
      "type": "ref",
      "description": "The performing artist. Carries display name plus optional DID and external identifiers."
    },
    "albumTitle": {
      "type": "string",
      "maxLength": 512,
      "description": "Display hint for the album this song is from. Optional. For posts about the album itself as a subject, use albumRef instead."
    },
    "artworkUrl": {
      "type": "string",
      "format": "uri",
      "description": "Fallback artwork URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available."
    },
    "platformIds": {
      "type": "array",
      "items": {
        "ref": "#platformId",
        "type": "ref"
      },
      "description": "Commercial platform identifiers (Spotify track ID, Apple Music ID, etc.)."
    },
    "releaseYear": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 1860,
      "description": "Year of release. For finer precision (full date, time), AppViews should resolve via platformIds against the music-catalogue rather than encoding it here."
    },
    "standardIds": {
      "type": "array",
      "items": {
        "ref": "#standardId",
        "type": "ref"
      },
      "description": "Canonical identifiers (ISRC, MusicBrainz recording MBID, etc.)."
    }
  },
  "description": "A specific song. Used as a post subject and as an inline music facet target."
}
standardId object

A canonical, normative identifier issued by a standards body or community-curated database. Stable across platforms; intended for cross-service resolution and deduplication.

Properties

format string Required

The identifier format. knownValues is informational; AppViews should accept unknown formats and skip them.

maxLength: 100 bytes
Known values: isrc, iswc, upc, ean, musicBrainz
value string Required

No description available.

maxLength: 128 bytes
View raw schema
{
  "type": "object",
  "required": [
    "format",
    "value"
  ],
  "properties": {
    "value": {
      "type": "string",
      "maxLength": 128
    },
    "format": {
      "type": "string",
      "maxLength": 100,
      "description": "The identifier format. knownValues is informational; AppViews should accept unknown formats and skip them.",
      "knownValues": [
        "isrc",
        "iswc",
        "upc",
        "ean",
        "musicBrainz"
      ]
    }
  },
  "description": "A canonical, normative identifier issued by a standards body or community-curated database. Stable across platforms; intended for cross-service resolution and deduplication."
}
viewerState object

Per-viewer projection on a post or reply view.

Properties

like string at-uri Optional

AT-URI of the viewer's like record on this subject, when one exists.

View raw schema
{
  "type": "object",
  "properties": {
    "like": {
      "type": "string",
      "format": "at-uri",
      "description": "AT-URI of the viewer's like record on this subject, when one exists."
    }
  },
  "description": "Per-viewer projection on a post or reply view."
}

Lexicon Garden

@