# Tracks

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

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

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

#### fetchTrackById(trackId: string): Promise<[ITrack](https://spinamp.gitbook.io/spinamp-sdk/reference/types#itrack) | null>

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

#### fetchTrackBySlug(slug: string): Promise<[ITrack](https://spinamp.gitbook.io/spinamp-sdk/reference/types#itrack) | null>

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

#### fetchTrackBySlugOrId(slugOrId: string): Promise<[ITrack](https://spinamp.gitbook.io/spinamp-sdk/reference/types#itrack) | null>

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

#### fetchTrackByIdOrSlug(idOrSlug: string): Promise<[ITrack](https://spinamp.gitbook.io/spinamp-sdk/reference/types#itrack) | null>

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

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

Returns list of full track objects based on provided list of track ids.
