> For the complete documentation index, see [llms.txt](https://spinamp.gitbook.io/spinamp-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://spinamp.gitbook.io/spinamp-sdk/reference/api-reference/tracks.md).

# Tracks

#### fetchAllTracks(params: [IApiListQueryParams](/spinamp-sdk/reference/api-reference/types.md#iapilistqueryparams)): Promise<[IApiListQueryResponse](/spinamp-sdk/reference/api-reference/types.md#iapilistqueryresponse)<[ITrack](/spinamp-sdk/reference/api-reference/types.md#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](/spinamp-sdk/reference/api-reference/types.md#itrack) | null>

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

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

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

#### fetchTrackBySlugOrId(slugOrId: string): Promise<[ITrack](/spinamp-sdk/reference/api-reference/types.md#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](/spinamp-sdk/reference/api-reference/types.md#itrack) | null>

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

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

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