# Tracks

#### **useAllTracksQuery**(params?: [IApiListQueryParams](https://spinamp.gitbook.io/spinamp-sdk/reference/api-reference/types#iapilistqueryparams), queryOptions?: [UseQueryOptions](https://tanstack.com/query/v4/docs/reference/useQuery)): {tracks: [ITrack](https://spinamp.gitbook.io/spinamp-sdk/reference/api-reference/types#itrack)\[], ...[UseQueryResult](https://tanstack.com/query/v4/docs/reference/useQuery)}

Used for querying list of all tracks. If no `params` are provided, it will return list of **all** tracks existing in the database, which will result in huge request. For pagination/infinite scroll queries, `usePaginatedTracksQuery` is recommended.

#### **usePaginatedTracksQuery**(pageSize? = 20, params?: Pick<[IApiListQueryParams](https://spinamp.gitbook.io/spinamp-sdk/reference/api-reference/types#iapilistqueryparams), 'filter' | 'orderBy'>, queryOptions?: [UseInfiniteQueryOptions](https://tanstack.com/query/v4/docs/reference/useInfiniteQuery)): {tracks: [ITrack](https://spinamp.gitbook.io/spinamp-sdk/reference/api-reference/types#itrack)\[], totalCount: number | null, ...[UseInfiniteQueryResult](https://tanstack.com/query/v4/docs/reference/useInfiniteQuery)}

Used for querying list of all tracks in chunks, e.g. for infinity lists. Returns flat `tracks` array with all fetched items, `totalCount` and all `UseInfiniteQueryResult` properties, including `fetchNextPage` and `hasNextPage` properties for pagination.

#### **useTrackQuery**(idOrSlug: string, queryOptions?: [UseQueryOptions](https://tanstack.com/query/v4/docs/reference/useQuery)): {track: [ITrack](https://spinamp.gitbook.io/spinamp-sdk/reference/api-reference/types#itrack) | null, ...[UseQueryResult](https://tanstack.com/query/v4/docs/reference/useQuery)}

Used for querying details of specific track based on provided `id` or `slug`.
