Account
Your own profile and preferences. The only group that needs a credential.
The authenticated user profile
/api/auth/meAuth requiredThe identity behind the current credential, and the cheapest way to check that a credential is live: it answers 200 with the profile it belongs to, or 401. Accepts either a session cookie or an API key.
The response carries the profile’s preferred currency code, so a client can initialise without a second call. An API key with no backing profile resolves that field to null.
Request
curl "https://api.scmm.app/api/auth/me" \
-H "x-api-key: YOUR_KEY_HERE"Response
- roles*
array<string> - authType*
enum - currency
string | nullPreferred 3-letter currency code.
- id*
string - steamId*
string - name*
string | null - avatarUrl*
string | null - apiKeyId
string - apiKeyName
string
A public profile by id
/api/profile/{id}The public view of one profile: Steam id, name, avatar, trade URL, community visibility, when its inventory was last imported and a count of what is in it. Accepts a profile id or guid, a Steam vanity name, or a 64-bit Steam id.
No credential is required. It answers 401 when the subject has opted out of item analytics and the caller is neither its owner nor an administrator — the gate is the subject’s privacy setting, not the caller’s identity.
Parameters
| Name | In | Required | Description |
|---|---|---|---|
| id | path | yes | Profile id, profile guid, vanity url, or 64-bit Steam id. |
Request
curl "https://api.scmm.app/api/profile/<id>"Response
- id*
stringCanonical profile id (the UUID used as
:profileIdon the inventory endpoints). - steamId*
string - name*
string | null - avatarUrl*
string | null - tradeUrl*
string | null - privacy*
numberSteam community visibility — 0 unknown, 1 private, 2 friends-only, 3 public.
- lastUpdatedInventoryOn*
string | nullISO timestamp of the last completed inventory import, or
nullif never imported. object
Delete all data held about the authenticated profile
/api/profile/dataAuth requiredIrreversible. Accepted item creators are stripped back to their public Steam identity (id, name, avatar) rather than deleted, so the items they authored keep their attribution. Everyone else is removed outright.
Request
curl -X DELETE "https://api.scmm.app/api/profile/data" \
-H "x-api-key: YOUR_KEY_HERE"Every piece of data held about the authenticated profile
/api/profile/dataAuth requiredReturns a JSON attachment containing the profile, inventory, market items, and preferences.
Request
curl "https://api.scmm.app/api/profile/data" \
-H "x-api-key: YOUR_KEY_HERE"The authenticated user’s own profile
/api/profile/meAuth requiredThe full profile of the signed-in user, including the fields the public view omits: the resolved language and currency, donation level, role flags and a summary of their inventory. Requires a session; an API key with no backing profile answers 401.
Request
curl "https://api.scmm.app/api/profile/me" \
-H "x-api-key: YOUR_KEY_HERE"Response
- profileId*
string | null - avatarLargeUrl*
string | null - languageId*
string | null - language*
string | null - currencyId*
string | null - currency*
string | nullResolved 3-letter preferred-currency code, or
null. - donatorLevel*
number - gamblingOffset*
string - isTradeBanned*
boolean - isCommunityBanned*
boolean - itemAnalyticsParticipation*
number - preferences*
object - roles*
array<string> - firstSignInTime*
string | null - lastSignInTime*
string | null - lastViewedInventoryOn*
string | null - lastUpdatedFriendsOn*
string | null - lastUpdatedProfileOn*
string | null - id*
stringCanonical profile id (the UUID used as
:profileIdon the inventory endpoints). - steamId*
string - name*
string | null - avatarUrl*
string | null - tradeUrl*
string | null - privacy*
numberSteam community visibility — 0 unknown, 1 private, 2 friends-only, 3 public.
- lastUpdatedInventoryOn*
string | nullISO timestamp of the last completed inventory import, or
nullif never imported. object
Update the authenticated user’s profile
/api/profile/meAuth requiredUpdates the signed-in user’s own profile and returns it as it now stands. Every field is optional, and only the fields present in the body are written — a PATCH with one key leaves the rest untouched. A value outside the accepted set is rejected with 400 rather than stored.
Request body
- tradeUrl
string | null - languageId
string | null - currencyId
string | null - gamblingOffset
string - itemAnalyticsParticipation
enum - preferences
object
Request
curl -X PATCH "https://api.scmm.app/api/profile/me" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_KEY_HERE" \
-d '{"tradeUrl":"<tradeUrl>"}'Response
- profileId*
string | null - avatarLargeUrl*
string | null - languageId*
string | null - language*
string | null - currencyId*
string | null - currency*
string | nullResolved 3-letter preferred-currency code, or
null. - donatorLevel*
number - gamblingOffset*
string - isTradeBanned*
boolean - isCommunityBanned*
boolean - itemAnalyticsParticipation*
number - preferences*
object - roles*
array<string> - firstSignInTime*
string | null - lastSignInTime*
string | null - lastViewedInventoryOn*
string | null - lastUpdatedFriendsOn*
string | null - lastUpdatedProfileOn*
string | null - id*
stringCanonical profile id (the UUID used as
:profileIdon the inventory endpoints). - steamId*
string - name*
string | null - avatarUrl*
string | null - tradeUrl*
string | null - privacy*
numberSteam community visibility — 0 unknown, 1 private, 2 friends-only, 3 public.
- lastUpdatedInventoryOn*
string | nullISO timestamp of the last completed inventory import, or
nullif never imported. object
Update the authenticated user’s preferences
/api/profile/me/preferencesAuth requiredUpdates the site-customisation preferences of the signed-in user and returns the whole profile as it now stands. Only the keys present in the body are written. These preferences change what other endpoints return for this caller — which markets and payment types are considered when electing a cheapest offer, whether market fees are included in a price, and the default ordering of the item store — so a change here is visible on reads, not only here.
Request body
- currency
string - language
string - theme
enum - notifications
object
Request
curl -X PATCH "https://api.scmm.app/api/profile/me/preferences" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_KEY_HERE" \
-d '{"currency":"USD"}'Response
- profileId*
string | null - avatarLargeUrl*
string | null - languageId*
string | null - language*
string | null - currencyId*
string | null - currency*
string | nullResolved 3-letter preferred-currency code, or
null. - donatorLevel*
number - gamblingOffset*
string - isTradeBanned*
boolean - isCommunityBanned*
boolean - itemAnalyticsParticipation*
number - preferences*
object - roles*
array<string> - firstSignInTime*
string | null - lastSignInTime*
string | null - lastViewedInventoryOn*
string | null - lastUpdatedFriendsOn*
string | null - lastUpdatedProfileOn*
string | null - id*
stringCanonical profile id (the UUID used as
:profileIdon the inventory endpoints). - steamId*
string - name*
string | null - avatarUrl*
string | null - tradeUrl*
string | null - privacy*
numberSteam community visibility — 0 unknown, 1 private, 2 friends-only, 3 public.
- lastUpdatedInventoryOn*
string | nullISO timestamp of the last completed inventory import, or
nullif never imported. object