openapi: 3.1.1 info: title: Discogs Database User Identity API version: v2.0.0 description: '# Overview The Discogs API v2.0 is a RESTful interface to Discogs data, allowing developers to build applications for web, desktop, and mobile devices. Access JSON-formatted information about Database objects like Artists, Releases, and Labels, and manage User Collections, Wantlists, and Marketplace Listings. For detailed documentation, please visit the [Official Discogs API Documentation](https://www.discogs.com/developers). ## Authentication Most endpoints require authentication. The API supports multiple methods: 1. **Discogs Auth (Key & Secret):** For read-only access to public data with a higher rate limit. 2. **Discogs Auth (Personal Access Token):** For full access to your own user account data. 3. **OAuth 1.0a:** For building third-party applications that act on behalf of other Discogs users. Your application **must** provide a unique `User-Agent` string with every request. ## Rate Limiting Requests are throttled by source IP. - **Authenticated Requests:** 60 requests per minute. - **Unauthenticated Requests:** 25 requests per minute. The API returns the following headers to help you track your usage: - `X-Discogs-Ratelimit`: Total requests allowed in the window. - `X-Discogs-Ratelimit-Used`: Requests you have made. - `X-Discogs-Ratelimit-Remaining`: Requests remaining. ## Data Licensing Some Discogs data is available under the [CC0 No Rights Reserved](http://creativecommons.org/about/cc0) license, while some is restricted. Use of the API is subject to the [API Terms of Use](https://support.discogs.com/hc/articles/360009334593-API-Terms-of-Use). ' termsOfService: https://support.discogs.com/hc/articles/360009334593-API-Terms-of-Use contact: name: Discogs API Support url: https://www.discogs.com/forum/topic/1082 email: api@discogs.com license: name: API Terms of Use url: https://support.discogs.com/hc/articles/360009334593-API-Terms-of-Use x-logo: url: https://www.discogs.com/images/discogs-white.png backgroundColor: '#333333' x-providerName: discogs.com x-origin: - format: markdown url: https://www.discogs.com/developers version: v2.0 x-generated-from: documentation x-last-validated: '2026-05-29' servers: - url: https://api.discogs.com description: Production API Server security: - DiscogsToken: [] tags: - name: User Identity description: Authenticated user identity, profile, submissions, and contributions. paths: /oauth/identity: get: tags: - User Identity summary: Discogs Get User Identity operationId: getUserIdentity description: 'Retrieve basic information about the authenticated user. This endpoint is useful for verifying that OAuth authentication is working correctly. ' security: - DiscogsOAuth: [] DiscogsTokenAuth: [] responses: '200': description: Successfully retrieved identity information. content: application/json: schema: $ref: '#/components/schemas/Identity' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{username}: get: tags: - User Identity summary: Discogs Get a User Profile operationId: getUserProfile description: Retrieve public profile information for a Discogs user. security: - DiscogsAuth: [] parameters: - $ref: '#/components/parameters/Username' responses: '200': description: Successfully retrieved user profile. content: application/json: schema: $ref: '#/components/schemas/Profile' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: tags: - User Identity summary: Discogs Update User Profile operationId: updateUserProfile description: Update the authenticated user's profile fields. parameters: - name: username in: path required: true description: Discogs username. schema: type: string example: rodneyfool requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProfileUpdate' responses: '200': description: Profile updated content: application/json: schema: $ref: '#/components/schemas/Profile' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' security: - OAuth1: - write x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{username}/contributions: get: tags: - User Identity summary: Discogs Get User Contributions operationId: getUserContributions description: List all releases a user has contributed to. parameters: - name: username in: path required: true description: Discogs username. schema: type: string example: shooezgirl - name: page in: query description: Page number. schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Items per page. schema: type: integer minimum: 1 maximum: 100 default: 50 - name: sort in: query description: Sort field. schema: type: string enum: - label - artist - title - catno - format - rating - year - added - name: sort_order in: query description: Sort order. schema: type: string enum: - asc - desc responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Contribution' x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{username}/submissions: get: tags: - User Identity summary: Discogs Get User Submissions operationId: getUserSubmissions description: List all submissions (artist/label/release edits) by a user. parameters: - name: username in: path required: true description: Discogs username. schema: type: string example: shooezgirl - name: page in: query description: Page number. schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Items per page. schema: type: integer minimum: 1 maximum: 100 default: 50 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Submission' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: Contribution: type: object description: A user's contribution to the Discogs database. properties: pagination: $ref: '#/components/schemas/Pagination' contributions: type: array items: $ref: '#/components/schemas/ReleaseSummary' Identity: type: object properties: id: type: integer username: type: string resource_url: type: string format: uri consumer_name: type: string LabelSummary: type: object properties: id: type: integer name: type: string resource_url: type: string format: uri catno: type: string nullable: true entity_type: type: string nullable: true Error: type: object properties: message: type: string ReleaseSummary: type: object properties: id: type: integer title: type: string year: type: integer resource_url: type: string format: uri thumb: type: string format: uri cover_image: type: string format: uri formats: type: array items: $ref: '#/components/schemas/ReleaseFormat' labels: type: array items: $ref: '#/components/schemas/LabelSummary' artists: type: array items: $ref: '#/components/schemas/ArtistSummary' genres: type: array items: type: string styles: type: array items: type: string ProfileUpdate: type: object description: Editable profile fields. properties: name: type: string home_page: type: string location: type: string profile: type: string curr_abbr: type: string enum: - USD - GBP - EUR - CAD - AUD - JPY - CHF - MXN - BRL - NZD - SEK - ZAR Submission: type: object description: A submission (release/artist/label edit) made by a user. properties: pagination: $ref: '#/components/schemas/Pagination' submissions: type: object properties: artists: type: array items: $ref: '#/components/schemas/ArtistSummary' labels: type: array items: $ref: '#/components/schemas/LabelSummary' releases: type: array items: $ref: '#/components/schemas/ReleaseSummary' ArtistSummary: type: object properties: id: type: integer name: type: string resource_url: type: string format: uri anv: type: string nullable: true join: type: string nullable: true role: type: string nullable: true tracks: type: string nullable: true ReleaseFormat: type: object properties: name: type: string qty: type: string text: type: string nullable: true descriptions: type: array items: type: string Profile: type: object properties: id: type: integer readOnly: true username: type: string resource_url: type: string format: uri readOnly: true uri: type: string format: uri readOnly: true name: type: string nullable: true home_page: type: string format: uri nullable: true location: type: string nullable: true profile: type: string nullable: true registered: type: string format: date-time rank: type: number format: float num_pending: type: integer num_for_sale: type: integer num_collection: type: integer num_wantlist: type: integer num_lists: type: integer releases_contributed: type: integer releases_rated: type: integer rating_avg: type: number format: float inventory_url: type: string format: uri collection_folders_url: type: string format: uri collection_fields_url: type: string format: uri wantlist_url: type: string format: uri avatar_url: type: string format: uri banner_url: type: string format: uri nullable: true curr_abbr: $ref: '#/components/schemas/Currency' seller_rating: type: number format: float seller_num_ratings: type: integer buyer_rating: type: number format: float buyer_num_ratings: type: integer email: type: string format: email Currency: type: string enum: - USD - GBP - EUR - CAD - AUD - JPY - CHF - MXN - BRL - NZD - SEK - ZAR Pagination: type: object description: Details for paginated results. properties: page: type: integer pages: type: integer per_page: type: integer items: type: integer urls: type: object properties: first: type: string format: uri nullable: true prev: type: string format: uri nullable: true next: type: string format: uri nullable: true last: type: string format: uri nullable: true responses: NotFound: description: Not Found. The requested resource does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' example: message: Resource not found. Unauthorized: description: Unauthorized. Authentication information is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' example: message: You must authenticate to access this resource. parameters: Username: name: username in: path required: true description: The user's Discogs username. schema: type: string example: rodneyfool securitySchemes: DiscogsToken: type: apiKey in: header name: Authorization description: 'Discogs personal access token in header: ''Discogs token={token}''.' DiscogsKeySecret: type: apiKey in: header name: Authorization description: 'Discogs consumer key + secret in header: ''Discogs key={key}, secret={secret}''.' OAuth1: type: oauth2 description: OAuth 1.0a flow modeled as OAuth2 for tooling. Required for write actions on behalf of other users. flows: authorizationCode: authorizationUrl: https://discogs.com/oauth/authorize tokenUrl: https://api.discogs.com/oauth/access_token scopes: read: Read user data write: Write/update user resources externalDocs: description: Discogs Developers Portal url: https://www.discogs.com/developers