# Artists

#### fetchAllArtists(params: [IApiListQueryParams](../types#iapilistqueryparams)): Promise<[IApiListQueryResponse](../types#iapilistqueryresponse)<[IArtist](../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](https://spindex-api.spinamp.xyz/v1/graphiql).

#### fetchArtistById(artistId: string): Promise<[IArtist](../types#iartist) | null>

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

#### fetchArtistBySlug(slug: string): Promise<[IArtist](../types#iartist) | null>

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

#### fetchArtistBySlugOrId(slugOrId: string): Promise<[IArtist](../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](../types#iartist) | null>

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

#### fetchArtistTracks(artistId): Promise<[ITrack](../types#itrack)\[]>

Returns list of full tracks objects created by provided artist.

#### fetchArtistWithTracks(idOrSlug: string): Promise<{artist: [IArtist](../types#iartist) | null, tracks: [ITrack](../types#itrack)\[]}>

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