# Artists

#### fetchAllArtists(params: [IApiListQueryParams](https://spinamp.gitbook.io/spinamp-sdk/reference/types#iapilistqueryparams)): Promise<[IApiListQueryResponse](https://spinamp.gitbook.io/spinamp-sdk/reference/types#iapilistqueryresponse)<[IArtist](https://spinamp.gitbook.io/spinamp-sdk/reference/types#iartist)>>

If no params are provided, returns list of all artists existing in the database. Params can be used for pagination, filtering and sorting

Allowed properties for `filter` and `orderBy` params can be found under `allTracks` query on spinamp pipeline API documentation: <https://spindex-api.spinamp.xyz/v1/graphiql>.

#### fetchArtistById(artistId: string): Promise<[IArtist](https://spinamp.gitbook.io/spinamp-sdk/reference/types#iartist) | null>

Returns full artist object based on artist id or `null` if such id doesn't exist.

#### fetchArtistBySlug(slug: string): Promise<[IArtist](https://spinamp.gitbook.io/spinamp-sdk/reference/types#iartist) | null>

Returns full artist object based on track slug or `null` if such slug doesn't exist.

#### fetchArtistBySlugOrId(slugOrId: string): Promise<[IArtist](https://spinamp.gitbook.io/spinamp-sdk/reference/types#iartist) | null>

It first tries to find an artist using provided param as slug. If not found, then it tries to find by id.

#### fetchArtistByIdOrSlug(idOrSlug: string): Promise<[IArtist](https://spinamp.gitbook.io/spinamp-sdk/reference/types#iartist) | null>

The same as above, but it first tries to find artist by id.

#### fetchArtistTracks(artistId): Promise<[ITrack](https://spinamp.gitbook.io/spinamp-sdk/reference/types#itrack)\[]>

Returns list of full tracks objects created by provided artist.

#### fetchArtistWithTracks(idOrSlug: string): Promise<{artist: [IArtist](https://spinamp.gitbook.io/spinamp-sdk/reference/types#iartist) | null, tracks: [ITrack](https://spinamp.gitbook.io/spinamp-sdk/reference/types#itrack)\[]}>

Returns both full artist object and artist tracks list based on provided slug or id.
