Skip to content

Markets

The Markets service provides a list of markets where Spotify content is available.

Getting Available Markets

import { Effect } from "effect";
import { Markets, makeSpotifyLayer } from "@spotify-effect/core";
const program = Effect.gen(function* () {
const markets = yield* Markets;
const availableMarkets = yield* markets.getMarkets();
console.log(`Spotify available in ${availableMarkets.length} markets`);
console.log("First 10:", availableMarkets.slice(0, 10).join(", "));
});

Usage with Market Options

Many endpoints accept a market parameter to filter content availability:

const program = Effect.gen(function* () {
const search = yield* Search;
const results = yield* search.search("Radiohead", ["track"], {
market: "GB", // Only return content available in UK
limit: 10,
});
return results;
});

Common Use Cases

Filter content by user’s market

import { Effect } from "effect";
import { Markets, Users } from "@spotify-effect/core";
const getUserCountry = () =>
Effect.gen(function* () {
const users = yield* Users;
const me = yield* users.getCurrentUserProfile();
return me.country ?? "US";
});
const getLocalizedContent = <T>(fetch: (market: string) => Effect.Effect<T>) =>
Effect.gen(function* () {
const market = yield* getUserCountry();
return yield* fetch(market);
});

Check market availability

import { Effect } from "effect";
import { Markets, Albums } from "@spotify-effect/core";
const checkAlbumAvailability = (albumId: string) =>
Effect.gen(function* () {
const markets = yield* Markets;
const albums = yield* Albums;
const [available, album] = yield* Effect.all([markets.getMarkets(), albums.getAlbum(albumId)]);
return {
albumName: album.name,
totalMarkets: available.length,
albumMarkets: album.available_markets,
};
});

List artists by region

const getTopArtistsForRegion = (country: string) =>
Effect.gen(function* () {
const artists = yield* Artists;
const topTracks = yield* artists.getArtistTopTracks("0YC192cP3KPCRWx8zr8MfZ", country);
return {
country,
tracks: topTracks,
};
});

ISO 3166-1 Alpha-2 Country Codes

Spotify uses ISO 3166-1 alpha-2 country codes. Common examples:

CodeCountry
USUnited States
GBUnited Kingdom
CACanada
AUAustralia
DEGermany
FRFrance
JPJapan
BRBrazil

Next steps

  • Albums — get album details
  • Search — search with market filter
  • Browse — featured content by region