An album, EP, single, or any long-form release.
Properties
No description available.
Fallback artwork URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available.
Optional DID of a verified Tempo record for this album.
Commercial platform identifiers (Spotify album ID, Apple Music album ID, etc.).
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
Canonical identifiers (UPC, MusicBrainz release MBID, etc.).
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."
}
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
Optional DID of the verified Tempo account for this artist.
No description available.
maxLength: 256 bytes
No description available.
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)."
}
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
Fallback artist photo or avatar URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available.
Optional DID of the verified Tempo account for this artist.
No description available.
maxLength: 256 bytes
Commercial platform identifiers (Spotify artist ID, Apple Music artist ID, etc.).
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."
}
AppView projection of an actor profile for use as a post or reply author.
Properties
Avatar catalog identifier from the author's most recent actor.profile record. Bounds mirror app.tempomusic.actor.profile#catalogAvatar.id.
maxLength: 64 bytes
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
A decentralized identifier (DID).
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."
}
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
No description available.
maxLength: 256 bytes
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
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)."
}
AppView projection of an app.tempomusic.feed.post record.
Properties
No description available.
A content identifier (CID) referencing immutable data.
Timestamp at which the AppView indexed this post.
Number of likes indexed against this post.
minimum: 0
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.
Number of replies indexed against this post.
minimum: 0
An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).
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."
}
AppView projection of an app.tempomusic.feed.reply record.
Properties
No description available.
A content identifier (CID) referencing immutable data.
Timestamp at which the AppView indexed this reply.
Number of likes indexed against this reply.
minimum: 0
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.
An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).
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."
}
A specific song. Used as a post subject and as an inline music facet target.
Properties
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
The performing artist. Carries display name plus optional DID and external identifiers.
Fallback artwork URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available.
Optional DID of a verified Tempo record for this song (e.g. owned by a verified artist account).
Commercial platform identifiers (Spotify track ID, Apple Music ID, etc.).
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
Canonical identifiers (ISRC, MusicBrainz recording MBID, etc.).
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."
}
A canonical, normative identifier issued by a standards body or community-curated database. Stable across platforms; intended for cross-service resolution and deduplication.
Properties
The identifier format. knownValues is informational; AppViews should accept unknown formats and skip them.
maxLength: 100 bytes
Known values: isrc, iswc, upc, ean, musicBrainz
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."
}
Per-viewer projection on a post or reply view.
Properties
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."
}