openapi: 3.1.1 info: title: Discogs Database User Collection 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 Collection description: Manage a user's record collection. paths: /users/{username}/collection/folders: get: tags: - User Collection summary: Discogs Get Collection Folders operationId: getCollectionFolders description: 'Retrieve a list of folders in a user’s collection. If the collection is private, authentication as the owner is required. If not authenticated as the owner, only the "All" folder (ID 0) is returned for public collections. ' security: - DiscogsAuth: [] parameters: - $ref: '#/components/parameters/Username' responses: '200': description: A list of collection folders. content: application/json: schema: type: object properties: folders: type: array items: $ref: '#/components/schemas/CollectionFolder' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: tags: - User Collection summary: Discogs Create a Collection Folder operationId: createCollectionFolder description: Create a new folder in a user’s collection. Authentication as the owner is required. security: - DiscogsOAuth: [] DiscogsTokenAuth: [] parameters: - $ref: '#/components/parameters/Username' requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string description: The name of the new folder. example: My Favorites responses: '201': description: Folder created successfully. content: application/json: schema: $ref: '#/components/schemas/CollectionFolder' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{username}/collection/folders/{folder_id}/releases: get: tags: - User Collection summary: Discogs Get Collection Items by Folder operationId: getCollectionItemsByFolder description: 'Returns the list of items in a folder in a user’s collection. Accepts pagination. If `folder_id` is not 0 or the collection is private, authentication as the collection owner is required. ' security: - DiscogsAuth: [] parameters: - $ref: '#/components/parameters/Username' - $ref: '#/components/parameters/FolderId' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/PerPage' - $ref: '#/components/parameters/SortCollection' - $ref: '#/components/parameters/SortOrder' responses: '200': description: A paginated list of releases in the folder. headers: Link: $ref: '#/components/headers/Link' content: application/json: schema: type: object properties: pagination: $ref: '#/components/schemas/Pagination' releases: type: array items: $ref: '#/components/schemas/CollectionRelease' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{username}/collection/folders/{folder_id}/releases/{release_id}: post: tags: - User Collection summary: Discogs Add Release to Collection Folder operationId: addReleaseToCollectionFolder description: 'Add a release to a folder in a user''s collection. `folder_id` must be non-zero (use `1` for "Uncategorized"). Authentication as the collection owner is required. ' security: - DiscogsOAuth: [] DiscogsTokenAuth: [] parameters: - $ref: '#/components/parameters/Username' - $ref: '#/components/parameters/FolderId' - $ref: '#/components/parameters/ReleaseId' responses: '201': description: Release added to collection successfully. content: application/json: schema: type: object properties: instance_id: type: integer description: The new instance ID for this release in the collection. example: 148842233 resource_url: type: string format: uri '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: parameters: PerPage: name: per_page in: query description: The number of items to return per page. schema: type: integer default: 50 minimum: 1 maximum: 100 ReleaseId: name: release_id in: path required: true description: The ID of the release. schema: type: integer example: 249504 SortOrder: name: sort_order in: query description: The order to sort the results. schema: type: string enum: - asc - desc default: desc SortCollection: name: sort in: query description: The field to sort the results by. schema: type: string enum: - label - artist - title - catno - format - rating - added - year default: added Page: name: page in: query description: The page number to return. schema: type: integer default: 1 minimum: 1 FolderId: name: folder_id in: path required: true description: The ID of the collection folder. schema: type: integer example: 1 Username: name: username in: path required: true description: The user's Discogs username. schema: type: string example: rodneyfool 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. schemas: 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 CollectionRelease: type: object properties: id: type: integer instance_id: type: integer folder_id: type: integer rating: type: integer date_added: type: string format: date-time basic_information: $ref: '#/components/schemas/ReleaseSummary' CollectionFolder: type: object properties: id: type: integer name: type: string count: type: integer resource_url: type: string format: uri 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 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 headers: Link: description: 'Contains URLs for pagination, compliant with RFC 5988. It provides `first`, `prev`, `next`, and `last` links where applicable. ' schema: type: string example: ; rel="next", ; rel="last" 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