# Get Artist Profile

Source: https://recoupable.dev/docs/api-reference/artists/profile

Public artist profile: the artist's name, image, connected social profiles, and linked catalogs in one call.

## GET /api/artists/{id}/profile

Full OpenAPI specification: https://recoupable.dev/docs/spec/releases.json

## Authentication

The supplied specification does not declare an OpenAPI security object for this operation. Its declared headers and parameters still apply. Consult the authentication guide and the full specification before calling it.

[Authentication guide](https://recoupable.dev/docs/authentication)

## Operation and referenced schemas

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Recoup API - Releases",
    "description": "API documentation for the Recoup platform - an AI agent platform for the music industry",
    "license": {
      "name": "MIT"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.recoupable.dev"
    }
  ],
  "paths": {
    "/api/artists/{id}/profile": {
      "get": {
        "description": "Public artist profile: the artist's name, image, connected social profiles, and linked catalogs in one call.\n\n**No authentication.** This endpoint is deliberately public and unbilled — it backs the shareable artist page at `chat.recoupable.dev/artists/{id}` and can be called without an API key. Only public fields are returned; account settings, instructions, and valuation data are never included.\n\nResponses are cacheable (`Cache-Control: public, s-maxage=300, stale-while-revalidate=600`), so a value may be up to a few minutes stale.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier (UUID) of the artist account.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Artist profile retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArtistPublicProfileResponse"
                }
              }
            }
          },
          "404": {
            "description": "No artist with this id. Returned for unknown ids and for accounts that are not artists — the two cases are deliberately indistinguishable, so the endpoint cannot be used to probe which account ids exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArtistPublicProfileErrorResponse"
                },
                "example": {
                  "status": "error",
                  "error": "Artist not found"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ArtistPublicProfileResponse": {
        "type": "object",
        "required": [
          "id",
          "name",
          "image",
          "socials",
          "catalogs",
          "valuation"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The artist's account id."
          },
          "name": {
            "type": "string",
            "description": "The artist's display name."
          },
          "image": {
            "type": "string",
            "nullable": true,
            "description": "URL of the artist's profile image, or null when none is set."
          },
          "socials": {
            "type": "array",
            "description": "Connected social profiles, empty when none are linked.",
            "items": {
              "$ref": "#/components/schemas/ArtistPublicProfileSocial"
            }
          },
          "catalogs": {
            "type": "array",
            "description": "Catalogs linked to the artist, newest first; empty when none are linked.",
            "items": {
              "$ref": "#/components/schemas/ArtistPublicProfileCatalog"
            }
          },
          "valuation": {
            "$ref": "#/components/schemas/ArtistPublicProfileValuation",
            "description": "Estimated value band for the artist's catalog(s), from the published Recoup valuation model over all credited songs' latest play counts. Null when the artist has no measured songs.",
            "nullable": true
          }
        }
      },
      "ArtistPublicProfileErrorResponse": {
        "type": "object",
        "required": [
          "status",
          "error"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "error"
            ],
            "description": "Always `error`."
          },
          "error": {
            "type": "string",
            "description": "Human-readable error message.",
            "example": "Artist not found"
          }
        }
      },
      "ArtistPublicProfileSocial": {
        "type": "object",
        "required": [
          "type",
          "username",
          "profile_url"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Platform name derived from the profile URL, e.g. SPOTIFY, INSTAGRAM, TIKTOK, YOUTUBE.",
            "example": "SPOTIFY"
          },
          "username": {
            "type": "string",
            "nullable": true,
            "description": "The artist's handle on the platform, when known."
          },
          "profile_url": {
            "type": "string",
            "description": "Public URL of the profile on the platform."
          }
        }
      },
      "ArtistPublicProfileCatalog": {
        "type": "object",
        "required": [
          "id",
          "name",
          "song_count",
          "updated_at",
          "songs"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The catalog id."
          },
          "name": {
            "type": "string",
            "description": "The catalog's display name."
          },
          "song_count": {
            "type": "integer",
            "description": "Number of songs currently in the catalog."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the catalog last changed."
          },
          "songs": {
            "type": "array",
            "description": "The catalog's songs crediting this artist, sorted by plays descending and capped at the top 50 — `song_count` reflects the full catalog and may exceed `songs.length`.",
            "items": {
              "$ref": "#/components/schemas/ArtistPublicProfileSong"
            }
          }
        }
      },
      "ArtistPublicProfileValuation": {
        "type": "object",
        "required": [
          "low",
          "mid",
          "high"
        ],
        "properties": {
          "low": {
            "type": "number",
            "description": "Low end of the estimated catalog value band, USD."
          },
          "mid": {
            "type": "number",
            "description": "Mid estimate of the catalog value, USD."
          },
          "high": {
            "type": "number",
            "description": "High end of the estimated catalog value band, USD."
          }
        }
      },
      "ArtistPublicProfileSong": {
        "type": "object",
        "required": [
          "isrc",
          "name",
          "album",
          "artwork_url",
          "plays",
          "est_value_usd"
        ],
        "properties": {
          "isrc": {
            "type": "string",
            "description": "The song's ISRC.",
            "example": "QZTPX2553097"
          },
          "name": {
            "type": "string",
            "description": "The song's title."
          },
          "album": {
            "type": "string",
            "nullable": true,
            "description": "The album or release the song belongs to, when known."
          },
          "artwork_url": {
            "type": "string",
            "nullable": true,
            "description": "Apple Music artwork URL for the song's release, or null when artwork has not been resolved yet."
          },
          "plays": {
            "type": "integer",
            "description": "The song's latest captured Spotify play count. Captures are periodic, so this can lag the live number."
          },
          "est_value_usd": {
            "type": "number",
            "description": "Estimated value of the song in USD — the mid point of the published Recoup valuation model applied to this song's plays."
          }
        }
      }
    }
  }
}
```
