diff --git a/api/swagger/swagger-v1.yaml b/api/swagger/swagger-v1.yaml index f8fcf5c4..61f49cdf 100644 --- a/api/swagger/swagger-v1.yaml +++ b/api/swagger/swagger-v1.yaml @@ -2,6781 +2,6891 @@ openapi: 3.0.1 info: title: API description: Audius V1 API - version: '1.0' + version: "1.0" servers: -- url: /v1 + - url: /v1 tags: -- name: users - description: User related operations -- name: playlists - description: Playlist related operations -- name: tracks - description: Track related operations -- name: challenges - description: Challenge related operations -- name: tips - description: Tip related operations -- name: developer_apps - description: Developer app related operations -- name: dashboard_wallet_users - description: Protocol dashboard wallet users related operations -- name: resolve - description: Audius Cannonical URL resolver -- name: comments - description: Comment related operations -- name: events - description: Events related operations -- name: explore - description: Explore related operations -- name: rewards - description: Rewards related operations -- name: prizes - description: Prize claiming related operations + - name: users + description: User related operations + - name: playlists + description: Playlist related operations + - name: tracks + description: Track related operations + - name: challenges + description: Challenge related operations + - name: tips + description: Tip related operations + - name: developer_apps + description: Developer app related operations + - name: dashboard_wallet_users + description: Protocol dashboard wallet users related operations + - name: resolve + description: Audius Cannonical URL resolver + - name: comments + description: Comment related operations + - name: events + description: Events related operations + - name: explore + description: Explore related operations + - name: rewards + description: Rewards related operations + - name: prizes + description: Prize claiming related operations paths: /challenges/undisbursed: get: tags: - - challenges + - challenges description: Get all undisbursed challenges operationId: Get Undisbursed Challenges parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: A User ID to filter the undisbursed challenges to a particular - user - schema: - type: string - - name: completed_blocknumber - in: query - description: Starting blocknumber to retrieve completed undisbursed challenges - schema: - type: integer - - name: challenge_id - in: query - description: A challenge ID to filter the undisbursed challenges to a particular - challenge - schema: - type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: + A User ID to filter the undisbursed challenges to a particular + user + schema: + type: string + - name: completed_blocknumber + in: query + description: Starting blocknumber to retrieve completed undisbursed challenges + schema: + type: integer + - name: challenge_id + in: query + description: + A challenge ID to filter the undisbursed challenges to a particular + challenge + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/undisbursed_challenges' - '400': + $ref: "#/components/schemas/undisbursed_challenges" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /challenges/undisbursed/{user_id}: get: tags: - - challenges + - challenges description: Get all undisbursed challenges for a user operationId: Get Undisbursed Challenges For User parameters: - - name: user_id - in: path - description: A User ID to filter the undisbursed challenges to a particular - user - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: completed_blocknumber - in: query - description: Starting blocknumber to retrieve completed undisbursed challenges - schema: - type: integer - - name: challenge_id - in: query - description: A challenge ID to filter the undisbursed challenges to a particular - challenge - schema: - type: string + - name: user_id + in: path + description: + A User ID to filter the undisbursed challenges to a particular + user + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: completed_blocknumber + in: query + description: Starting blocknumber to retrieve completed undisbursed challenges + schema: + type: integer + - name: challenge_id + in: query + description: + A challenge ID to filter the undisbursed challenges to a particular + challenge + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/undisbursed_challenges' - '400': + $ref: "#/components/schemas/undisbursed_challenges" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /comments/unclaimed_id: get: tags: - - comments + - comments description: Gets an unclaimed blockchain comment ID operationId: Get unclaimed comment ID responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/unclaimed_id_response' - '500': + $ref: "#/components/schemas/unclaimed_id_response" + "500": description: Server error content: {} /comments: post: tags: - - comments + - comments description: Creates a new comment operationId: Create Comment security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/create_comment_request_body' + $ref: "#/components/schemas/create_comment_request_body" responses: - '201': + "201": description: Comment created successfully content: application/json: schema: - $ref: '#/components/schemas/create_comment_response' - '400': + $ref: "#/components/schemas/create_comment_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '500': + "500": description: Server error content: {} /comments/{comment_id}: get: tags: - - comments + - comments description: Gets a comment by ID operationId: Get Comment parameters: - - name: comment_id - in: path - description: A Comment ID - required: true - schema: - type: string + - name: comment_id + in: path + description: A Comment ID + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/comment_response' - '500': + $ref: "#/components/schemas/comment_response" + "500": description: Server error content: {} put: tags: - - comments + - comments description: Updates a comment operationId: Update Comment security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: comment_id - in: path - description: A Comment ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: comment_id + in: path + description: A Comment ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/update_comment_request_body' + $ref: "#/components/schemas/update_comment_request_body" responses: - '200': + "200": description: Comment updated successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Comment not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - comments + - comments description: Deletes a comment operationId: Delete Comment security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: comment_id - in: path - description: A Comment ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: comment_id + in: path + description: A Comment ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Comment deleted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Comment not found content: {} - '500': + "500": description: Server error content: {} /comments/{comment_id}/react: post: tags: - - comments + - comments description: React to a comment operationId: React to Comment security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: comment_id - in: path - description: A Comment ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: comment_id + in: path + description: A Comment ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: content: application/json: schema: - $ref: '#/components/schemas/react_comment_request_body' + $ref: "#/components/schemas/react_comment_request_body" required: true x-codegen-request-body-name: metadata responses: - '200': + "200": description: Comment reacted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Comment not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - comments + - comments description: Unreact to a comment operationId: Unreact to Comment security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: comment_id - in: path - description: A Comment ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: comment_id + in: path + description: A Comment ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: content: application/json: schema: - $ref: '#/components/schemas/react_comment_request_body' + $ref: "#/components/schemas/react_comment_request_body" required: true x-codegen-request-body-name: metadata responses: - '200': + "200": description: Comment unreacted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Comment not found content: {} - '500': + "500": description: Server error content: {} /comments/{comment_id}/pin: post: tags: - - comments + - comments description: Pin a comment operationId: Pin Comment security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: comment_id - in: path - description: A Comment ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: comment_id + in: path + description: A Comment ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: content: application/json: schema: - $ref: '#/components/schemas/pin_comment_request_body' + $ref: "#/components/schemas/pin_comment_request_body" required: true x-codegen-request-body-name: metadata responses: - '200': + "200": description: Comment pinned successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Comment not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - comments + - comments description: Unpin a comment operationId: Unpin Comment security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: comment_id - in: path - description: A Comment ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: comment_id + in: path + description: A Comment ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: content: application/json: schema: - $ref: '#/components/schemas/pin_comment_request_body' + $ref: "#/components/schemas/pin_comment_request_body" required: true x-codegen-request-body-name: metadata responses: - '200': + "200": description: Comment unpinned successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Comment not found content: {} - '500': + "500": description: Server error content: {} /comments/{comment_id}/report: post: tags: - - comments + - comments description: Report a comment operationId: Report Comment security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: comment_id - in: path - description: A Comment ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: comment_id + in: path + description: A Comment ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Comment reported successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Comment not found content: {} - '500': + "500": description: Server error content: {} /comments/{comment_id}/replies: get: tags: - - comments + - comments description: Gets replies to a parent comment operationId: Get Comment Replies parameters: - - name: comment_id - in: path - description: A Comment ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: comment_id + in: path + description: A Comment ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/comment_replies_response' - '400': + $ref: "#/components/schemas/comment_replies_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /developer-apps: post: tags: - - developer_apps + - developer_apps description: Create a new developer app. Indexer validates grants. operationId: Create Developer App parameters: - - name: user_id - in: query - description: The user ID of the user creating the developer app - required: true - schema: - type: string + - name: user_id + in: query + description: The user ID of the user creating the developer app + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/create_developer_app_request_body' + $ref: "#/components/schemas/create_developer_app_request_body" responses: - '200': + "200": description: Developer app created successfully content: application/json: schema: - $ref: '#/components/schemas/create_developer_app_response' - '400': + $ref: "#/components/schemas/create_developer_app_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '500': + "500": description: Server error content: {} /developer-apps/{address}: get: tags: - - developer_apps + - developer_apps description: Gets developer app matching given address (API key) operationId: Get Developer App parameters: - - name: address - in: path - description: A developer app address (API Key) - required: true - schema: - type: string + - name: address + in: path + description: A developer app address (API Key) + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/developer_app_response' - '400': + $ref: "#/components/schemas/developer_app_response" + "400": description: Bad request content: {} - '404': + "404": description: Not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - developer_apps + - developer_apps description: Deletes a developer app. Indexer validates grants. operationId: Delete Developer App parameters: - - name: user_id - in: query - description: The user ID of the user who owns the developer app - required: true - schema: - type: string - - name: address - in: path - description: Developer app address (API Key) - required: true - schema: - type: string + - name: user_id + in: query + description: The user ID of the user who owns the developer app + required: true + schema: + type: string + - name: address + in: path + description: Developer app address (API Key) + required: true + schema: + type: string responses: - '200': + "200": description: Developer app deleted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Not found content: {} - '500': + "500": description: Server error content: {} put: tags: - - developer_apps + - developer_apps description: Updates a developer app. Indexer validates grants. operationId: Update Developer App parameters: - - name: user_id - in: query - description: The user ID of the user who owns the developer app - required: true - schema: - type: string - - name: address - in: path - description: Developer app address (API Key) - required: true - schema: - type: string + - name: user_id + in: query + description: The user ID of the user who owns the developer app + required: true + schema: + type: string + - name: address + in: path + description: Developer app address (API Key) + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/update_developer_app_request_body' + $ref: "#/components/schemas/update_developer_app_request_body" responses: - '200': + "200": description: Developer app updated successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '400': + $ref: "#/components/schemas/write_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '404': + "404": description: Developer app not found content: {} - '500': + "500": description: Server error content: {} /developer-apps/{address}/register-api-key: post: tags: - - developer_apps - description: Register api_key and api_secret in api_keys table for developer + - developer_apps + description: + Register api_key and api_secret in api_keys table for developer apps created via entity manager transactions. Use when the client sends raw ManageEntity tx instead of POST /developer-apps. Inserts with rps=10, rpm=500000. Requires the app to exist in developer_apps and belong to the authenticated user. operationId: Register Developer App API Key security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: user_id - in: query - description: The user ID of the user who owns the developer app - required: true - schema: - type: string - - name: address - in: path - description: Developer app address (API key) - required: true - schema: - type: string + - name: user_id + in: query + description: The user ID of the user who owns the developer app + required: true + schema: + type: string + - name: address + in: path + description: Developer app address (API key) + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/register_api_key_request_body' + $ref: "#/components/schemas/register_api_key_request_body" responses: - '200': + "200": description: API key registered successfully content: application/json: schema: - $ref: '#/components/schemas/register_api_key_response' - '400': + $ref: "#/components/schemas/register_api_key_response" + "400": description: Bad request (api_secret required) content: {} - '401': + "401": description: Unauthorized content: {} - '404': + "404": description: Developer app not found content: {} - '500': + "500": description: Server error content: {} /developer-apps/{address}/access-keys/deactivate: post: tags: - - developer_apps - description: Deactivate a bearer token (API access key) for a developer app. + - developer_apps + description: + Deactivate a bearer token (API access key) for a developer app. Indexer validates grants. operationId: Deactivate Developer App Access Key parameters: - - name: user_id - in: query - description: The user ID of the user who owns the developer app - required: true - schema: - type: string - - name: address - in: path - description: Developer app address (API Key) - required: true - schema: - type: string + - name: user_id + in: query + description: The user ID of the user who owns the developer app + required: true + schema: + type: string + - name: address + in: path + description: Developer app address (API Key) + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/deactivate_access_key_request_body' + $ref: "#/components/schemas/deactivate_access_key_request_body" responses: - '200': + "200": description: Access key deactivated successfully content: application/json: schema: - $ref: '#/components/schemas/deactivate_access_key_response' - '400': + $ref: "#/components/schemas/deactivate_access_key_response" + "400": description: Bad request (api_access_key required) content: {} - '401': + "401": description: Unauthorized content: {} - '404': + "404": description: Developer app or access key not found content: {} - '500': + "500": description: Server error content: {} /developer-apps/{address}/access-keys: post: tags: - - developer_apps - description: Create a new bearer token (API access key) for a developer app. + - developer_apps + description: + Create a new bearer token (API access key) for a developer app. Indexer validates grants. operationId: Create Developer App Access Key parameters: - - name: user_id - in: query - description: The user ID of the user who owns the developer app - required: true - schema: - type: string - - name: address - in: path - description: Developer app address (API Key) - required: true - schema: - type: string + - name: user_id + in: query + description: The user ID of the user who owns the developer app + required: true + schema: + type: string + - name: address + in: path + description: Developer app address (API Key) + required: true + schema: + type: string responses: - '200': + "200": description: Access key created successfully content: application/json: schema: - $ref: '#/components/schemas/create_access_key_response' - '401': + $ref: "#/components/schemas/create_access_key_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Developer app not found content: {} - '500': + "500": description: Server error content: {} /dashboard_wallet_users: get: tags: - - dashboard_wallet_users + - dashboard_wallet_users description: Gets Audius user profiles connected to given dashboard wallet addresses operationId: Bulk get dashboard wallet users parameters: - - name: wallets - in: query - description: The wallets for which to fetch connected Audius user profiles. - required: true - style: form - explode: false - schema: - type: array - items: - type: string + - name: wallets + in: query + description: The wallets for which to fetch connected Audius user profiles. + required: true + style: form + explode: false + schema: + type: array + items: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/dashboard_wallet_users_response' - '400': + $ref: "#/components/schemas/dashboard_wallet_users_response" + "400": description: Bad request content: {} - '404': + "404": description: No such dashboard wallets content: {} - '500': + "500": description: Server error content: {} /events: get: tags: - - events + - events description: Get a list of events by ID operationId: Get Bulk Events parameters: - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: id - in: query - description: The ID of the event(s) to retrieve - style: form - explode: true - schema: - type: array - items: + - name: user_id + in: query + description: The user ID of the user making the request + schema: type: string - - name: event_type - in: query - description: The type of event to filter by - schema: - type: string - enum: - - remix_contest - - live_event - - new_release + - name: id + in: query + description: The ID of the event(s) to retrieve + style: form + explode: true + schema: + type: array + items: + type: string + - name: event_type + in: query + description: The type of event to filter by + schema: + type: string + enum: + - remix_contest + - live_event + - new_release responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/events_response' - '400': + $ref: "#/components/schemas/events_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /events/all: get: tags: - - events + - events summary: Get all events description: Get all events operationId: Get All Events parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - default: newest - enum: - - newest - - timestamp - - name: event_type - in: query - description: The type of event to filter by - schema: - type: string - enum: - - remix_contest - - live_event - - new_release + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + default: newest + enum: + - newest + - timestamp + - name: event_type + in: query + description: The type of event to filter by + schema: + type: string + enum: + - remix_contest + - live_event + - new_release responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/events_response' - '400': + $ref: "#/components/schemas/events_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /events/entity: get: tags: - - events + - events summary: Get events for a specific entity description: Get events for a specific entity operationId: Get Entity Events parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: entity_id - in: query - description: The ID of the entity to get events for - required: true - style: form - explode: true - schema: - type: array - items: + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: type: string - - name: entity_type - in: query - description: The type of entity to get events for - schema: - type: string - enum: - - track - - collection - - user - - name: filter_deleted - in: query - description: Whether to filter deleted events - schema: - type: boolean - default: true + - name: entity_id + in: query + description: The ID of the entity to get events for + required: true + style: form + explode: true + schema: + type: array + items: + type: string + - name: entity_type + in: query + description: The type of entity to get events for + schema: + type: string + enum: + - track + - collection + - user + - name: filter_deleted + in: query + description: Whether to filter deleted events + schema: + type: boolean + default: true responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/events_response' - '400': + $ref: "#/components/schemas/events_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /events/unclaimed_id: get: tags: - - events + - events description: Gets an unclaimed blockchain event ID operationId: Get unclaimed event ID responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/unclaimed_id_response' - '500': + $ref: "#/components/schemas/unclaimed_id_response" + "500": description: Server error content: {} /explore/best-selling: get: tags: - - explore + - explore summary: Get best selling tracks and playlists with related entities description: Get best selling tracks and/or albums with related entities operationId: Get Best Selling parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: type - in: query - description: The type of content to filter by - schema: - type: string - default: all - enum: - - all - - track - - album + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: type + in: query + description: The type of content to filter by + schema: + type: string + default: all + enum: + - all + - track + - album responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/best_selling_response' - '400': + $ref: "#/components/schemas/best_selling_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /playlists: get: tags: - - playlists + - playlists description: Gets a list of playlists by ID, UPC, or permalink operationId: Get Bulk Playlists parameters: - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: id - in: query - description: The ID of the playlist(s) - style: form - explode: true - schema: - type: array - items: - type: string - - name: permalink - in: query - description: The permalink(s) of the playlist(s) - style: form - explode: true - schema: - type: array - items: - type: string - - name: upc - in: query - description: The UPC of the playlist(s) - style: form - explode: true - schema: - type: array - items: + - name: user_id + in: query + description: The user ID of the user making the request + schema: type: string + - name: id + in: query + description: The ID of the playlist(s) + style: form + explode: true + schema: + type: array + items: + type: string + - name: permalink + in: query + description: The permalink(s) of the playlist(s) + style: form + explode: true + schema: + type: array + items: + type: string + - name: upc + in: query + description: The UPC of the playlist(s) + style: form + explode: true + schema: + type: array + items: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/playlist_response' - '400': + $ref: "#/components/schemas/playlist_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} post: tags: - - playlists + - playlists description: Creates a new playlist or album operationId: Create Playlist security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/create_playlist_request_body' + $ref: "#/components/schemas/create_playlist_request_body" responses: - '201': + "201": description: Playlist created successfully content: application/json: schema: - $ref: '#/components/schemas/create_playlist_response' - '400': + $ref: "#/components/schemas/create_playlist_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '500': + "500": description: Server error content: {} /playlists/search: get: tags: - - playlists + - playlists description: Search for a playlist operationId: Search Playlists parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: query - in: query - description: The search query - schema: - type: string - - name: genre - in: query - description: The genres to filter by - style: form - explode: true - schema: - type: array - items: + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: query + in: query + description: The search query + schema: type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - relevant - - popular - - recent - - name: mood - in: query - description: The moods to filter by - style: form - explode: true - schema: - type: array - items: + - name: genre + in: query + description: The genres to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - relevant + - popular + - recent + - name: mood + in: query + description: The moods to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: includePurchaseable + in: query + description: Whether or not to include purchaseable content + schema: + type: string + - name: has_downloads + in: query + description: Only include tracks that have downloads in the track results + schema: type: string - - name: includePurchaseable - in: query - description: Whether or not to include purchaseable content - schema: - type: string - - name: has_downloads - in: query - description: Only include tracks that have downloads in the track results - schema: - type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/playlist_search_result' - '400': + $ref: "#/components/schemas/playlist_search_result" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /playlists/trending: get: tags: - - playlists + - playlists description: Returns trending playlists for a time period operationId: Get Trending Playlists parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: time - in: query - description: Calculate trending over a specified time range - schema: - type: string - enum: - - week - - month - - year - - allTime - - name: type - in: query - description: The type of content to filter by - schema: - type: string - default: playlist - enum: - - playlist - - album - - name: omit_tracks - in: query - description: Whether to omit tracks from the response - schema: - type: boolean - default: false + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: time + in: query + description: Calculate trending over a specified time range + schema: + type: string + enum: + - week + - month + - year + - allTime + - name: type + in: query + description: The type of content to filter by + schema: + type: string + default: playlist + enum: + - playlist + - album + - name: omit_tracks + in: query + description: Whether to omit tracks from the response + schema: + type: boolean + default: false responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/trending_playlists_response' - '400': + $ref: "#/components/schemas/trending_playlists_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /playlists/{playlist_id}: get: tags: - - playlists + - playlists description: Get a playlist by ID operationId: Get Playlist parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/playlist_response' + $ref: "#/components/schemas/playlist_response" put: tags: - - playlists + - playlists description: Updates an existing playlist or album operationId: Update Playlist security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/update_playlist_request_body' + $ref: "#/components/schemas/update_playlist_request_body" responses: - '200': + "200": description: Playlist updated successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '400': + $ref: "#/components/schemas/write_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '404': + "404": description: Playlist not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - playlists + - playlists description: Deletes a playlist or album operationId: Delete Playlist security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Playlist deleted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Playlist not found content: {} - '500': + "500": description: Server error content: {} /playlists/{playlist_id}/access-info: get: tags: - - playlists - description: Gets the information necessary to access the playlist and what + - playlists + description: + Gets the information necessary to access the playlist and what access the given user has. operationId: Get Playlist Access Info parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/access_info_response' + $ref: "#/components/schemas/access_info_response" /playlists/{playlist_id}/tracks: get: tags: - - playlists + - playlists description: Fetch tracks within a playlist. operationId: Get Playlist Tracks parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/playlist_tracks_response' - '400': + $ref: "#/components/schemas/playlist_tracks_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /playlists/{playlist_id}/favorites: post: tags: - - playlists + - playlists description: Favorite a playlist operationId: Favorite Playlist security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: required: false x-codegen-request-body-name: metadata content: application/json: schema: - $ref: '#/components/schemas/favorite_request_body' + $ref: "#/components/schemas/favorite_request_body" responses: - '200': + "200": description: Playlist favorited successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Playlist not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - playlists + - playlists description: Unfavorite a playlist operationId: Unfavorite Playlist security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Playlist unfavorited successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Playlist not found content: {} - '500': + "500": description: Server error content: {} get: tags: - - playlists + - playlists description: Get users that favorited a playlist operationId: Get Users From Playlist Favorites parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/following_response' - '400': + $ref: "#/components/schemas/following_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /playlists/{playlist_id}/reposts: post: tags: - - playlists + - playlists description: Repost a playlist operationId: Repost Playlist security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: required: false content: application/json: schema: - $ref: '#/components/schemas/repost_request_body' + $ref: "#/components/schemas/repost_request_body" responses: - '200': + "200": description: Playlist reposted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Playlist not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - playlists + - playlists description: Unrepost a playlist operationId: Unrepost Playlist security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Playlist unreposted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Playlist not found content: {} - '500': + "500": description: Server error content: {} get: tags: - - playlists + - playlists description: Get users that reposted a playlist operationId: Get Users From Playlist Reposts parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/following_response' - '400': + $ref: "#/components/schemas/following_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /playlists/{playlist_id}/shares: post: tags: - - playlists + - playlists description: Record a playlist share event operationId: Share Playlist security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: playlist_id - in: path - description: A Playlist ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: playlist_id + in: path + description: A Playlist ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Playlist share recorded successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Playlist not found content: {} - '500': + "500": description: Server error content: {} /resolve: get: tags: - - resolve - summary: Resolves and redirects a provided Audius app URL to the API resource + - resolve + summary: + Resolves and redirects a provided Audius app URL to the API resource URL it represents - description: 'This endpoint allows you to lookup and access API resources when + description: + "This endpoint allows you to lookup and access API resources when you only know the audius.co URL. - Tracks, Playlists, and Users are supported.' + Tracks, Playlists, and Users are supported." operationId: Resolve parameters: - - name: url - in: query - description: URL to resolve. Either fully formed URL (https://audius.co) or - just the absolute path - required: true - schema: - type: string + - name: url + in: query + description: + URL to resolve. Either fully formed URL (https://audius.co) or + just the absolute path + required: true + schema: + type: string responses: - '302': + "302": description: Internal redirect content: {} /tips: get: tags: - - tips + - tips description: Gets the most recent tips on the network operationId: Get Tips parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: receiver_min_followers - in: query - description: Only include tips to recipients that have this many followers - schema: - type: integer - default: 0 - - name: receiver_is_verified - in: query - description: Only include tips to recipients that are verified - schema: - type: boolean - default: false - - name: current_user_follows - in: query - description: Only include tips involving the user's followers in the given - capacity. Requires user_id to be set. - schema: - type: string - enum: - - sender - - receiver - - sender_or_receiver - - name: unique_by - in: query - description: "Only include the most recent tip for a user was involved in\ - \ the given capacity.\n\nEg. 'sender' will ensure that each tip returned\ - \ has a unique sender, using the most recent tip sent by a user if that\ - \ user has sent multiple tips.\n " - schema: - type: string - enum: - - sender - - receiver - - name: min_slot - in: query - description: The minimum Solana slot to pull tips from - schema: - type: integer - default: 0 - - name: max_slot - in: query - description: The maximum Solana slot to pull tips from - schema: - type: integer - default: 0 - - name: tx_signatures - in: query - description: A list of transaction signatures of tips to fetch - style: form - explode: false - schema: - type: array - items: + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: receiver_min_followers + in: query + description: Only include tips to recipients that have this many followers + schema: + type: integer + default: 0 + - name: receiver_is_verified + in: query + description: Only include tips to recipients that are verified + schema: + type: boolean + default: false + - name: current_user_follows + in: query + description: + Only include tips involving the user's followers in the given + capacity. Requires user_id to be set. + schema: type: string + enum: + - sender + - receiver + - sender_or_receiver + - name: unique_by + in: query + description: + "Only include the most recent tip for a user was involved in\ + \ the given capacity.\n\nEg. 'sender' will ensure that each tip returned\ + \ has a unique sender, using the most recent tip sent by a user if that\ + \ user has sent multiple tips.\n " + schema: + type: string + enum: + - sender + - receiver + - name: min_slot + in: query + description: The minimum Solana slot to pull tips from + schema: + type: integer + default: 0 + - name: max_slot + in: query + description: The maximum Solana slot to pull tips from + schema: + type: integer + default: 0 + - name: tx_signatures + in: query + description: A list of transaction signatures of tips to fetch + style: form + explode: false + schema: + type: array + items: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/get_tips_response' + $ref: "#/components/schemas/get_tips_response" /tracks: get: tags: - - tracks + - tracks description: Gets a list of tracks using their IDs or permalinks operationId: Get Bulk Tracks parameters: - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: permalink - in: query - description: The permalink of the track(s) - style: form - explode: true - schema: - type: array - items: - type: string - - name: id - in: query - description: The ID of the track(s) - style: form - explode: true - schema: - type: array - items: - type: string - - name: isrc - in: query - description: The ISRC code of the track(s) - style: form - explode: true - schema: - type: array - items: + - name: user_id + in: query + description: The user ID of the user making the request + schema: type: string + - name: permalink + in: query + description: The permalink of the track(s) + style: form + explode: true + schema: + type: array + items: + type: string + - name: id + in: query + description: The ID of the track(s) + style: form + explode: true + schema: + type: array + items: + type: string + - name: isrc + in: query + description: The ISRC code of the track(s) + style: form + explode: true + schema: + type: array + items: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" post: tags: - - tracks + - tracks description: Creates a new track operationId: Create Track security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/create_track_request_body' + $ref: "#/components/schemas/create_track_request_body" responses: - '201': + "201": description: Track created successfully content: application/json: schema: - $ref: '#/components/schemas/create_track_response' - '400': + $ref: "#/components/schemas/create_track_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '500': + "500": description: Server error content: {} /tracks/inspect: get: tags: - - tracks + - tracks summary: Inspects the details of the files for multiple tracks description: Inspect multiple tracks operationId: Inspect Tracks parameters: - - name: id - in: query - description: List of track IDs to inspect - required: true - style: form - explode: true - schema: - type: array - items: - type: string - - name: original - in: query - description: Optional - if set to true inspects the original file quality - schema: - type: boolean - default: false + - name: id + in: query + description: List of track IDs to inspect + required: true + style: form + explode: true + schema: + type: array + items: + type: string + - name: original + in: query + description: Optional - if set to true inspects the original file quality + schema: + type: boolean + default: false responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_inspect_list' - '400': + $ref: "#/components/schemas/track_inspect_list" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/recent-premium: get: tags: - - tracks + - tracks description: Gets the most recently listed premium tracks operationId: Get Recent Premium Tracks parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" /tracks/recommended: get: tags: - - tracks + - tracks description: Get recommended tracks operationId: Get Recommended Tracks parameters: - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: genre - in: query - description: Filter trending to a specified genre - schema: - type: string - - name: time - in: query - description: Calculate trending over a specified time range - schema: - type: string - enum: - - week - - month - - year - - allTime - - name: exclusion_list - in: query - description: List of track ids to exclude - style: form - explode: true - schema: - type: array - items: + - name: limit + in: query + description: The number of items to fetch + schema: type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: genre + in: query + description: Filter trending to a specified genre + schema: + type: string + - name: time + in: query + description: Calculate trending over a specified time range + schema: + type: string + enum: + - week + - month + - year + - allTime + - name: exclusion_list + in: query + description: List of track ids to exclude + style: form + explode: true + schema: + type: array + items: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" /tracks/recommended/{version}: get: tags: - - tracks + - tracks description: Get recommended tracks using the given trending strategy version operationId: Get Recommended Tracks With Version parameters: - - name: version - in: path - description: The strategy version of trending to use - required: true - schema: - type: string - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: genre - in: query - description: Filter trending to a specified genre - schema: - type: string - - name: time - in: query - description: Calculate trending over a specified time range - schema: - type: string - enum: - - week - - month - - year - - allTime - - name: exclusion_list - in: query - description: List of track ids to exclude - style: form - explode: true - schema: - type: array - items: + - name: version + in: path + description: The strategy version of trending to use + required: true + schema: + type: string + - name: limit + in: query + description: The number of items to fetch + schema: type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: genre + in: query + description: Filter trending to a specified genre + schema: + type: string + - name: time + in: query + description: Calculate trending over a specified time range + schema: + type: string + enum: + - week + - month + - year + - allTime + - name: exclusion_list + in: query + description: List of track ids to exclude + style: form + explode: true + schema: + type: array + items: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" /tracks/feeling-lucky: get: tags: - - tracks + - tracks description: Gets random tracks found on the "Feeling Lucky" smart playlist operationId: Get Feeling Lucky Tracks parameters: - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: limit - in: query - description: Number of tracks to fetch - schema: - type: integer - default: 10 - minimum: 1 - maximum: 100 - - name: with_users - deprecated: true - in: query - description: Boolean to include user info with tracks - schema: - type: boolean - default: false - - name: min_followers - in: query - description: Fetch tracks from users with at least this number of followers - schema: - type: integer - minimum: 1 + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: limit + in: query + description: Number of tracks to fetch + schema: + type: integer + default: 10 + minimum: 1 + maximum: 100 + - name: with_users + deprecated: true + in: query + description: Boolean to include user info with tracks + schema: + type: boolean + default: false + - name: min_followers + in: query + description: Fetch tracks from users with at least this number of followers + schema: + type: integer + minimum: 1 responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' - '400': + $ref: "#/components/schemas/tracks_response" + "400": description: Bad request content: {} /tracks/recent-comments: get: tags: - - tracks + - tracks description: Gets the most recent tracks with active discussion operationId: Get Tracks With Recent Comments parameters: - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: limit - in: query - description: Number of tracks to fetch - schema: - type: integer - default: 10 - minimum: 1 - maximum: 100 - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - default: 0 - minimum: 0 + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: limit + in: query + description: Number of tracks to fetch + schema: + type: integer + default: 10 + minimum: 1 + maximum: 100 + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + default: 0 + minimum: 0 responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' - '400': + $ref: "#/components/schemas/tracks_response" + "400": description: Bad request content: {} /tracks/most-shared: get: tags: - - tracks + - tracks description: Gets the most shared tracks for a given time range operationId: Get Most Shared Tracks parameters: - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: limit - in: query - description: Number of tracks to fetch - schema: - type: integer - default: 10 - minimum: 1 - maximum: 100 - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - default: 0 - minimum: 0 - - name: time_range - in: query - description: The time range to consider - schema: - type: string - default: week - enum: - - week - - month - - allTime + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: limit + in: query + description: Number of tracks to fetch + schema: + type: integer + default: 10 + minimum: 1 + maximum: 100 + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + default: 0 + minimum: 0 + - name: time_range + in: query + description: The time range to consider + schema: + type: string + default: week + enum: + - week + - month + - allTime responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' - '400': + $ref: "#/components/schemas/tracks_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/usdc-purchase: get: tags: - - tracks + - tracks description: Gets the top trending (most popular) USDC purchase tracks on Audius operationId: Get Trending USDC Purchase Tracks parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: genre - in: query - description: Filter trending to a specified genre - schema: - type: string - - name: time - in: query - description: Calculate trending over a specified time range - schema: - type: string - enum: - - week - - month - - year - - allTime + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: genre + in: query + description: Filter trending to a specified genre + schema: + type: string + - name: time + in: query + description: Calculate trending over a specified time range + schema: + type: string + enum: + - week + - month + - year + - allTime responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' - '400': + $ref: "#/components/schemas/tracks_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/usdc-purchase/{version}: get: tags: - - tracks - description: Gets the top trending (most popular) USDC purchase tracks on Audius + - tracks + description: + Gets the top trending (most popular) USDC purchase tracks on Audius using a given trending strategy version operationId: Get Trending USDC Purchase Tracks With Version parameters: - - name: version - in: path - description: The strategy version of trending to use - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: genre - in: query - description: Filter trending to a specified genre - schema: - type: string - - name: time - in: query - description: Calculate trending over a specified time range - schema: - type: string - enum: - - week - - month - - year - - allTime + - name: version + in: path + description: The strategy version of trending to use + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: genre + in: query + description: Filter trending to a specified genre + schema: + type: string + - name: time + in: query + description: Calculate trending over a specified time range + schema: + type: string + enum: + - week + - month + - year + - allTime responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" /tracks/search: get: tags: - - tracks + - tracks description: Search for a track or tracks operationId: Search Tracks parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: query - in: query - description: The search query - schema: - type: string - - name: genre - in: query - description: The genres to filter by - style: form - explode: true - schema: - type: array - items: + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: query + in: query + description: The search query + schema: type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - relevant - - popular - - recent - - name: mood - in: query - description: The moods to filter by - style: form - explode: true - schema: - type: array - items: + - name: genre + in: query + description: The genres to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: sort_method + in: query + description: The sort method + schema: type: string - - name: only_downloadable - in: query - description: Return only downloadable tracks - schema: - type: string - default: 'false' - - name: includePurchaseable - in: query - description: Whether or not to include purchaseable content - schema: - type: string - - name: is_purchaseable - in: query - description: Only include purchaseable tracks and albums in the track and - album results - schema: - type: string - - name: has_downloads - in: query - description: Only include tracks that have downloads in the track results - schema: - type: string - - name: key - in: query - description: Only include tracks that match the musical key - style: form - explode: true - schema: - type: array - items: + enum: + - relevant + - popular + - recent + - name: mood + in: query + description: The moods to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: only_downloadable + in: query + description: Return only downloadable tracks + schema: + type: string + default: "false" + - name: includePurchaseable + in: query + description: Whether or not to include purchaseable content + schema: + type: string + - name: is_purchaseable + in: query + description: + Only include purchaseable tracks and albums in the track and + album results + schema: + type: string + - name: has_downloads + in: query + description: Only include tracks that have downloads in the track results + schema: + type: string + - name: key + in: query + description: Only include tracks that match the musical key + style: form + explode: true + schema: + type: array + items: + type: string + - name: bpm_min + in: query + description: Only include tracks that have a bpm greater than or equal to + schema: + type: string + - name: bpm_max + in: query + description: Only include tracks that have a bpm less than or equal to + schema: type: string - - name: bpm_min - in: query - description: Only include tracks that have a bpm greater than or equal to - schema: - type: string - - name: bpm_max - in: query - description: Only include tracks that have a bpm less than or equal to - schema: - type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_search' - '400': + $ref: "#/components/schemas/track_search" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/trending: get: tags: - - tracks + - tracks description: Gets the top 100 trending (most popular) tracks on Audius operationId: Get Trending Tracks parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: genre - in: query - description: Filter trending to a specified genre - schema: - type: string - - name: time - in: query - description: Calculate trending over a specified time range - schema: - type: string - enum: - - week - - month - - year - - allTime + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: genre + in: query + description: Filter trending to a specified genre + schema: + type: string + - name: time + in: query + description: Calculate trending over a specified time range + schema: + type: string + enum: + - week + - month + - year + - allTime responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' - '400': + $ref: "#/components/schemas/tracks_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/trending/winners: get: tags: - - tracks - description: Gets weekly trending winners from the trending_results table. Returns + - tracks + description: + Gets weekly trending winners from the trending_results table. Returns track objects for the specified week. Defaults to the most recent week with data when no week is provided. operationId: Get Trending Winners parameters: - - name: week - in: query - description: Target week in YYYY-MM-DD format. Defaults to the most recent - week with data. - schema: - type: string - format: date - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: week + in: query + description: + Target week in YYYY-MM-DD format. Defaults to the most recent + week with data. + schema: + type: string + format: date + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' - '400': + $ref: "#/components/schemas/tracks_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/trending/{version}: get: tags: - - tracks - description: Gets the top 100 trending (most popular) tracks on Audius using + - tracks + description: + Gets the top 100 trending (most popular) tracks on Audius using a given trending strategy version operationId: Get Trending Tracks With Version parameters: - - name: version - in: path - description: The strategy version of trending to use - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: genre - in: query - description: Filter trending to a specified genre - schema: - type: string - - name: time - in: query - description: Calculate trending over a specified time range - schema: - type: string - enum: - - week - - month - - year - - allTime + - name: version + in: path + description: The strategy version of trending to use + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: genre + in: query + description: Filter trending to a specified genre + schema: + type: string + - name: time + in: query + description: Calculate trending over a specified time range + schema: + type: string + enum: + - week + - month + - year + - allTime responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" /tracks/trending/ids: get: tags: - - tracks + - tracks description: Gets the track IDs of the top trending tracks on Audius operationId: Get Trending Track IDs parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: genre - in: query - description: Filter trending to a specified genre - schema: - type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: genre + in: query + description: Filter trending to a specified genre + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/trending_ids_response' - '400': + $ref: "#/components/schemas/trending_ids_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/trending/ids/{version}: get: tags: - - tracks - description: Gets the track IDs of the top trending tracks on Audius based on + - tracks + description: + Gets the track IDs of the top trending tracks on Audius based on the given trending strategy version operationId: Get Trending Tracks IDs With Version parameters: - - name: version - in: path - description: The strategy version of trending to use - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: genre - in: query - description: Filter trending to a specified genre - schema: - type: string + - name: version + in: path + description: The strategy version of trending to use + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: genre + in: query + description: Filter trending to a specified genre + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/trending_ids_response' - '400': + $ref: "#/components/schemas/trending_ids_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/trending/underground: get: tags: - - tracks + - tracks description: Gets the top 100 trending underground tracks on Audius operationId: Get Underground Trending Tracks parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" /tracks/trending/underground/winners: get: tags: - - tracks - description: Gets weekly trending underground winners from the trending_results + - tracks + description: + Gets weekly trending underground winners from the trending_results table. Returns track objects for the specified week. Defaults to the most recent week with data when no week is provided. operationId: Get Trending Underground Winners parameters: - - name: week - in: query - description: Target week in YYYY-MM-DD format. Defaults to the most recent - week with data. - schema: - type: string - format: date - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: week + in: query + description: + Target week in YYYY-MM-DD format. Defaults to the most recent + week with data. + schema: + type: string + format: date + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' - '400': + $ref: "#/components/schemas/tracks_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/trending/underground/{version}: get: tags: - - tracks - description: Gets the top 100 trending underground tracks on Audius using a + - tracks + description: + Gets the top 100 trending underground tracks on Audius using a given trending strategy version operationId: Get Underground Trending Tracks With Version parameters: - - name: version - in: path - description: The strategy version of trending to user - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: version + in: path + description: The strategy version of trending to user + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" /tracks/{track_id}: get: tags: - - tracks + - tracks description: Gets a track by ID. operationId: Get Track parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_response' + $ref: "#/components/schemas/track_response" put: tags: - - tracks + - tracks description: Updates an existing track operationId: Update Track security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/update_track_request_body' + $ref: "#/components/schemas/update_track_request_body" responses: - '200': + "200": description: Track updated successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '400': + $ref: "#/components/schemas/write_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '404': + "404": description: Track not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - tracks + - tracks description: Deletes a track operationId: Delete Track security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Track deleted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Track not found content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/access-info: get: tags: - - tracks - description: Gets the information necessary to access the track and what access + - tracks + description: + Gets the information necessary to access the track and what access the given user has. operationId: Get Track Access Info parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/access_info_response' + $ref: "#/components/schemas/access_info_response" /tracks/{track_id}/comment_count: get: tags: - - tracks + - tracks description: Get the comment count for a track operationId: Get Track Comment Count parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_comment_count_response' - '400': + $ref: "#/components/schemas/track_comment_count_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/comment_notification_setting: get: tags: - - tracks + - tracks description: Get the comment notification setting for a track operationId: Get Track Comment Notification Setting parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_comment_notification_response' - '400': + $ref: "#/components/schemas/track_comment_notification_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/comments: get: tags: - - tracks + - tracks description: Get a list of comments for a track operationId: Get Track Comments parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - default: top - enum: - - top - - newest - - timestamp + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + default: top + enum: + - top + - newest + - timestamp responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_comments_response' - '400': + $ref: "#/components/schemas/track_comments_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/favorites: get: tags: - - tracks + - tracks description: Get users that favorited a track operationId: Get Users From Favorites parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_favorites_response' - '400': + $ref: "#/components/schemas/track_favorites_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} post: tags: - - tracks + - tracks description: Favorite a track operationId: Favorite Track security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: required: false x-codegen-request-body-name: metadata content: application/json: schema: - $ref: '#/components/schemas/favorite_request_body' + $ref: "#/components/schemas/favorite_request_body" responses: - '200': + "200": description: Track favorited successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Track not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - tracks + - tracks description: Unfavorite a track operationId: Unfavorite Track security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Track unfavorited successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Track not found content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/remixes: get: tags: - - tracks + - tracks description: Get all tracks that remix the given track operationId: Get Track Remixes parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: sort_method - in: query - description: The sort method to use - schema: - type: string - default: recent - enum: - - likes - - plays - - recent - - name: only_cosigns - in: query - description: Only remixes cosigned by the original artist - schema: - type: boolean - - name: only_contest_entries - in: query - description: Only entries to a remix contest - schema: - type: boolean + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: sort_method + in: query + description: The sort method to use + schema: + type: string + default: recent + enum: + - likes + - plays + - recent + - name: only_cosigns + in: query + description: Only remixes cosigned by the original artist + schema: + type: boolean + - name: only_contest_entries + in: query + description: Only entries to a remix contest + schema: + type: boolean responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/remixes_response' + $ref: "#/components/schemas/remixes_response" /tracks/{track_id}/remixing: get: tags: - - tracks + - tracks description: Gets all the tracks that the given track remixes operationId: Get Track Remix Parents parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/remixing_response' + $ref: "#/components/schemas/remixing_response" /tracks/{track_id}/reposts: get: tags: - - tracks + - tracks description: Get the users that reposted a track operationId: Get Users From Reposts parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_reposts_response' - '400': + $ref: "#/components/schemas/track_reposts_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} post: tags: - - tracks + - tracks description: Repost a track operationId: Repost Track security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: required: false content: application/json: schema: - $ref: '#/components/schemas/repost_request_body' + $ref: "#/components/schemas/repost_request_body" responses: - '200': + "200": description: Track reposted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Track not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - tracks + - tracks description: Unrepost a track operationId: Unrepost Track security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Track unreposted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Track not found content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/download: get: tags: - - tracks + - tracks summary: Download the original or MP3 file of a track description: Download an original or mp3 track operationId: Download Track parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: user_signature - in: query - description: "Optional - signature from the requesting user's wallet.\n \ - \ This is needed to authenticate the user and verify access in case\ - \ the track is gated." - schema: - type: string - - name: user_data - in: query - description: Optional - data which was used to generate the optional signature - argument. - schema: - type: string - - name: nft_access_signature - in: query - description: "Optional - nft access signature for this track which was previously\ - \ generated by a registered DN.\n We perform checks on it and pass\ - \ it through to CN." - schema: - type: string - - name: filename - in: query - description: Optional - name of file to download. If not provided, defaults - to track original filename or title. - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: user_signature + in: query + description: + "Optional - signature from the requesting user's wallet.\n \ + \ This is needed to authenticate the user and verify access in case\ + \ the track is gated." + schema: + type: string + - name: user_data + in: query + description: + Optional - data which was used to generate the optional signature + argument. + schema: + type: string + - name: nft_access_signature + in: query + description: + "Optional - nft access signature for this track which was previously\ + \ generated by a registered DN.\n We perform checks on it and pass\ + \ it through to CN." + schema: + type: string + - name: filename + in: query + description: + Optional - name of file to download. If not provided, defaults + to track original filename or title. + schema: + type: string responses: - '200': + "200": description: Success content: {} - '216': + "216": description: Partial content content: {} - '400': + "400": description: Bad request content: {} - '416': + "416": description: Content range invalid content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/inspect: get: tags: - - tracks + - tracks summary: Inspects the details of the file for a track description: Inspect a track operationId: Inspect Track parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: original - in: query - description: Optional - if set to true inspects the original file quality - schema: - type: boolean - default: false + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: original + in: query + description: Optional - if set to true inspects the original file quality + schema: + type: boolean + default: false responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_inspect' - '400': + $ref: "#/components/schemas/track_inspect" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/stems: get: tags: - - tracks + - tracks description: Get the remixable stems of a track operationId: Get Track Stems parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/stems_response' + $ref: "#/components/schemas/stems_response" /tracks/{track_id}/shares: post: tags: - - tracks + - tracks description: Record a track share event operationId: Share Track security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: User ID - required: true - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: User ID + required: true + schema: + type: string responses: - '200': + "200": description: Track share recorded successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Track not found content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/downloads: post: tags: - - tracks + - tracks description: Record a track download event operationId: Record Track Download security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - required: false - description: The user ID of the user making the request - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + required: false + description: The user ID of the user making the request + schema: + type: string requestBody: x-codegen-request-body-name: location content: application/json: schema: - $ref: '#/components/schemas/track_download_request_body' + $ref: "#/components/schemas/track_download_request_body" responses: - '200': + "200": description: Track download recorded successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: Track not found content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/stream: get: tags: - - tracks + - tracks summary: Get the streamable MP3 file of a track - description: 'Stream an mp3 track + description: "Stream an mp3 track This endpoint accepts the Range header for streaming. - https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests' + https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests" operationId: Stream Track parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: preview - in: query - description: Optional - true if streaming track preview - schema: - type: boolean - default: false - - name: user_signature - in: query - description: "Optional - signature from the requesting user's wallet.\n \ - \ This is needed to authenticate the user and verify access in case\ - \ the track is gated." - schema: - type: string - - name: user_data - in: query - description: Optional - data which was used to generate the optional signature - argument. - schema: - type: string - - name: nft_access_signature - in: query - description: "Optional - gated content signature for this track which was\ - \ previously generated by a registered DN.\n We perform checks on\ - \ it and pass it through to CN." - schema: - type: string - - name: skip_play_count - in: query - description: Optional - boolean that disables tracking of play counts. - schema: - type: boolean - default: false - - name: api_key - in: query - description: Optional - API key for third party apps. This is required for - tracks that only allow specific API keys. - schema: - type: string - - name: skip_check - in: query - description: Optional - POC to skip node 'double dip' health check - schema: - type: boolean - - name: no_redirect - in: query - description: Optional - If true will not return a 302 and instead will return - the stream url in JSON - schema: - type: boolean + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: preview + in: query + description: Optional - true if streaming track preview + schema: + type: boolean + default: false + - name: user_signature + in: query + description: + "Optional - signature from the requesting user's wallet.\n \ + \ This is needed to authenticate the user and verify access in case\ + \ the track is gated." + schema: + type: string + - name: user_data + in: query + description: + Optional - data which was used to generate the optional signature + argument. + schema: + type: string + - name: nft_access_signature + in: query + description: + "Optional - gated content signature for this track which was\ + \ previously generated by a registered DN.\n We perform checks on\ + \ it and pass it through to CN." + schema: + type: string + - name: skip_play_count + in: query + description: Optional - boolean that disables tracking of play counts. + schema: + type: boolean + default: false + - name: api_key + in: query + description: + Optional - API key for third party apps. This is required for + tracks that only allow specific API keys. + schema: + type: string + - name: skip_check + in: query + description: Optional - POC to skip node 'double dip' health check + schema: + type: boolean + - name: no_redirect + in: query + description: + Optional - If true will not return a 302 and instead will return + the stream url in JSON + schema: + type: boolean responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/stream_url_response' - '216': + $ref: "#/components/schemas/stream_url_response" + "216": description: Partial content content: {} - '400': + "400": description: Bad request content: {} - '416': + "416": description: Content range invalid content: {} - '500': + "500": description: Server error content: {} /tracks/{track_id}/top_listeners: get: tags: - - tracks + - tracks description: Get the users that have listened to a track the most operationId: Get Track Top Listeners parameters: - - name: track_id - in: path - description: A Track ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: track_id + in: path + description: A Track ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/top_listener' - '400': + $ref: "#/components/schemas/top_listener" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users: get: tags: - - users + - users description: Gets a list of users by ID operationId: Get Bulk Users parameters: - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: id - in: query - description: The ID of the user(s) - style: form - explode: true - schema: - type: array - items: + - name: user_id + in: query + description: The user ID of the user making the request + schema: type: string + - name: id + in: query + description: The ID of the user(s) + style: form + explode: true + schema: + type: array + items: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_response' - '400': + $ref: "#/components/schemas/user_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} post: tags: - - users + - users description: Creates a new user operationId: Create User security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/create_user_request_body' + $ref: "#/components/schemas/create_user_request_body" responses: - '201': + "201": description: User created successfully content: application/json: schema: - $ref: '#/components/schemas/create_user_response' - '400': + $ref: "#/components/schemas/create_user_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '500': + "500": description: Server error content: {} /users/address: get: tags: - - users - description: Gets User IDs from any Ethereum wallet address or Solana account + - users + description: + Gets User IDs from any Ethereum wallet address or Solana account address associated with their Audius account. operationId: Get User IDs by Addresses parameters: - - name: address - in: query - description: Wallet address - required: true - style: form - explode: true - example: - - '0x1234567890abcdef1234567890abcdef12345678' - - E2LCbKdo2L3ikt1gK6pwp1pDLuhAfHBNf6fEQXpAqrf9 - schema: - type: array - items: - type: string + - name: address + in: query + description: Wallet address + required: true + style: form + explode: true + example: + - "0x1234567890abcdef1234567890abcdef12345678" + - E2LCbKdo2L3ikt1gK6pwp1pDLuhAfHBNf6fEQXpAqrf9 + schema: + type: array + items: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_ids_addresses_response' + $ref: "#/components/schemas/user_ids_addresses_response" /users/handle/{handle}: get: tags: - - users + - users description: Gets a single user by their handle operationId: Get User by Handle parameters: - - name: handle - in: path - description: A User handle - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: handle + in: path + description: A User handle + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_response_single' - '400': + $ref: "#/components/schemas/user_response_single" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/handle/{handle}/tracks: get: tags: - - users + - users description: Gets the tracks created by a user using the user's handle operationId: Get Tracks by User Handle parameters: - - name: handle - in: path - description: A User handle - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: sort - in: query - description: '[Deprecated] Field to sort by' - schema: - type: string - default: date - enum: - - date - - plays - - name: query - in: query - description: The filter query - schema: - type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - title - - artist_name - - release_date - - last_listen_date - - added_date - - plays - - reposts - - saves - - most_listens_by_user - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - enum: - - asc - - desc - - name: filter_tracks - in: query - description: Filter by public tracks - schema: - type: string - default: all - enum: - - all - - public - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: handle + in: path + description: A User handle + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: sort + in: query + description: "[Deprecated] Field to sort by" + schema: + type: string + default: date + enum: + - date + - plays + - name: query + in: query + description: The filter query + schema: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - title + - artist_name + - release_date + - last_listen_date + - added_date + - plays + - reposts + - saves + - most_listens_by_user + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + enum: + - asc + - desc + - name: filter_tracks + in: query + description: Filter by public tracks + schema: + type: string + default: all + enum: + - all + - public + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks' - '400': + $ref: "#/components/schemas/tracks" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/handle/{handle}/tracks/ai_attributed: get: tags: - - users - description: Gets the AI generated tracks attributed to a user using the user's + - users + description: + Gets the AI generated tracks attributed to a user using the user's handle operationId: Get AI Attributed Tracks by User Handle parameters: - - name: handle - in: path - description: A User handle - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: sort - in: query - description: '[Deprecated] Field to sort by' - schema: - type: string - default: date - enum: - - date - - plays - - name: query - in: query - description: The filter query - schema: - type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - title - - artist_name - - release_date - - last_listen_date - - added_date - - plays - - reposts - - saves - - most_listens_by_user - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - enum: - - asc - - desc - - name: filter_tracks - in: query - description: Filter by public tracks - schema: - type: string - default: all - enum: - - all - - public - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: handle + in: path + description: A User handle + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: sort + in: query + description: "[Deprecated] Field to sort by" + schema: + type: string + default: date + enum: + - date + - plays + - name: query + in: query + description: The filter query + schema: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - title + - artist_name + - release_date + - last_listen_date + - added_date + - plays + - reposts + - saves + - most_listens_by_user + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + enum: + - asc + - desc + - name: filter_tracks + in: query + description: Filter by public tracks + schema: + type: string + default: all + enum: + - all + - public + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks' - '400': + $ref: "#/components/schemas/tracks" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/search: get: tags: - - users + - users description: Search for users that match the given query operationId: Search Users parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: query - in: query - description: The search query - schema: - type: string - - name: genre - in: query - description: The genres to filter by - style: form - explode: true - schema: - type: array - items: + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: query + in: query + description: The search query + schema: + type: string + - name: genre + in: query + description: The genres to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - relevant + - popular + - recent + - name: is_verified + in: query + description: Only include verified users in the user results + schema: type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - relevant - - popular - - recent - - name: is_verified - in: query - description: Only include verified users in the user results - schema: - type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_search' - '400': + $ref: "#/components/schemas/user_search" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/verify_token: get: tags: - - users - description: Verify if the given jwt ID token was signed by the subject (user) + - users + description: + Verify if the given jwt ID token was signed by the subject (user) in the payload operationId: Verify ID Token parameters: - - name: token - in: query - description: JWT to verify - required: true - schema: - type: string + - name: token + in: query + description: JWT to verify + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/verify_token' - '400': + $ref: "#/components/schemas/verify_token" + "400": description: Bad input content: {} - '404': + "404": description: ID token not valid content: {} - '500': + "500": description: Server error content: {} /users/{id}: get: tags: - - users + - users description: Gets a single user by their user ID operationId: Get User parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_response_single' - '400': + $ref: "#/components/schemas/user_response_single" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} put: tags: - - users + - users description: Updates an existing user profile operationId: Update User security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string requestBody: x-codegen-request-body-name: metadata required: true content: application/json: schema: - $ref: '#/components/schemas/update_user_request_body' + $ref: "#/components/schemas/update_user_request_body" responses: - '200': + "200": description: User updated successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '400': + $ref: "#/components/schemas/write_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '404': + "404": description: User not found content: {} - '500': + "500": description: Server error content: {} /users/{id}/albums: get: tags: - - users + - users description: Gets the albums created by a user using their user ID operationId: Get Albums by User parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - default: recent - enum: - - recent - - popular - - name: query - in: query - description: Filter albums by name - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + default: recent + enum: + - recent + - popular + - name: query + in: query + description: Filter albums by name + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/albums_response' - '400': + $ref: "#/components/schemas/albums_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/developer-apps: get: tags: - - developer_apps + - developer_apps description: Get developer apps for the user. operationId: Get Developer Apps parameters: - - name: id - in: path - description: The user ID whose developer apps to list - required: true - schema: - type: string - - name: include - in: query - description: Include metrics when set to "metrics" - schema: - type: string - enum: - - metrics + - name: id + in: path + description: The user ID whose developer apps to list + required: true + schema: + type: string + - name: include + in: query + description: Include metrics when set to "metrics" + schema: + type: string + enum: + - metrics responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/developer_apps_response' - '400': + $ref: "#/components/schemas/developer_apps_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/authorized_apps: get: tags: - - users + - users description: Get the apps that user has authorized to write to their account operationId: Get Authorized Apps parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/authorized_apps' - '400': + $ref: "#/components/schemas/authorized_apps" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/balance/history: get: tags: - - users + - users description: Get the user's historical portfolio balance data operationId: Get User Balance History parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: start_time - in: query - description: Start time for the balance history query (ISO 8601 format). Defaults - to 7 days ago. - required: false - schema: - type: string - format: date-time - - name: end_time - in: query - description: End time for the balance history query (ISO 8601 format). Defaults - to now. - required: false - schema: - type: string - format: date-time - - name: granularity - in: query - description: Data granularity. 'hourly' returns hourly data points, 'daily' - returns daily aggregated data. Defaults to 'hourly'. - required: false - schema: - type: string - enum: - - hourly - - daily - default: hourly - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: start_time + in: query + description: + Start time for the balance history query (ISO 8601 format). Defaults + to 7 days ago. + required: false + schema: + type: string + format: date-time + - name: end_time + in: query + description: + End time for the balance history query (ISO 8601 format). Defaults + to now. + required: false + schema: + type: string + format: date-time + - name: granularity + in: query + description: + Data granularity. 'hourly' returns hourly data points, 'daily' + returns daily aggregated data. Defaults to 'hourly'. + required: false + schema: + type: string + enum: + - hourly + - daily + default: hourly + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/balance_history_response' - '400': + $ref: "#/components/schemas/balance_history_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '403': + "403": description: Forbidden content: {} - '500': + "500": description: Server error content: {} /users/{id}/challenges: get: tags: - - users + - users description: Gets all challenges for the given user operationId: Get User Challenges parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: show_historical - in: query - description: Whether to show challenges that are inactive but completed - schema: - type: boolean - default: false + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: show_historical + in: query + description: Whether to show challenges that are inactive but completed + schema: + type: boolean + default: false responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/get_challenges' - '400': + $ref: "#/components/schemas/get_challenges" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/coins: get: tags: - - users + - users description: Gets a list of the coins owned by the user and their balances parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - default: 0 - minimum: 0 - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - default: 50 - minimum: 1 - maximum: 100 + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + default: 0 + minimum: 0 + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + default: 50 + minimum: 1 + maximum: 100 operationId: Get User Coins responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_coins_response' + $ref: "#/components/schemas/user_coins_response" /users/{id}/coins/{mint}: get: tags: - - users - description: Gets information about a specific coin owned by the user and their + - users + description: + Gets information about a specific coin owned by the user and their wallets parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: mint - in: path - description: The mint address of the coin - required: true - schema: - type: string - example: Dez1g5f3h4j5k6l7m8n9o0p1q2r3s4t5u6v7w8x9y0z + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: mint + in: path + description: The mint address of the coin + required: true + schema: + type: string + example: Dez1g5f3h4j5k6l7m8n9o0p1q2r3s4t5u6v7w8x9y0z operationId: Get User Coin responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_coin_response' + $ref: "#/components/schemas/user_coin_response" /wallet/{walletId}/coins: get: tags: - - wallet + - wallet description: Gets a list of the coins held by a wallet address and their balances parameters: - - name: walletId - in: path - description: A Solana wallet address - required: true - schema: - type: string - example: Dez1g5f3h4j5k6l7m8n9o0p1q2r3s4t5u6v7w8x9y0z - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - default: 0 - minimum: 0 - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - default: 50 - minimum: 1 - maximum: 100 + - name: walletId + in: path + description: A Solana wallet address + required: true + schema: + type: string + example: Dez1g5f3h4j5k6l7m8n9o0p1q2r3s4t5u6v7w8x9y0z + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + default: 0 + minimum: 0 + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + default: 50 + minimum: 1 + maximum: 100 operationId: Get Wallet Coins responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_coins_response' + $ref: "#/components/schemas/user_coins_response" /users/{id}/collectibles: get: tags: - - users + - users description: Get the User's indexed collectibles data operationId: Get User Collectibles parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/collectibles_response' - '400': + $ref: "#/components/schemas/collectibles_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/comments: get: tags: - - users + - users description: Get user comment history operationId: Get User Comments parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_comments_response' - '400': + $ref: "#/components/schemas/user_comments_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/connected_wallets: get: tags: - - users + - users description: Get the User's ERC and SPL connected wallets operationId: Get connected wallets parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/connected_wallets_response' - '400': + $ref: "#/components/schemas/connected_wallets_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/favorites: get: tags: - - users + - users description: Gets a user's favorite tracks operationId: Get User Favorites parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/favorites_response' - '400': + $ref: "#/components/schemas/favorites_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/followers: get: tags: - - users + - users description: All users that follow the provided user operationId: Get Followers parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/followers_response' - '400': + $ref: "#/components/schemas/followers_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/follow: post: tags: - - users + - users description: Follow a user operationId: Follow User security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: User followed successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: User not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - users + - users description: Unfollow a user operationId: Unfollow User security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: User unfollowed successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: User not found content: {} - '500': + "500": description: Server error content: {} /users/{id}/grants: post: tags: - - users + - users description: Create a grant (authorize an app to act on the user's behalf) operationId: Create Grant security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: The user ID (grantor) - required: true - schema: - type: string + - name: id + in: path + description: The user ID (grantor) + required: true + schema: + type: string requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/create_grant_request_body' + $ref: "#/components/schemas/create_grant_request_body" responses: - '200': + "200": description: Grant created successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '400': + $ref: "#/components/schemas/write_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '403': + "403": description: Forbidden (user ID does not match) content: {} - '500': + "500": description: Server error content: {} /users/{id}/grants/{address}: delete: tags: - - users + - users description: Revoke a grant (remove app authorization) operationId: Revoke Grant security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: The user ID (grantor) - required: true - schema: - type: string - - name: address - in: path - description: The app API key (grantee address) to revoke - required: true - schema: - type: string + - name: id + in: path + description: The user ID (grantor) + required: true + schema: + type: string + - name: address + in: path + description: The app API key (grantee address) to revoke + required: true + schema: + type: string responses: - '200': + "200": description: Grant revoked successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '400': + $ref: "#/components/schemas/write_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '403': + "403": description: Forbidden content: {} - '500': + "500": description: Server error content: {} /users/{id}/grants/approve: post: tags: - - users - description: Approve a manager request (manager approves being added by the + - users + description: + Approve a manager request (manager approves being added by the child user) operationId: Approve Grant security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: The user ID of the manager (grantee) approving the request - required: true - schema: - type: string + - name: id + in: path + description: The user ID of the manager (grantee) approving the request + required: true + schema: + type: string requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/approve_grant_request_body' + $ref: "#/components/schemas/approve_grant_request_body" responses: - '200': + "200": description: Grant approved successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '400': + $ref: "#/components/schemas/write_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '403': + "403": description: Forbidden content: {} - '500': + "500": description: Server error content: {} /users/{id}/managers: post: tags: - - users + - users description: Add a manager (authorize another user to act on your behalf) operationId: Add Manager security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: The user ID (child user adding the manager) - required: true - schema: - type: string + - name: id + in: path + description: The user ID (child user adding the manager) + required: true + schema: + type: string requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/add_manager_request_body' + $ref: "#/components/schemas/add_manager_request_body" responses: - '200': + "200": description: Manager added successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '400': + $ref: "#/components/schemas/write_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '403': + "403": description: Forbidden content: {} - '500': + "500": description: Server error content: {} get: tags: - - users + - users description: Gets a list of users managing the given user operationId: Get Managers parameters: - - name: id - in: path - description: An id for the managed user - required: true - schema: - type: string - - name: is_approved - in: query - description: If true, only show users where the management request has been - accepted. If false, only show those where the request was rejected. If omitted, - shows all users regardless of approval status. - schema: - type: boolean - - name: is_revoked - in: query - description: If true, only show users where the management request has been - revoked. If false, only show those with a pending or accepted request. Defaults - to false. - schema: - type: boolean - default: false - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: An id for the managed user + required: true + schema: + type: string + - name: is_approved + in: query + description: + If true, only show users where the management request has been + accepted. If false, only show those where the request was rejected. If omitted, + shows all users regardless of approval status. + schema: + type: boolean + - name: is_revoked + in: query + description: + If true, only show users where the management request has been + revoked. If false, only show those with a pending or accepted request. Defaults + to false. + schema: + type: boolean + default: false + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/managers_response' - '400': + $ref: "#/components/schemas/managers_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '403': + "403": description: Forbidden content: {} - '500': + "500": description: Server error content: {} /users/{id}/managers/{managerUserId}: delete: tags: - - users - description: Remove a manager (revoke user-to-user grant). Can be called by + - users + description: + Remove a manager (revoke user-to-user grant). Can be called by the child user or the manager. operationId: Remove Manager security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: The user ID (child user whose manager is being removed) - required: true - schema: - type: string - - name: managerUserId - in: path - description: The user ID of the manager to remove - required: true - schema: - type: string + - name: id + in: path + description: The user ID (child user whose manager is being removed) + required: true + schema: + type: string + - name: managerUserId + in: path + description: The user ID of the manager to remove + required: true + schema: + type: string responses: - '200': + "200": description: Manager removed successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '400': + $ref: "#/components/schemas/write_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '403': + "403": description: Forbidden content: {} - '500': + "500": description: Server error content: {} /users/{id}/following: get: tags: - - users + - users description: All users that the provided user follows operationId: Get Following parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/following_response' - '400': + $ref: "#/components/schemas/following_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/history/tracks: get: tags: - - users + - users description: Get the tracks the user recently listened to. operationId: Get User's Track History parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: query - in: query - description: The filter query - schema: - type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - title - - artist_name - - release_date - - last_listen_date - - added_date - - plays - - reposts - - saves - - most_listens_by_user - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - enum: - - asc - - desc - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: query + in: query + description: The filter query + schema: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - title + - artist_name + - release_date + - last_listen_date + - added_date + - plays + - reposts + - saves + - most_listens_by_user + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + enum: + - asc + - desc + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/history_response' - '400': + $ref: "#/components/schemas/history_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '403': + "403": description: Forbidden content: {} - '500': + "500": description: Server error content: {} /users/{id}/listen_counts_monthly: get: tags: - - users - description: Gets the listen data for a user by month and track within a given + - users + description: + Gets the listen data for a user by month and track within a given time frame. operationId: Get User Monthly Track Listens parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: start_time - in: query - description: Start time from which to start results for user listen count - data (inclusive). - required: true - schema: - type: string - - name: end_time - in: query - description: End time until which to cut off results of listen count data - (not inclusive). - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: start_time + in: query + description: + Start time from which to start results for user listen count + data (inclusive). + required: true + schema: + type: string + - name: end_time + in: query + description: + End time until which to cut off results of listen count data + (not inclusive). + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_track_listen_counts_response' - '400': + $ref: "#/components/schemas/user_track_listen_counts_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/muted: get: tags: - - users + - users description: Gets users muted by the given user operationId: Get Muted Users parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_response' - '400': + $ref: "#/components/schemas/user_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} post: tags: - - users + - users description: Mute a user operationId: Mute User security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: User muted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: User not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - users + - users description: Unmute a user operationId: Unmute User security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: User unmuted successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: User not found content: {} - '500': + "500": description: Server error content: {} /users/{id}/mutuals: get: tags: - - users - description: Get intersection of users that follow followeeUserId and users + - users + description: + Get intersection of users that follow followeeUserId and users that are followed by followerUserId operationId: Get Mutual Followers parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/mutual_followers_response' - '400': + $ref: "#/components/schemas/mutual_followers_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/playlists: get: tags: - - users + - users description: Gets the playlists created by a user using their user ID operationId: Get Playlists by User parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - default: recent - enum: - - recent - - popular - - name: query - in: query - description: Filter playlists by name - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + default: recent + enum: + - recent + - popular + - name: query + in: query + description: Filter playlists by name + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/playlists_response' - '400': + $ref: "#/components/schemas/playlists_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/purchasers: get: tags: - - users - description: Gets the list of unique users who have purchased content by the + - users + description: + Gets the list of unique users who have purchased content by the given user operationId: Get purchasers parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: content_type - in: query - description: Type of content to filter by (track or album) - schema: - type: string - - name: content_id - in: query - description: Filters for users who have purchased the given track or album - ID - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: content_type + in: query + description: Type of content to filter by (track or album) + schema: + type: string + - name: content_id + in: query + description: + Filters for users who have purchased the given track or album + ID + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/purchasers_response' - '400': + $ref: "#/components/schemas/purchasers_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/purchases/download: get: tags: - - users + - users description: Downloads the purchases the user has made as a CSV file operationId: Download Purchases as CSV parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: {} /users/{id}/recommended-tracks: get: tags: - - users + - users description: Gets the recommended tracks for the user operationId: Get User Recommended Tracks parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: time_range - in: query - description: The time range for the recommended tracks - schema: - type: string - default: week - enum: - - week - - month - - allTime + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: time_range + in: query + description: The time range for the recommended tracks + schema: + type: string + default: week + enum: + - week + - month + - allTime responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks' - '400': + $ref: "#/components/schemas/tracks" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/related: get: tags: - - users - description: Gets a list of users that might be of interest to followers of + - users + description: + Gets a list of users that might be of interest to followers of this user. operationId: Get Related Users parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: filter_followed - in: query - description: If true, filters out artists that the current user already follows - schema: - type: boolean - default: false + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: filter_followed + in: query + description: If true, filters out artists that the current user already follows + schema: + type: boolean + default: false responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/related_artist_response' - '400': + $ref: "#/components/schemas/related_artist_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/remixers: get: tags: - - users - description: Gets the list of unique users who have remixed tracks by the given + - users + description: + Gets the list of unique users who have remixed tracks by the given user, or a specific track by that user if provided operationId: Get remixers parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: track_id - in: query - description: Filters for remixers who have remixed the given track ID - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: track_id + in: query + description: Filters for remixers who have remixed the given track ID + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/remixers_response' - '400': + $ref: "#/components/schemas/remixers_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/reposts: get: tags: - - users + - users description: Gets the given user's reposts operationId: Get Reposts parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/reposts' - '400': + $ref: "#/components/schemas/reposts" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/sales/aggregate: get: tags: - - users + - users description: Gets the aggregated sales data for the user operationId: Get Sales Aggregate parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/sales_aggregate_response' + $ref: "#/components/schemas/sales_aggregate_response" /users/{id}/sales/download: get: tags: - - users + - users description: Downloads the sales the user has made as a CSV file operationId: Download Sales as CSV parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: {} /users/{id}/sales/download/json: get: tags: - - users + - users description: Gets the sales data for the user in JSON format operationId: Download Sales as JSON parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: grantee_user_id - in: query - description: Optional receiving user ID for email decryption - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: grantee_user_id + in: query + description: Optional receiving user ID for email decryption + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/sales_json_response' + $ref: "#/components/schemas/sales_json_response" /users/{id}/subscribers: get: tags: - - users + - users description: All users that subscribe to the provided user operationId: Get Subscribers parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/subscribers_response' - '400': + $ref: "#/components/schemas/subscribers_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} post: tags: - - users + - users description: Subscribe to a user operationId: Subscribe to User security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Subscribed successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: User not found content: {} - '500': + "500": description: Server error content: {} delete: tags: - - users + - users description: Unsubscribe from a user operationId: Unsubscribe from User security: - - BasicAuth: [] - - BearerAuth: [] + - BasicAuth: [] + - BearerAuth: [] parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Unsubscribed successfully content: application/json: schema: - $ref: '#/components/schemas/write_response' - '401': + $ref: "#/components/schemas/write_response" + "401": description: Unauthorized content: {} - '404': + "404": description: User not found content: {} - '500': + "500": description: Server error content: {} /users/{id}/supporters: get: tags: - - users + - users description: Gets the supporters of the given user operationId: Get Supporters parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/get_supporters' + $ref: "#/components/schemas/get_supporters" /users/{id}/supporting: get: tags: - - users + - users description: Gets the users that the given user supports operationId: Get Supported Users parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/get_supported_users' + $ref: "#/components/schemas/get_supported_users" /users/{id}/tags: get: tags: - - users + - users summary: Fetch most used tags in a user's tracks description: Gets the most used track tags by a user. operationId: Get Top Track Tags parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tags_response' - '400': + $ref: "#/components/schemas/tags_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/tracks: get: tags: - - users + - users description: Gets the tracks created by a user using their user ID operationId: Get Tracks by User parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: sort - in: query - description: '[Deprecated] Field to sort by' - schema: - type: string - default: date - enum: - - date - - plays - - name: query - in: query - description: The filter query - schema: - type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - title - - artist_name - - release_date - - last_listen_date - - added_date - - plays - - reposts - - saves - - most_listens_by_user - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - enum: - - asc - - desc - - name: filter_tracks - in: query - description: Filter by public tracks - schema: - type: string - default: all - enum: - - all - - public - - name: gate_condition - in: query - description: Filter by gate conditions (can be repeated) - style: form - explode: true - schema: - type: array - items: + - name: id + in: path + description: A User ID + required: true + schema: type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: sort + in: query + description: "[Deprecated] Field to sort by" + schema: + type: string + default: date enum: - - ungated - - usdc_purchase - - follow - - tip - - nft - - token - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - date + - plays + - name: query + in: query + description: The filter query + schema: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - title + - artist_name + - release_date + - last_listen_date + - added_date + - plays + - reposts + - saves + - most_listens_by_user + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + enum: + - asc + - desc + - name: filter_tracks + in: query + description: Filter by public tracks + schema: + type: string + default: all + enum: + - all + - public + - name: gate_condition + in: query + description: Filter by gate conditions (can be repeated) + style: form + explode: true + schema: + type: array + items: + type: string + enum: + - ungated + - usdc_purchase + - follow + - tip + - nft + - token + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks' - '400': + $ref: "#/components/schemas/tracks" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/tracks/count: get: tags: - - users + - users description: Gets the count of tracks created by a user operationId: Get Tracks Count by User parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: filter_tracks - in: query - description: Filter by public tracks - schema: - type: string - default: all - enum: - - all - - public - - name: gate_condition - in: query - description: Filter by gate conditions (can be repeated) - style: form - explode: true - schema: - type: array - items: + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: type: string + - name: filter_tracks + in: query + description: Filter by public tracks + schema: + type: string + default: all enum: - - ungated - - usdc_purchase - - follow - - tip - - nft - - token - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - all + - public + - name: gate_condition + in: query + description: Filter by gate conditions (can be repeated) + style: form + explode: true + schema: + type: array + items: + type: string + enum: + - ungated + - usdc_purchase + - follow + - tip + - nft + - token + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_count_response' - '400': + $ref: "#/components/schemas/tracks_count_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/tracks/remixed: get: tags: - - users - description: Gets tracks owned by the user which have been remixed by another + - users + description: + Gets tracks owned by the user which have been remixed by another track operationId: Get User Tracks Remixed parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - default: 0 - type: integer - minimum: 0 - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - default: 10 - minimum: 1 - maximum: 100 - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + default: 0 + type: integer + minimum: 0 + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + default: 10 + minimum: 1 + maximum: 100 + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_tracks_remixed_response' - '400': + $ref: "#/components/schemas/user_tracks_remixed_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/withdrawals/download: get: tags: - - users + - users description: Downloads the USDC withdrawals the user has made as a CSV file operationId: Download USDC Withdrawals as CSV parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: {} /users/{receiving_user_id}/emails/{grantor_user_id}/key: get: tags: - - users - description: Gets the encrypted key for email access between the receiving user + - users + description: + Gets the encrypted key for email access between the receiving user and granting user. operationId: Get User Email Key parameters: - - name: receiving_user_id - in: path - description: ID of user receiving email access - required: true - schema: - type: string - - name: grantor_user_id - in: path - description: ID of user granting email access - required: true - schema: - type: string + - name: receiving_user_id + in: path + description: ID of user receiving email access + required: true + schema: + type: string + - name: grantor_user_id + in: path + description: ID of user granting email access + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/email_access_response' - '400': + $ref: "#/components/schemas/email_access_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /coins: get: tags: - - coins + - coins operationId: Get Coins description: Gets a list of coins with optional filtering parameters: - - name: ticker - in: query - description: Filter by coin ticker(s) - schema: - type: array - items: + - name: ticker + in: query + description: Filter by coin ticker(s) + schema: + type: array + items: + type: string + style: form + explode: true + - name: mint + in: query + description: Filter by coin mint address(es) + schema: + type: array + items: + type: string + style: form + explode: true + - name: owner_id + in: query + description: Filter by owner user ID(s) + schema: + type: array + items: + type: string + style: form + explode: true + - name: limit + in: query + description: Maximum number of results to return + schema: + type: integer + minimum: 1 + maximum: 100 + default: 50 + - name: offset + in: query + description: Number of results to skip + schema: + type: integer + minimum: 0 + default: 0 + - name: query + in: query + description: Search query for ticker, name, or handle + schema: type: string - style: form - explode: true - - name: mint - in: query - description: Filter by coin mint address(es) - schema: - type: array - items: + - name: sort_method + in: query + description: Sort method + schema: type: string - style: form - explode: true - - name: owner_id - in: query - description: Filter by owner user ID(s) - schema: - type: array - items: + enum: + - market_cap + - price + - volume + - created_at + - holder + default: market_cap + - name: sort_direction + in: query + description: Sort direction + schema: type: string - style: form - explode: true - - name: limit - in: query - description: Maximum number of results to return - schema: - type: integer - minimum: 1 - maximum: 100 - default: 50 - - name: offset - in: query - description: Number of results to skip - schema: - type: integer - minimum: 0 - default: 0 - - name: query - in: query - description: Search query for ticker, name, or handle - schema: - type: string - - name: sort_method - in: query - description: Sort method - schema: - type: string - enum: - - market_cap - - price - - volume - - created_at - - holder - default: market_cap - - name: sort_direction - in: query - description: Sort direction - schema: - type: string - enum: - - asc - - desc - default: desc + enum: + - asc + - desc + default: desc responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/coins_response' + $ref: "#/components/schemas/coins_response" post: tags: - - coins + - coins operationId: Create Coin description: Creates a new artist coin parameters: - - name: user_id - in: query - description: The user ID to create a coin - required: true - schema: - type: string - example: 7eP5n + - name: user_id + in: query + description: The user ID to create a coin + required: true + schema: + type: string + example: 7eP5n requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/create_coin_request' + $ref: "#/components/schemas/create_coin_request" responses: - '201': + "201": description: Success - Coin created content: application/json: schema: - $ref: '#/components/schemas/create_coin_response' - '400': + $ref: "#/components/schemas/create_coin_response" + "400": description: Bad request - Invalid parameters content: {} - '500': + "500": description: Server error content: {} /coins/{mint}: get: tags: - - coins + - coins operationId: Get Coin description: Gets information about a specific coin by its mint address parameters: - - name: mint - in: path - description: The mint address of the coin - required: true - schema: - type: string - example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM + - name: mint + in: path + description: The mint address of the coin + required: true + schema: + type: string + example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/coin_response' + $ref: "#/components/schemas/coin_response" post: tags: - - coins + - coins operationId: Update Coin description: Updates information about a specific coin by its mint address parameters: - - name: mint - in: path - description: The mint address of the coin - required: true - schema: - type: string - example: bearR26zyyB3fNQm5wWv1ZfN8MPQDUMwaAuoG79b1Yj - - name: user_id - in: query - description: The user ID making the update (must be the coin owner) - required: true - schema: - type: string - example: 7eP5n + - name: mint + in: path + description: The mint address of the coin + required: true + schema: + type: string + example: bearR26zyyB3fNQm5wWv1ZfN8MPQDUMwaAuoG79b1Yj + - name: user_id + in: query + description: The user ID making the update (must be the coin owner) + required: true + schema: + type: string + example: 7eP5n requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/update_coin_request' + $ref: "#/components/schemas/update_coin_request" responses: - '200': + "200": description: Success - Coin updated content: application/json: schema: - $ref: '#/components/schemas/update_coin_response' - '400': + $ref: "#/components/schemas/update_coin_response" + "400": description: Bad request - Invalid parameters or no fields provided content: {} - '403': + "403": description: Forbidden - User does not own the coin content: {} - '404': + "404": description: Not found - Coin does not exist content: {} - '500': + "500": description: Server error content: {} /coins/ticker/{ticker}: get: tags: - - coins + - coins operationId: Get Coin By Ticker description: Gets information about a specific coin by its ticker parameters: - - name: ticker - in: path - description: The ticker symbol of the coin - required: true - schema: - type: string - example: $AUDIO + - name: ticker + in: path + description: The ticker symbol of the coin + required: true + schema: + type: string + example: $AUDIO responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/coin_response' + $ref: "#/components/schemas/coin_response" /coins/{mint}/insights: get: tags: - - coins + - coins operationId: Get Coin Insights description: Gets insights about a specific coin by its mint address parameters: - - name: mint - in: path - description: The mint address of the coin - required: true - schema: - type: string - example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM + - name: mint + in: path + description: The mint address of the coin + required: true + schema: + type: string + example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/coin_insights_response' + $ref: "#/components/schemas/coin_insights_response" /coins/{mint}/members: get: tags: - - coins + - coins operationId: Get Coin Members - description: Gets a list of Audius users with a non-zero balance of a specific + description: + Gets a list of Audius users with a non-zero balance of a specific coin parameters: - - name: mint - in: path - description: The mint address of the coin - required: true - schema: - type: string - example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - default: 0 - minimum: 0 - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - default: 10 - minimum: 1 - maximum: 100 - - name: sort_direction - in: query - description: The sort direction for the results - schema: - type: string - enum: - - asc - - desc - default: desc + - name: mint + in: path + description: The mint address of the coin + required: true + schema: + type: string + example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + default: 0 + minimum: 0 + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + default: 10 + minimum: 1 + maximum: 100 + - name: sort_direction + in: query + description: The sort direction for the results + schema: + type: string + enum: + - asc + - desc + default: desc responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/coin_members_response' + $ref: "#/components/schemas/coin_members_response" /coins/{mint}/members/count: get: tags: - - coins + - coins operationId: Get Coin Members Count - description: Gets the total number of Audius users with a non-zero balance of + description: + Gets the total number of Audius users with a non-zero balance of a specific coin parameters: - - name: mint - in: path - description: The mint address of the coin - required: true - schema: - type: string - example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM + - name: mint + in: path + description: The mint address of the coin + required: true + schema: + type: string + example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/coin_members_count_response' + $ref: "#/components/schemas/coin_members_count_response" /coins/volume-leaders: get: tags: - - coins + - coins operationId: Get Volume Leaders description: Gets top coin<>AUDIO trading addresses by volume parameters: - - name: from - in: query - description: Beginning of time range to query over (RFC3339 format) - schema: - type: string - example: '2006-01-02T15:04:05Z' - default: (most recent midnight UTC) - - name: to - in: query - description: End of time range to query over (RFC3339 format) - schema: - type: string - example: '2006-01-02T15:04:05Z' - default: (most recent midnight UTC + 24hrs) - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - default: 0 - minimum: 0 - maximum: 500 - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - default: 20 - minimum: 1 - maximum: 100 + - name: from + in: query + description: Beginning of time range to query over (RFC3339 format) + schema: + type: string + example: "2006-01-02T15:04:05Z" + default: (most recent midnight UTC) + - name: to + in: query + description: End of time range to query over (RFC3339 format) + schema: + type: string + example: "2006-01-02T15:04:05Z" + default: (most recent midnight UTC + 24hrs) + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + default: 0 + minimum: 0 + maximum: 500 + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/coins_volume_leaders_response' - '400': + $ref: "#/components/schemas/coins_volume_leaders_response" + "400": description: Bad Request /coins/{mint}/redeem: get: tags: - - coins + - coins operationId: Get Coin Redeem Amount - description: Gets the availability indicator for reward codes for a specific + description: + Gets the availability indicator for reward codes for a specific coin parameters: - - name: mint - in: path - description: The mint address of the coin - required: true - schema: - type: string - example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM + - name: mint + in: path + description: The mint address of the coin + required: true + schema: + type: string + example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/redeem_amount_response' + $ref: "#/components/schemas/redeem_amount_response" post: tags: - - coins + - coins operationId: Claim Coin Reward description: Claims a coin reward for a given mint parameters: - - name: mint - in: path - description: The mint address of the coin - required: true - schema: - type: string - example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: mint + in: path + description: The mint address of the coin + required: true + schema: + type: string + example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/claim_rewards_response' - '400': + $ref: "#/components/schemas/claim_rewards_response" + "400": description: Bad request - No coin reward available or already claimed content: application/json: schema: - $ref: '#/components/schemas/reward_code_error_response' - '500': + $ref: "#/components/schemas/reward_code_error_response" + "500": description: Server error content: {} /coins/{mint}/redeem/{code}: get: tags: - - coins + - coins operationId: Get Reward Code description: Gets information about a specific reward code for a coin parameters: - - name: mint - in: path - description: The mint address of the coin - required: true - schema: - type: string - example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM - - name: code - in: path - description: The reward code to retrieve - required: true - schema: - type: string - example: XYZ123 + - name: mint + in: path + description: The mint address of the coin + required: true + schema: + type: string + example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM + - name: code + in: path + description: The reward code to retrieve + required: true + schema: + type: string + example: XYZ123 responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/reward_code_response' - '400': + $ref: "#/components/schemas/reward_code_response" + "400": description: Bad request - Code is invalid or already used content: application/json: schema: - $ref: '#/components/schemas/reward_code_error_response' + $ref: "#/components/schemas/reward_code_error_response" post: tags: - - coins + - coins operationId: Claim Coin Reward Code description: Claims a coin reward using a given code parameters: - - name: mint - in: path - description: The mint address of the coin - required: true - schema: - type: string - example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM - - name: code - in: path - description: The reward code to claim - required: true - schema: - type: string - example: XYZ123 - - name: user_id - in: query - description: The user ID of the user making the request - required: true - schema: - type: string + - name: mint + in: path + description: The mint address of the coin + required: true + schema: + type: string + example: 9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM + - name: code + in: path + description: The reward code to claim + required: true + schema: + type: string + example: XYZ123 + - name: user_id + in: query + description: The user ID of the user making the request + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/claim_rewards_response' - '400': + $ref: "#/components/schemas/claim_rewards_response" + "400": description: Bad request - Code is invalid or already used content: application/json: schema: - $ref: '#/components/schemas/reward_code_error_response' - '500': + $ref: "#/components/schemas/reward_code_error_response" + "500": description: Server error content: {} /rewards/claim: post: tags: - - rewards + - rewards description: Claims all the filtered undisbursed rewards for a user operationId: Claim Rewards requestBody: @@ -6785,24 +6895,24 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/claim_rewards_request_body' + $ref: "#/components/schemas/claim_rewards_request_body" responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/claim_rewards_response' - '400': + $ref: "#/components/schemas/claim_rewards_response" + "400": description: Bad request - No rewards to claim or invalid parameters content: {} - '500': + "500": description: Server error content: {} /rewards/code: post: tags: - - rewards + - rewards description: Creates a new reward code with Solana signature verification operationId: Create Reward Code requestBody: @@ -6810,47 +6920,50 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/create_reward_code_request' + $ref: "#/components/schemas/create_reward_code_request" responses: - '201': + "201": description: Created - Reward code successfully created content: application/json: schema: - $ref: '#/components/schemas/create_reward_code_response' - '400': - description: Bad request - Invalid signature format or missing required + $ref: "#/components/schemas/create_reward_code_response" + "400": + description: + Bad request - Invalid signature format or missing required fields content: {} - '403': + "403": description: Forbidden - Signature verification failed content: {} - '500': + "500": description: Server error content: {} /prizes: get: tags: - - prizes + - prizes operationId: Get Prizes - description: Gets a list of active prizes available for claiming. Excludes sensitive + description: + Gets a list of active prizes available for claiming. Excludes sensitive information like download URLs. responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/prizes_response' - '500': + $ref: "#/components/schemas/prizes_response" + "500": description: Server error content: {} /prizes/claim: post: tags: - - prizes + - prizes operationId: Claim Prize - description: Claims a prize by verifying a Solana transaction. User must send + description: + Claims a prize by verifying a Solana transaction. User must send exactly 2 YAK to the prize receiver address. Returns the prize won and any redeem codes/URLs. requestBody: @@ -6859,2269 +6972,2316 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/prize_claim_request_body' + $ref: "#/components/schemas/prize_claim_request_body" responses: - '200': + "200": description: Success - Prize claimed content: application/json: schema: - $ref: '#/components/schemas/prize_claim_response' - '400': - description: Bad request - Transaction not found, invalid, or signature + $ref: "#/components/schemas/prize_claim_response" + "400": + description: + Bad request - Transaction not found, invalid, or signature already used content: {} - '500': + "500": description: Server error content: {} /wallet/{wallet}/prizes: get: tags: - - prizes + - prizes operationId: Get Wallet Prizes - description: Gets all claimed prizes for a wallet. Public endpoint - no authentication + description: + Gets all claimed prizes for a wallet. Public endpoint - no authentication required. Excludes sensitive action_data for security. parameters: - - name: wallet - in: path - description: The wallet address to get prizes for - required: true - schema: - type: string - example: HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC + - name: wallet + in: path + description: The wallet address to get prizes for + required: true + schema: + type: string + example: HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/claimed_prizes_response' - '400': + $ref: "#/components/schemas/claimed_prizes_response" + "400": description: Bad request - Missing wallet parameter content: {} - '500': + "500": description: Server error content: {} /challenges/{challenge_id}/attest: get: tags: - - challenges - description: Produces an attestation that a given user has completed a challenge, + - challenges + description: + Produces an attestation that a given user has completed a challenge, or errors. operationId: Get Challenge Attestation parameters: - - name: challenge_id - in: path - description: The challenge ID of the user challenge requiring the attestation - required: true - schema: - type: string - - name: oracle - in: query - description: The address of a valid, registered Anti-Abuse Oracle - required: true - schema: - type: string - - name: specifier - in: query - description: The specifier of the user challenge requiring the attestation - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user challenge requiring the attestation - required: true - schema: - type: string + - name: challenge_id + in: path + description: The challenge ID of the user challenge requiring the attestation + required: true + schema: + type: string + - name: oracle + in: query + description: The address of a valid, registered Anti-Abuse Oracle + required: true + schema: + type: string + - name: specifier + in: query + description: The specifier of the user challenge requiring the attestation + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user challenge requiring the attestation + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/attestation_reponse' - '400': - description: The attestation request was invalid (eg. The user didn't complete + $ref: "#/components/schemas/attestation_reponse" + "400": + description: + The attestation request was invalid (eg. The user didn't complete that challenge yet) content: {} - '500': + "500": description: Server error content: {} /cid_data/{metadata_id}: get: tags: - - cid_data + - cid_data description: Get a metadata by CID operationId: Get Metadata parameters: - - name: metadata_id - in: path - description: A Metdata CID - required: true - schema: - type: string + - name: metadata_id + in: path + description: A Metdata CID + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/cid_data_response' - '400': + $ref: "#/components/schemas/cid_data_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /notifications/{user_id}: get: tags: - - notifications + - notifications description: Get notifications for user ID operationId: Get Notifications parameters: - - name: user_id - in: path - description: A User ID - required: true - schema: - type: string - - name: timestamp - in: query - description: The timestamp from which to paginate - schema: - type: integer - - name: group_id - in: query - description: The group_id form which to paginate - schema: - type: string - - name: limit - in: query - description: The number of notifications to return - schema: - type: integer - - name: types - in: query - description: Additional valid notification types to return - style: form - explode: true - schema: - type: array - items: + - name: user_id + in: path + description: A User ID + required: true + schema: type: string - enum: - - announcement - - follow - - repost - - save - - remix - - cosign - - create - - tip_receive - - tip_send - - challenge_reward - - repost_of_repost - - save_of_repost - - tastemaker - - reaction - - supporter_dethroned - - supporter_rank_up - - supporting_rank_up - - milestone - - track_milestone - - track_added_to_playlist - - playlist_milestone - - tier_change - - trending - - trending_playlist - - trending_underground - - usdc_purchase_buyer - - usdc_purchase_seller - - track_added_to_purchased_album - - request_manager - - approve_manager_request - - claimable_reward - - comment - - comment_thread - - comment_mention - - comment_reaction - - listen_streak_reminder - - fan_remix_contest_started - - fan_remix_contest_ended - - fan_remix_contest_ending_soon - - fan_remix_contest_winners_selected - - artist_remix_contest_ended - - artist_remix_contest_ending_soon - - artist_remix_contest_submissions + - name: timestamp + in: query + description: The timestamp from which to paginate + schema: + type: integer + - name: group_id + in: query + description: The group_id form which to paginate + schema: + type: string + - name: limit + in: query + description: The number of notifications to return + schema: + type: integer + - name: types + in: query + description: Additional valid notification types to return + style: form + explode: true + schema: + type: array + items: + type: string + enum: + - announcement + - follow + - repost + - save + - remix + - cosign + - create + - tip_receive + - tip_send + - challenge_reward + - repost_of_repost + - save_of_repost + - tastemaker + - reaction + - supporter_dethroned + - supporter_rank_up + - supporting_rank_up + - milestone + - track_milestone + - track_added_to_playlist + - playlist_milestone + - tier_change + - trending + - trending_playlist + - trending_underground + - usdc_purchase_buyer + - usdc_purchase_seller + - track_added_to_purchased_album + - request_manager + - approve_manager_request + - claimable_reward + - comment + - comment_thread + - comment_mention + - comment_reaction + - listen_streak_reminder + - fan_remix_contest_started + - fan_remix_contest_ended + - fan_remix_contest_ending_soon + - fan_remix_contest_winners_selected + - artist_remix_contest_ended + - artist_remix_contest_ending_soon + - artist_remix_contest_submissions responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/notifications_response' + $ref: "#/components/schemas/notifications_response" /notifications/{user_id}/playlist_updates: get: tags: - - notifications - description: Get playlists the user has saved that have been updated for user + - notifications + description: + Get playlists the user has saved that have been updated for user ID operationId: Get Playlist Updates parameters: - - name: user_id - in: path - description: A User ID - required: true - schema: - type: string + - name: user_id + in: path + description: A User ID + required: true + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/playlist_updates_response' + $ref: "#/components/schemas/playlist_updates_response" /playlists/trending/{version}: get: tags: - - playlists - description: Returns trending playlists for a time period based on the given + - playlists + description: + Returns trending playlists for a time period based on the given trending version operationId: Get Trending Playlists With Version parameters: - - name: version - in: path - description: The strategy version of trending to use - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: time - in: query - description: Calculate trending over a specified time range - schema: - type: string - enum: - - week - - month - - year - - allTime + - name: version + in: path + description: The strategy version of trending to use + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: time + in: query + description: Calculate trending over a specified time range + schema: + type: string + enum: + - week + - month + - year + - allTime responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/trending_playlists_response' - '400': + $ref: "#/components/schemas/trending_playlists_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /reactions: get: tags: - - reactions + - reactions description: Gets reactions by reacted_to_id and type operationId: Bulk get Reactions parameters: - - name: type - in: query - description: The type of reactions for which to query. - schema: - type: string - - name: reacted_to_ids - in: query - description: The `reacted_to` transaction id(s) of the reactions in question. - required: true - style: form - explode: false - schema: - type: array - items: + - name: type + in: query + description: The type of reactions for which to query. + schema: type: string + - name: reacted_to_ids + in: query + description: The `reacted_to` transaction id(s) of the reactions in question. + required: true + style: form + explode: false + schema: + type: array + items: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/reactions' - '400': + $ref: "#/components/schemas/reactions" + "400": description: Bad request content: {} - '404': + "404": description: No such reaction content: {} - '500': + "500": description: Server error content: {} /search/autocomplete: get: tags: - - search + - search summary: Get Users/Tracks/Playlists/Albums that best match the search query - description: Same as search but optimized for quicker response at the cost of + description: + Same as search but optimized for quicker response at the cost of some entity information. operationId: Search Autocomplete parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: query - in: query - description: The search query - schema: - type: string - - name: kind - in: query - description: 'The type of response, one of: all, users, tracks, playlists, - or albums' - schema: - type: string - default: all - enum: - - all - - users - - tracks - - playlists - - albums - - name: includePurchaseable - in: query - description: Whether or not to include purchaseable content - schema: - type: boolean - - name: genre - in: query - description: The genres to filter by - style: form - explode: true - schema: - type: array - items: + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: type: string - - name: mood - in: query - description: The moods to filter by - style: form - explode: true - schema: - type: array - items: + - name: query + in: query + description: The search query + schema: type: string - - name: is_verified - in: query - description: Only include verified users in the user results - schema: - type: boolean - - name: has_downloads - in: query - description: Only include tracks that have downloads in the track results - schema: - type: boolean - - name: is_purchaseable - in: query - description: Only include purchaseable tracks and albums in the track and - album results - schema: - type: boolean - - name: key - in: query - description: Only include tracks that match the musical key - style: form - explode: true - schema: - type: array - items: + - name: kind + in: query + description: + "The type of response, one of: all, users, tracks, playlists, + or albums" + schema: type: string - - name: bpm_min - in: query - description: Only include tracks that have a bpm greater than or equal to - schema: - type: number - - name: bpm_max - in: query - description: Only include tracks that have a bpm less than or equal to - schema: - type: number - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - relevant - - popular - - recent + default: all + enum: + - all + - users + - tracks + - playlists + - albums + - name: includePurchaseable + in: query + description: Whether or not to include purchaseable content + schema: + type: boolean + - name: genre + in: query + description: The genres to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: mood + in: query + description: The moods to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: is_verified + in: query + description: Only include verified users in the user results + schema: + type: boolean + - name: has_downloads + in: query + description: Only include tracks that have downloads in the track results + schema: + type: boolean + - name: is_purchaseable + in: query + description: + Only include purchaseable tracks and albums in the track and + album results + schema: + type: boolean + - name: key + in: query + description: Only include tracks that match the musical key + style: form + explode: true + schema: + type: array + items: + type: string + - name: bpm_min + in: query + description: Only include tracks that have a bpm greater than or equal to + schema: + type: number + - name: bpm_max + in: query + description: Only include tracks that have a bpm less than or equal to + schema: + type: number + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - relevant + - popular + - recent responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/search_autocomplete_response' - '400': + $ref: "#/components/schemas/search_autocomplete_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /search/full: get: tags: - - search + - search description: Get Users/Tracks/Playlists/Albums that best match the search query operationId: Search parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: query - in: query - description: The search query - schema: - type: string - - name: kind - in: query - description: 'The type of response, one of: all, users, tracks, playlists, - or albums' - schema: - type: string - default: all - enum: - - all - - users - - tracks - - playlists - - albums - - name: includePurchaseable - in: query - description: Whether or not to include purchaseable content - schema: - type: boolean - - name: genre - in: query - description: The genres to filter by - style: form - explode: true - schema: - type: array - items: + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: type: string - - name: mood - in: query - description: The moods to filter by - style: form - explode: true - schema: - type: array - items: + - name: query + in: query + description: The search query + schema: type: string - - name: is_verified - in: query - description: Only include verified users in the user results - schema: - type: boolean - - name: has_downloads - in: query - description: Only include tracks that have downloads in the track results - schema: - type: boolean - - name: is_purchaseable - in: query - description: Only include purchaseable tracks and albums in the track and - album results - schema: - type: boolean - - name: key - in: query - description: Only include tracks that match the musical key - style: form - explode: true - schema: - type: array - items: + - name: kind + in: query + description: + "The type of response, one of: all, users, tracks, playlists, + or albums" + schema: type: string - - name: bpm_min - in: query - description: Only include tracks that have a bpm greater than or equal to - schema: - type: number - - name: bpm_max - in: query - description: Only include tracks that have a bpm less than or equal to - schema: - type: number - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - relevant - - popular - - recent + default: all + enum: + - all + - users + - tracks + - playlists + - albums + - name: includePurchaseable + in: query + description: Whether or not to include purchaseable content + schema: + type: boolean + - name: genre + in: query + description: The genres to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: mood + in: query + description: The moods to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: is_verified + in: query + description: Only include verified users in the user results + schema: + type: boolean + - name: has_downloads + in: query + description: Only include tracks that have downloads in the track results + schema: + type: boolean + - name: is_purchaseable + in: query + description: + Only include purchaseable tracks and albums in the track and + album results + schema: + type: boolean + - name: key + in: query + description: Only include tracks that match the musical key + style: form + explode: true + schema: + type: array + items: + type: string + - name: bpm_min + in: query + description: Only include tracks that have a bpm greater than or equal to + schema: + type: number + - name: bpm_max + in: query + description: Only include tracks that have a bpm less than or equal to + schema: + type: number + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - relevant + - popular + - recent responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/search_response' - '400': + $ref: "#/components/schemas/search_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /search/tags: get: tags: - - search - description: Get Users/Tracks/Playlists/Albums that best match the provided + - search + description: + Get Users/Tracks/Playlists/Albums that best match the provided tag operationId: SearchTags parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: query - in: query - description: The search query - schema: - type: string - - name: kind - in: query - description: 'The type of response, one of: all, users, tracks, playlists, - or albums' - schema: - type: string - default: all - enum: - - all - - users - - tracks - - playlists - - albums - - name: includePurchaseable - in: query - description: Whether or not to include purchaseable content - schema: - type: boolean - - name: genre - in: query - description: The genres to filter by - style: form - explode: true - schema: - type: array - items: + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: type: string - - name: mood - in: query - description: The moods to filter by - style: form - explode: true - schema: - type: array - items: + - name: query + in: query + description: The search query + schema: type: string - - name: is_verified - in: query - description: Only include verified users in the user results - schema: - type: boolean - - name: has_downloads - in: query - description: Only include tracks that have downloads in the track results - schema: - type: boolean - - name: is_purchaseable - in: query - description: Only include purchaseable tracks and albums in the track and - album results - schema: - type: boolean - - name: key - in: query - description: Only include tracks that match the musical key - style: form - explode: true - schema: - type: array - items: + - name: kind + in: query + description: + "The type of response, one of: all, users, tracks, playlists, + or albums" + schema: type: string - - name: bpm_min - in: query - description: Only include tracks that have a bpm greater than or equal to - schema: - type: number - - name: bpm_max - in: query - description: Only include tracks that have a bpm less than or equal to - schema: - type: number - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - relevant - - popular - - recent + default: all + enum: + - all + - users + - tracks + - playlists + - albums + - name: includePurchaseable + in: query + description: Whether or not to include purchaseable content + schema: + type: boolean + - name: genre + in: query + description: The genres to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: mood + in: query + description: The moods to filter by + style: form + explode: true + schema: + type: array + items: + type: string + - name: is_verified + in: query + description: Only include verified users in the user results + schema: + type: boolean + - name: has_downloads + in: query + description: Only include tracks that have downloads in the track results + schema: + type: boolean + - name: is_purchaseable + in: query + description: + Only include purchaseable tracks and albums in the track and + album results + schema: + type: boolean + - name: key + in: query + description: Only include tracks that match the musical key + style: form + explode: true + schema: + type: array + items: + type: string + - name: bpm_min + in: query + description: Only include tracks that have a bpm greater than or equal to + schema: + type: number + - name: bpm_max + in: query + description: Only include tracks that have a bpm less than or equal to + schema: + type: number + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - relevant + - popular + - recent responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/search_response' - '400': + $ref: "#/components/schemas/search_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/best_new_releases: get: tags: - - tracks + - tracks description: Gets the tracks found on the "Best New Releases" smart playlist operationId: Get Best New Releases parameters: - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: window - in: query - description: The window from now() to look back over - required: true - schema: - type: string - enum: - - week - - month - - year - - name: limit - in: query - description: The number of tracks to get - schema: - type: integer - default: 25 - - name: with_users - in: query - description: Boolean to include user info with tracks - schema: - type: boolean + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: window + in: query + description: The window from now() to look back over + required: true + schema: + type: string + enum: + - week + - month + - year + - name: limit + in: query + description: The number of tracks to get + schema: + type: integer + default: 25 + - name: with_users + in: query + description: Boolean to include user info with tracks + schema: + type: boolean responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" /tracks/most_loved: get: tags: - - tracks + - tracks description: Gets the tracks found on the "Most Loved" smart playlist operationId: Get Most Loved Tracks parameters: - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: limit - in: query - description: Number of tracks to fetch - schema: - type: integer - default: 25 - - name: with_users - in: query - description: Boolean to include user info with tracks - schema: - type: boolean + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: limit + in: query + description: Number of tracks to fetch + schema: + type: integer + default: 25 + - name: with_users + in: query + description: Boolean to include user info with tracks + schema: + type: boolean responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" /tracks/remixables: get: tags: - - tracks + - tracks description: Gets a list of tracks that have stems available for remixing operationId: Get Remixable Tracks parameters: - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: with_users - in: query - description: Boolean to include user info with tracks - schema: - type: boolean + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: with_users + in: query + description: Boolean to include user info with tracks + schema: + type: boolean responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/remixables_response' - '400': + $ref: "#/components/schemas/remixables_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /tracks/under_the_radar: get: tags: - - tracks + - tracks description: Gets the tracks found on the "Under the Radar" smart playlist operationId: Get Under the Radar Tracks parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: filter - in: query - description: Filters for activity that is original vs reposts - schema: - type: string - default: all - enum: - - all - - repost - - original - - name: tracks_only - in: query - description: Whether to only include tracks - schema: - type: boolean - - name: with_users - in: query - description: Boolean to include user info with tracks - schema: - type: boolean + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: filter + in: query + description: Filters for activity that is original vs reposts + schema: + type: string + default: all + enum: + - all + - repost + - original + - name: tracks_only + in: query + description: Whether to only include tracks + schema: + type: boolean + - name: with_users + in: query + description: Boolean to include user info with tracks + schema: + type: boolean responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/tracks_response' + $ref: "#/components/schemas/tracks_response" /transactions: get: tags: - - transactions + - transactions summary: Gets the user's $AUDIO transaction history within the App - description: 'Deprecated: Use `/users/{id}/transactions/audio` or `sdk.full.users.getAudioTransactions()` - instead.' + description: + "Deprecated: Use `/users/{id}/transactions/audio` or `sdk.full.users.getAudioTransactions()` + instead." operationId: Get Audio Transaction History parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: sort_method - in: query - description: The sort method - schema: - type: string - default: date - enum: - - date - - transaction_type - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - default: desc - enum: - - asc - - desc - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: sort_method + in: query + description: The sort method + schema: + type: string + default: date + enum: + - date + - transaction_type + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + default: desc + enum: + - asc + - desc + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/transaction_history_response' + $ref: "#/components/schemas/transaction_history_response" deprecated: true /transactions/count: get: tags: - - transactions - summary: Gets the count of the user's $AUDIO transaction history within the + - transactions + summary: + Gets the count of the user's $AUDIO transaction history within the App - description: 'Deprecated: Use `/users/{id}/transactions/audio/count` or `sdk.full.users.getAudioTransactionCount()` - instead.' + description: + "Deprecated: Use `/users/{id}/transactions/audio/count` or `sdk.full.users.getAudioTransactionCount()` + instead." operationId: Get Audio Transaction History Count parameters: - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/transaction_history_count_response' + $ref: "#/components/schemas/transaction_history_count_response" deprecated: true /users/account/{wallet}: get: tags: - - users + - users description: Gets the account for a given user operationId: Get User Account parameters: - - name: wallet - in: path - description: Wallet address for the account - required: true - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: wallet + in: path + description: Wallet address for the account + required: true + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_account_response' - '401': + $ref: "#/components/schemas/user_account_response" + "401": description: Unauthorized content: {} - '403': + "403": description: Forbidden content: {} - '404': + "404": description: Not Found content: {} - '500': + "500": description: Server error content: {} /users/genre/top: get: tags: - - users + - users description: Get the Top Users for a Given Genre operationId: Get Top Users In Genre parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: genre - in: query - description: List of Genres - style: form - explode: true - schema: - type: array - items: - type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: genre + in: query + description: List of Genres + style: form + explode: true + schema: + type: array + items: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/top_genre_users_response' - '400': + $ref: "#/components/schemas/top_genre_users_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/handle/{handle}/reposts: get: tags: - - users + - users description: Gets the user's reposts by the user handle operationId: Get Reposts by Handle parameters: - - name: handle - in: path - description: A User handle - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: handle + in: path + description: A User handle + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/reposts' - '400': + $ref: "#/components/schemas/reposts" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/subscribers: get: tags: - - users + - users description: All users that subscribe to the provided users operationId: Bulk Get Subscribers parameters: - - name: ids - in: query - description: User IDs to fetch subscribers for - required: true - style: form - explode: false - schema: - type: array - items: - type: string + - name: ids + in: query + description: User IDs to fetch subscribers for + required: true + style: form + explode: false + schema: + type: array + items: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/bulk_subscribers_response' - '400': + $ref: "#/components/schemas/bulk_subscribers_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} post: tags: - - users + - users description: Get all users that subscribe to the users listed in the JSON request operationId: Bulk Get Subscribers via JSON request parameters: - - name: ids - in: query - description: User IDs to fetch subscribers for - required: true - style: form - explode: false - schema: - type: array - items: - type: string + - name: ids + in: query + description: User IDs to fetch subscribers for + required: true + style: form + explode: false + schema: + type: array + items: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/bulk_subscribers_response' - '400': + $ref: "#/components/schemas/bulk_subscribers_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/top: get: tags: - - users + - users description: Get the Top Users having at least one track by follower count operationId: Get Top Users parameters: - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/top_users_response' - '400': + $ref: "#/components/schemas/top_users_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/favorites/tracks: get: tags: - - users + - users description: Gets a user's favorite tracks operationId: Get User Favorite Tracks parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: query - in: query - description: The filter query - schema: - type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - title - - artist_name - - release_date - - last_listen_date - - added_date - - plays - - reposts - - saves - - most_listens_by_user - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - enum: - - asc - - desc + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: query + in: query + description: The filter query + schema: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - title + - artist_name + - release_date + - last_listen_date + - added_date + - plays + - reposts + - saves + - most_listens_by_user + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + enum: + - asc + - desc responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_library_response' - '400': + $ref: "#/components/schemas/track_library_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/feed: get: tags: - - users + - users description: Gets the feed for the user operationId: Get User Feed parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: filter - in: query - description: Controls whether the feed is limited to reposts, original content, - or all items - schema: - type: string - default: all - enum: - - all - - repost - - original - - name: tracks_only - in: query - description: Limit feed to only tracks - schema: - type: boolean - - name: with_users - in: query - description: Include user data with feed items - schema: - type: boolean - - name: followee_user_id - in: query - description: A list of followed users to prioritize in feed generation - style: form - explode: true - schema: - type: array - items: + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: type: integer - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: filter + in: query + description: + Controls whether the feed is limited to reposts, original content, + or all items + schema: + type: string + default: all + enum: + - all + - repost + - original + - name: tracks_only + in: query + description: Limit feed to only tracks + schema: + type: boolean + - name: with_users + in: query + description: Include user data with feed items + schema: + type: boolean + - name: followee_user_id + in: query + description: A list of followed users to prioritize in feed generation + style: form + explode: true + schema: + type: array + items: + type: integer + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/user_feed_response' - '400': + $ref: "#/components/schemas/user_feed_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/library/albums: get: tags: - - users + - users summary: Fetch a user's full library playlists description: Gets a user's saved/reposted/purchased/all albums operationId: Get User Library Albums parameters: - - name: id - in: path - description: A user ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: query - in: query - description: The filter query - schema: - type: string - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - enum: - - asc - - desc - - name: type - in: query - description: 'The type of entity to return: favorited, reposted, purchased, - or all. Defaults to favorite' - schema: - type: string - default: favorite - enum: - - all - - repost - - favorite - - purchase - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - added_date - - reposts - - saves - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A user ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: query + in: query + description: The filter query + schema: + type: string + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + enum: + - asc + - desc + - name: type + in: query + description: + "The type of entity to return: favorited, reposted, purchased, + or all. Defaults to favorite" + schema: + type: string + default: favorite + enum: + - all + - repost + - favorite + - purchase + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - added_date + - reposts + - saves + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/collection_library_response' - '400': + $ref: "#/components/schemas/collection_library_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/library/playlists: get: tags: - - users + - users summary: Fetch a user's full library playlists description: Gets a user's saved/reposted/purchased/all playlists operationId: Get User Library Playlists parameters: - - name: id - in: path - description: A user ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: query - in: query - description: The filter query - schema: - type: string - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - enum: - - asc - - desc - - name: type - in: query - description: 'The type of entity to return: favorited, reposted, purchased, - or all. Defaults to favorite' - schema: - type: string - default: favorite - enum: - - all - - repost - - favorite - - purchase - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - added_date - - reposts - - saves - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A user ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: query + in: query + description: The filter query + schema: + type: string + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + enum: + - asc + - desc + - name: type + in: query + description: + "The type of entity to return: favorited, reposted, purchased, + or all. Defaults to favorite" + schema: + type: string + default: favorite + enum: + - all + - repost + - favorite + - purchase + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - added_date + - reposts + - saves + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/collection_library_response' - '400': + $ref: "#/components/schemas/collection_library_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/library/tracks: get: tags: - - users + - users summary: Fetch a user's full library tracks description: Gets a user's saved/reposted/purchased/all tracks operationId: Get User Library Tracks parameters: - - name: id - in: path - description: A user ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: query - in: query - description: The filter query - schema: - type: string - - name: sort_method - in: query - description: The sort method - schema: - type: string - enum: - - title - - artist_name - - release_date - - last_listen_date - - added_date - - plays - - reposts - - saves - - most_listens_by_user - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - enum: - - asc - - desc - - name: type - in: query - description: 'The type of entity to return: favorited, reposted, purchased, - or all. Defaults to favorite' - schema: - type: string - default: favorite - enum: - - all - - repost - - favorite - - purchase - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A user ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: query + in: query + description: The filter query + schema: + type: string + - name: sort_method + in: query + description: The sort method + schema: + type: string + enum: + - title + - artist_name + - release_date + - last_listen_date + - added_date + - plays + - reposts + - saves + - most_listens_by_user + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + enum: + - asc + - desc + - name: type + in: query + description: + "The type of entity to return: favorited, reposted, purchased, + or all. Defaults to favorite" + schema: + type: string + default: favorite + enum: + - all + - repost + - favorite + - purchase + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/track_library_response' - '400': + $ref: "#/components/schemas/track_library_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/managed_users: get: tags: - - users + - users description: Gets a list of users managed by the given user operationId: Get Managed Users parameters: - - name: id - in: path - description: A user id for the manager - required: true - schema: - type: string - - name: is_approved - in: query - description: If true, only show users where the management request has been - accepted. If false, only show those where the request was rejected. If omitted, - shows all users regardless of approval status. - schema: - type: boolean - - name: is_revoked - in: query - description: If true, only show users where the management request has been - revoked. If false, only show those with a pending or accepted request. Defaults - to false. - schema: - type: boolean - default: false - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A user id for the manager + required: true + schema: + type: string + - name: is_approved + in: query + description: + If true, only show users where the management request has been + accepted. If false, only show those where the request was rejected. If omitted, + shows all users regardless of approval status. + schema: + type: boolean + - name: is_revoked + in: query + description: + If true, only show users where the management request has been + revoked. If false, only show those with a pending or accepted request. Defaults + to false. + schema: + type: boolean + default: false + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/managed_users_response' - '400': + $ref: "#/components/schemas/managed_users_response" + "400": description: Bad request content: {} - '401': + "401": description: Unauthorized content: {} - '403': + "403": description: Forbidden content: {} - '500': + "500": description: Server error content: {} /users/{id}/purchasers/count: get: tags: - - users - description: Gets the list of users who have purchased content by the given + - users + description: + Gets the list of users who have purchased content by the given user operationId: Get purchasers count parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: content_type - in: query - description: Type of content to filter by (track or album) - schema: - type: string - - name: content_id - in: query - description: Filters for users who have purchased the given track or album - ID - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: content_type + in: query + description: Type of content to filter by (track or album) + schema: + type: string + - name: content_id + in: query + description: + Filters for users who have purchased the given track or album + ID + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/purchasers_count_response' - '400': + $ref: "#/components/schemas/purchasers_count_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/purchases: get: tags: - - users + - users description: Gets the purchases the user has made operationId: Get Purchases parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: sort_method - in: query - description: The sort direction - schema: - type: string - enum: - - content_title - - artist_name - - buyer_name - - date - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - enum: - - asc - - desc - - name: content_ids - in: query - description: Filters purchases by track or album IDs - style: form - explode: true - schema: - type: array - items: + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: sort_method + in: query + description: The sort direction + schema: + type: string + enum: + - content_title + - artist_name + - buyer_name + - date + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + enum: + - asc + - desc + - name: content_ids + in: query + description: Filters purchases by track or album IDs + style: form + explode: true + schema: + type: array + items: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/purchases_response' + $ref: "#/components/schemas/purchases_response" /users/{id}/purchases/count: get: tags: - - users + - users description: Gets the count of purchases the user has made operationId: Get Purchases Count parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: content_ids - in: query - description: Filters purchases by track or album IDs - style: form - explode: true - schema: - type: array - items: + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: content_ids + in: query + description: Filters purchases by track or album IDs + style: form + explode: true + schema: + type: array + items: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/purchases_count_response' + $ref: "#/components/schemas/purchases_count_response" /users/{id}/remixers/count: get: tags: - - users - description: Gets the count of unique users who have remixed tracks by the given + - users + description: + Gets the count of unique users who have remixed tracks by the given user, or a specific track by that user if provided operationId: Get remixers count parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: track_id - in: query - description: Filters for remixers who have remixed the given track ID - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: track_id + in: query + description: Filters for remixers who have remixed the given track ID + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/remixers_count_response' - '400': + $ref: "#/components/schemas/remixers_count_response" + "400": description: Bad request content: {} - '500': + "500": description: Server error content: {} /users/{id}/sales: get: tags: - - users + - users description: Gets the sales the user has made operationId: Get Sales parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: sort_method - in: query - description: The sort direction - schema: - type: string - enum: - - content_title - - artist_name - - buyer_name - - date - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - enum: - - asc - - desc - - name: content_ids - in: query - description: Filters purchases by track or album IDs - style: form - explode: true - schema: - type: array - items: + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: sort_method + in: query + description: The sort direction + schema: + type: string + enum: + - content_title + - artist_name + - buyer_name + - date + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + enum: + - asc + - desc + - name: content_ids + in: query + description: Filters purchases by track or album IDs + style: form + explode: true + schema: + type: array + items: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/purchases_response' + $ref: "#/components/schemas/purchases_response" /users/{id}/sales/count: get: tags: - - users + - users description: Gets the count of sales the user has made operationId: Get Sales Count parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string - - name: content_ids - in: query - description: Filters purchases by track or album IDs - style: form - explode: true - schema: - type: array - items: + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string + - name: content_ids + in: query + description: Filters purchases by track or album IDs + style: form + explode: true + schema: + type: array + items: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/purchases_count_response' + $ref: "#/components/schemas/purchases_count_response" /users/{id}/supporters/{supporter_user_id}: get: tags: - - users + - users description: Gets the specified supporter of the given user operationId: Get Supporter parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: supporter_user_id - in: path - description: A User ID of a supporter - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: supporter_user_id + in: path + description: A User ID of a supporter + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/get_supporter' + $ref: "#/components/schemas/get_supporter" /users/{id}/supporting/{supported_user_id}: get: tags: - - users + - users description: Gets the support from the given user to the supported user operationId: Get Supporting parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: supported_user_id - in: path - description: A User ID of a supported user - required: true - schema: - type: string - - name: user_id - in: query - description: The user ID of the user making the request - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: supported_user_id + in: path + description: A User ID of a supported user + required: true + schema: + type: string + - name: user_id + in: query + description: The user ID of the user making the request + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/get_supporting' + $ref: "#/components/schemas/get_supporting" /users/{id}/transactions/audio: get: tags: - - users + - users description: Gets the user's $AUDIO transaction history within the App operationId: Get Audio Transactions parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: sort_method - in: query - description: The sort method - schema: - type: string - default: date - enum: - - date - - transaction_type - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - default: desc - enum: - - asc - - desc - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: sort_method + in: query + description: The sort method + schema: + type: string + default: date + enum: + - date + - transaction_type + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + default: desc + enum: + - asc + - desc + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/transaction_history_response' + $ref: "#/components/schemas/transaction_history_response" /users/{id}/transactions/audio/count: get: tags: - - users - description: Gets the count of the user's $AUDIO transaction history within + - users + description: + Gets the count of the user's $AUDIO transaction history within the App operationId: Get Audio Transaction Count parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/transaction_history_count_response' + $ref: "#/components/schemas/transaction_history_count_response" /users/{id}/transactions/usdc: get: tags: - - users + - users description: Gets the user's $USDC transaction history within the App operationId: Get USDC Transactions parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: offset - in: query - description: The number of items to skip. Useful for pagination (page number - * limit) - schema: - type: integer - - name: limit - in: query - description: The number of items to fetch - schema: - type: integer - - name: sort_method - in: query - description: The sort method - schema: - type: string - default: date - enum: - - date - - transaction_type - - name: sort_direction - in: query - description: The sort direction - schema: - type: string - default: desc - enum: - - asc - - desc - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string - - name: type - in: query - description: Filters the type of transactions to show - style: form - explode: true - schema: - type: array - items: + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: offset + in: query + description: + The number of items to skip. Useful for pagination (page number + * limit) + schema: + type: integer + - name: limit + in: query + description: The number of items to fetch + schema: + type: integer + - name: sort_method + in: query + description: The sort method + schema: type: string + default: date enum: - - purchase_content - - transfer - - internal_transfer - - prepare_withdrawal - - recover_withdrawal - - withdrawal - - purchase_stripe - - name: include_system_transactions - in: query - description: Include intermediate system transactions in the results - schema: - type: boolean - default: false - - name: method - in: query - description: Filters the method (sent/received) of transactions to show - schema: - type: string - enum: - - send - - receive + - date + - transaction_type + - name: sort_direction + in: query + description: The sort direction + schema: + type: string + default: desc + enum: + - asc + - desc + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string + - name: type + in: query + description: Filters the type of transactions to show + style: form + explode: true + schema: + type: array + items: + type: string + enum: + - purchase_content + - transfer + - internal_transfer + - prepare_withdrawal + - recover_withdrawal + - withdrawal + - purchase_stripe + - name: include_system_transactions + in: query + description: Include intermediate system transactions in the results + schema: + type: boolean + default: false + - name: method + in: query + description: Filters the method (sent/received) of transactions to show + schema: + type: string + enum: + - send + - receive responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/transaction_history_response' + $ref: "#/components/schemas/transaction_history_response" /users/{id}/transactions/usdc/count: get: tags: - - users - description: Gets the count of the user's $USDC transaction history within the + - users + description: + Gets the count of the user's $USDC transaction history within the App operationId: Get USDC Transaction Count parameters: - - name: id - in: path - description: A User ID - required: true - schema: - type: string - - name: type - in: query - description: Filters the type of transactions to show - style: form - explode: true - schema: - type: array - items: + - name: id + in: path + description: A User ID + required: true + schema: + type: string + - name: type + in: query + description: Filters the type of transactions to show + style: form + explode: true + schema: + type: array + items: + type: string + enum: + - purchase_content + - transfer + - internal_transfer + - prepare_withdrawal + - recover_withdrawal + - withdrawal + - purchase_stripe + - name: include_system_transactions + in: query + description: Include intermediate system transactions in the results + schema: + type: boolean + default: false + - name: method + in: query + description: Filters the method (sent/received) of transactions to show + schema: type: string enum: - - purchase_content - - transfer - - internal_transfer - - prepare_withdrawal - - recover_withdrawal - - withdrawal - - purchase_stripe - - name: include_system_transactions - in: query - description: Include intermediate system transactions in the results - schema: - type: boolean - default: false - - name: method - in: query - description: Filters the method (sent/received) of transactions to show - schema: - type: string - enum: - - send - - receive - - name: Encoded-Data-Message - in: header - description: The data that was signed by the user for signature recovery - schema: - type: string - - name: Encoded-Data-Signature - in: header - description: The signature of data, used for signature recovery - schema: - type: string + - send + - receive + - name: Encoded-Data-Message + in: header + description: The data that was signed by the user for signature recovery + schema: + type: string + - name: Encoded-Data-Signature + in: header + description: The signature of data, used for signature recovery + schema: + type: string responses: - '200': + "200": description: Success content: application/json: schema: - $ref: '#/components/schemas/transaction_history_count_response' + $ref: "#/components/schemas/transaction_history_count_response" components: schemas: create_access_key_response: type: object required: - - api_access_key + - api_access_key properties: api_access_key: type: string description: The newly created bearer token (API access key) track_library_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -9137,20 +9297,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/track_activity' + $ref: "#/components/schemas/track_activity" purchases_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -9166,15 +9326,15 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/purchase' + $ref: "#/components/schemas/purchase" create_playlist_request_body: type: object required: - - playlist_name + - playlist_name properties: playlist_id: type: string @@ -9196,10 +9356,10 @@ components: type: boolean description: Whether this is an album genre: - $ref: '#/components/schemas/genre' + $ref: "#/components/schemas/genre" mood: allOf: - - $ref: '#/components/schemas/mood' + - $ref: "#/components/schemas/mood" tags: type: string description: Comma-separated tags @@ -9220,7 +9380,7 @@ components: type: array description: Array of tracks in the playlist items: - $ref: '#/components/schemas/playlist_added_timestamp' + $ref: "#/components/schemas/playlist_added_timestamp" is_stream_gated: type: boolean nullable: true @@ -9232,7 +9392,7 @@ components: stream_conditions: nullable: true allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" ddex_app: type: string description: DDEX application identifier @@ -9246,17 +9406,17 @@ components: type: array nullable: true items: - $ref: '#/components/schemas/ddex_resource_contributor' + $ref: "#/components/schemas/ddex_resource_contributor" description: DDEX resource contributors / artists copyright_line: nullable: true allOf: - - $ref: '#/components/schemas/ddex_copyright' + - $ref: "#/components/schemas/ddex_copyright" description: DDEX copyright line producer_copyright_line: nullable: true allOf: - - $ref: '#/components/schemas/ddex_copyright' + - $ref: "#/components/schemas/ddex_copyright" description: DDEX producer copyright line parental_warning_type: type: string @@ -9272,17 +9432,17 @@ components: data: type: array items: - $ref: '#/components/schemas/remixed_track_aggregate' + $ref: "#/components/schemas/remixed_track_aggregate" cid_data_response: type: object properties: data: - $ref: '#/components/schemas/data_and_type' + $ref: "#/components/schemas/data_and_type" ddex_copyright: type: object required: - - year - - text + - year + - text properties: year: type: string @@ -9297,8 +9457,8 @@ components: type: object description: DDEX rights controller required: - - name - - roles + - name + - roles properties: name: type: string @@ -9315,13 +9475,14 @@ components: claimed_prizes_response: type: object required: - - data + - data properties: data: type: array items: - $ref: '#/components/schemas/claimed_prize' - description: List of claimed prizes for the wallet (action_data excluded + $ref: "#/components/schemas/claimed_prize" + description: + List of claimed prizes for the wallet (action_data excluded for security) undisbursed_challenges: type: object @@ -9329,16 +9490,16 @@ components: data: type: array items: - $ref: '#/components/schemas/undisbursed_challenge' + $ref: "#/components/schemas/undisbursed_challenge" pin_comment_request_body: type: object required: - - entityType - - entityId + - entityType + - entityId properties: entityType: allOf: - - $ref: '#/components/schemas/comment_entity_type' + - $ref: "#/components/schemas/comment_entity_type" example: Track entityId: type: integer @@ -9347,7 +9508,7 @@ components: claim_rewards_request_body: type: object required: - - userId + - userId properties: challengeId: type: string @@ -9363,13 +9524,13 @@ components: example: 7eP5n bulk_subscribers_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -9385,11 +9546,11 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user_subscribers' + $ref: "#/components/schemas/user_subscribers" track_comment_count_response: type: object properties: @@ -9399,16 +9560,16 @@ components: type: object properties: data: - $ref: '#/components/schemas/coin' + $ref: "#/components/schemas/coin" purchasers_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -9424,16 +9585,16 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" prize_claim_request_body: type: object required: - - signature - - wallet + - signature + - wallet properties: signature: type: string @@ -9446,9 +9607,9 @@ components: create_reward_code_request: type: object required: - - signature - - mint - - amount + - signature + - mint + - amount properties: signature: type: string @@ -9465,13 +9626,13 @@ components: example: 100 playlist_tracks_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -9487,17 +9648,17 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" prize_claim_response: type: object required: - - prize_id - - prize_name - - wallet + - prize_id + - prize_name + - wallet properties: prize_id: type: string @@ -9517,7 +9678,8 @@ components: example: coin_airdrop action_data: type: object - description: Prize-specific action data (e.g., redeem code/URL for coin + description: + Prize-specific action data (e.g., redeem code/URL for coin airdrops, download URL for downloads) additionalProperties: true example: @@ -9525,13 +9687,13 @@ components: url: /coins/YAK/redeem/aB3d5F trending_playlists_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -9547,17 +9709,17 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/playlist' + $ref: "#/components/schemas/playlist" create_track_request_body: type: object required: - - title - - genre - - track_cid + - title + - genre + - track_cid properties: track_id: type: string @@ -9568,7 +9730,7 @@ components: description: Track title example: My New Track genre: - $ref: '#/components/schemas/genre' + $ref: "#/components/schemas/genre" description: type: string nullable: true @@ -9577,7 +9739,7 @@ components: mood: nullable: true allOf: - - $ref: '#/components/schemas/mood' + - $ref: "#/components/schemas/mood" bpm: type: number nullable: true @@ -9644,23 +9806,29 @@ components: type: boolean nullable: true description: Whether streaming is restricted behind an access gate + access_authorities: + type: array + nullable: true + items: + type: string + description: Wallet addresses that can sign to authorize stream access (programmable distribution). When empty or omitted, the track is public and validator/creator nodes can serve it. stream_conditions: nullable: true allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" download_conditions: nullable: true allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" field_visibility: - $ref: '#/components/schemas/field_visibility' + $ref: "#/components/schemas/field_visibility" placement_hosts: type: string description: Placement hosts for the track stem_of: - $ref: '#/components/schemas/stem_parent' + $ref: "#/components/schemas/stem_parent" remix_of: - $ref: '#/components/schemas/remix_parent_write' + $ref: "#/components/schemas/remix_parent_write" ddex_app: type: string nullable: true @@ -9679,27 +9847,27 @@ components: type: array nullable: true items: - $ref: '#/components/schemas/ddex_resource_contributor' + $ref: "#/components/schemas/ddex_resource_contributor" description: DDEX resource contributors indirect_resource_contributors: type: array nullable: true items: - $ref: '#/components/schemas/ddex_resource_contributor' + $ref: "#/components/schemas/ddex_resource_contributor" description: DDEX indirect resource contributors rights_controller: nullable: true - $ref: '#/components/schemas/ddex_rights_controller' + $ref: "#/components/schemas/ddex_rights_controller" description: DDEX rights controller copyright_line: nullable: true allOf: - - $ref: '#/components/schemas/ddex_copyright' + - $ref: "#/components/schemas/ddex_copyright" description: DDEX copyright line producer_copyright_line: nullable: true allOf: - - $ref: '#/components/schemas/ddex_copyright' + - $ref: "#/components/schemas/ddex_copyright" description: DDEX producer copyright line parental_warning_type: type: string @@ -9729,17 +9897,17 @@ components: type: object properties: data: - $ref: '#/components/schemas/collectibles' + $ref: "#/components/schemas/collectibles" create_comment_request_body: type: object required: - - entityType - - entityId - - body + - entityType + - entityId + - body properties: entityType: allOf: - - $ref: '#/components/schemas/comment_entity_type' + - $ref: "#/components/schemas/comment_entity_type" example: Track entityId: type: integer @@ -9775,13 +9943,13 @@ components: data: type: array items: - $ref: '#/components/schemas/dashboard_wallet_user' + $ref: "#/components/schemas/dashboard_wallet_user" access_gate: oneOf: - - $ref: '#/components/schemas/tip_gate' - - $ref: '#/components/schemas/follow_gate' - - $ref: '#/components/schemas/purchase_gate' - - $ref: '#/components/schemas/token_gate' + - $ref: "#/components/schemas/tip_gate" + - $ref: "#/components/schemas/follow_gate" + - $ref: "#/components/schemas/purchase_gate" + - $ref: "#/components/schemas/token_gate" update_track_request_body: type: object description: Request body for updating track information. All fields are optional. @@ -9790,7 +9958,7 @@ components: type: string description: Track title genre: - $ref: '#/components/schemas/genre' + $ref: "#/components/schemas/genre" description: type: string nullable: true @@ -9799,7 +9967,7 @@ components: mood: nullable: true allOf: - - $ref: '#/components/schemas/mood' + - $ref: "#/components/schemas/mood" bpm: type: number nullable: true @@ -9865,23 +10033,29 @@ components: is_stream_gated: type: boolean description: Whether streaming is restricted behind an access gate + access_authorities: + type: array + nullable: true + items: + type: string + description: Wallet addresses that can sign to authorize stream access (programmable distribution). When empty or omitted, the track is public and validator/creator nodes can serve it. stream_conditions: nullable: true allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" download_conditions: nullable: true allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" field_visibility: - $ref: '#/components/schemas/field_visibility' + $ref: "#/components/schemas/field_visibility" placement_hosts: type: string description: Placement hosts for the track stem_of: - $ref: '#/components/schemas/stem_parent' + $ref: "#/components/schemas/stem_parent" remix_of: - $ref: '#/components/schemas/remix_parent_write' + $ref: "#/components/schemas/remix_parent_write" ddex_app: type: string nullable: true @@ -9896,16 +10070,16 @@ components: data: type: array items: - $ref: '#/components/schemas/authorized_app' + $ref: "#/components/schemas/authorized_app" reposts: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -9921,49 +10095,49 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/activity' + $ref: "#/components/schemas/activity" developer_apps_response: type: object properties: data: type: array items: - $ref: '#/components/schemas/developer_app' + $ref: "#/components/schemas/developer_app" playlist: required: - - access - - added_timestamps - - blocknumber - - created_at - - favorite_count - - followee_favorites - - followee_reposts - - has_current_user_reposted - - has_current_user_saved - - id - - is_album - - is_delete - - is_image_autogenerated - - is_private - - is_scheduled_release - - is_stream_gated - - permalink - - playlist_contents - - playlist_name - - repost_count - - total_play_count - - track_count - - updated_at - - user - - user_id + - access + - added_timestamps + - blocknumber + - created_at + - favorite_count + - followee_favorites + - followee_reposts + - has_current_user_reposted + - has_current_user_saved + - id + - is_album + - is_delete + - is_image_autogenerated + - is_private + - is_scheduled_release + - is_stream_gated + - permalink + - playlist_contents + - playlist_name + - repost_count + - total_play_count + - track_count + - updated_at + - user + - user_id type: object properties: artwork: - $ref: '#/components/schemas/playlist_artwork' + $ref: "#/components/schemas/playlist_artwork" description: type: string permalink: @@ -9979,7 +10153,7 @@ components: playlist_contents: type: array items: - $ref: '#/components/schemas/playlist_added_timestamp' + $ref: "#/components/schemas/playlist_added_timestamp" repost_count: type: integer favorite_count: @@ -9987,11 +10161,11 @@ components: total_play_count: type: integer user: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" ddex_app: type: string access: - $ref: '#/components/schemas/access' + $ref: "#/components/schemas/access" upc: type: string track_count: @@ -10003,11 +10177,11 @@ components: followee_reposts: type: array items: - $ref: '#/components/schemas/repost' + $ref: "#/components/schemas/repost" followee_favorites: type: array items: - $ref: '#/components/schemas/favorite' + $ref: "#/components/schemas/favorite" has_current_user_reposted: type: boolean has_current_user_saved: @@ -10022,26 +10196,26 @@ components: type: array description: DEPRECATED. Use playlist_contents instead. items: - $ref: '#/components/schemas/playlist_added_timestamp' + $ref: "#/components/schemas/playlist_added_timestamp" user_id: type: string tracks: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" cover_art: type: string cover_art_sizes: type: string cover_art_cids: - $ref: '#/components/schemas/playlist_artwork' + $ref: "#/components/schemas/playlist_artwork" is_stream_gated: type: boolean stream_conditions: type: object description: How to unlock stream access to the track allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" is_scheduled_release: type: boolean release_date: @@ -10066,13 +10240,13 @@ components: nullable: true track_comments_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10088,22 +10262,22 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/comment' + $ref: "#/components/schemas/comment" related: - $ref: '#/components/schemas/related' + $ref: "#/components/schemas/related" search_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10119,13 +10293,13 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: - $ref: '#/components/schemas/search_model' + $ref: "#/components/schemas/search_model" stem_parent: required: - - category - - parent_track_id + - category + - parent_track_id type: object properties: category: @@ -10136,11 +10310,11 @@ components: type: object description: A coin object required: - - mint - - ticker - - decimals - - name - - created_at + - mint + - ticker + - decimals + - name + - created_at properties: mint: type: string @@ -10210,29 +10384,30 @@ components: type: string format: date-time description: The date and time when the coin was created - example: '2024-01-15T10:30:00Z' + example: "2024-01-15T10:30:00Z" updated_at: type: string format: date-time description: The date and time when the coin was last updated - example: '2024-01-15T10:30:00Z' + example: "2024-01-15T10:30:00Z" owner_id: type: string description: The user ID of the coin owner example: 7eP5n escrow_recipient: type: string - description: The escrow recipient address for custom-created coins without + description: + The escrow recipient address for custom-created coins without DBCs example: DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 dynamicBondingCurve: - $ref: '#/components/schemas/dynamic_bonding_curve_insights' + $ref: "#/components/schemas/dynamic_bonding_curve_insights" artist_locker: - $ref: '#/components/schemas/artist_locker' + $ref: "#/components/schemas/artist_locker" artist_fees: - $ref: '#/components/schemas/artist_coin_fees' + $ref: "#/components/schemas/artist_coin_fees" reward_pool: - $ref: '#/components/schemas/reward_pool' + $ref: "#/components/schemas/reward_pool" price: type: number description: Current price in USD @@ -10329,13 +10504,13 @@ components: description: Claimable amount user_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10351,14 +10526,14 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" tip_gate: required: - - tip_user_id + - tip_user_id type: object properties: tip_user_id: @@ -10366,13 +10541,13 @@ components: description: Must tip the given user ID to unlock track_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10388,9 +10563,9 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" create_user_response: type: object properties: @@ -10410,7 +10585,7 @@ components: tracks_count_response: type: object required: - - data + - data properties: data: type: integer @@ -10422,11 +10597,11 @@ components: data: type: array items: - $ref: '#/components/schemas/event' + $ref: "#/components/schemas/event" version_metadata: required: - - service - - version + - service + - version type: object properties: service: @@ -10435,13 +10610,13 @@ components: type: string following_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10457,18 +10632,18 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" playlist_search_result: type: object properties: data: type: array items: - $ref: '#/components/schemas/playlist' + $ref: "#/components/schemas/playlist" tags_response: type: object properties: @@ -10478,28 +10653,28 @@ components: type: string track_activity: allOf: - - $ref: '#/components/schemas/activity' - - required: - - item - - item_type - type: object - properties: - item_type: - type: string - example: track - enum: - - track - item: - $ref: '#/components/schemas/track' + - $ref: "#/components/schemas/activity" + - required: + - item + - item_type + type: object + properties: + item_type: + type: string + example: track + enum: + - track + item: + $ref: "#/components/schemas/track" top_users_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10515,25 +10690,25 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" trending_ids_response: type: object properties: data: - $ref: '#/components/schemas/trending_times_ids' + $ref: "#/components/schemas/trending_times_ids" purchases_count_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10549,18 +10724,18 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: integer email_access_response: type: object properties: data: - $ref: '#/components/schemas/email_access' + $ref: "#/components/schemas/email_access" add_manager_request_body: type: object required: - - manager_user_id + - manager_user_id properties: manager_user_id: type: string @@ -10569,12 +10744,12 @@ components: type: object properties: data: - $ref: '#/components/schemas/attestation' + $ref: "#/components/schemas/attestation" user_coin_response: type: object properties: data: - $ref: '#/components/schemas/user_coin_with_accounts' + $ref: "#/components/schemas/user_coin_with_accounts" create_comment_response: type: object properties: @@ -10597,37 +10772,38 @@ components: properties: is_repost_of_repost: type: boolean - description: Set to true when reposting an item that was reposted (used + description: + Set to true when reposting an item that was reposted (used for notifications) coins_volume_leaders_response: type: object required: - - data + - data properties: data: type: array items: type: object required: - - address - - volume + - address + - volume properties: address: type: string volume: type: number user: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" dashboard_wallet_user: required: - - user - - wallet + - user + - wallet type: object properties: wallet: type: string user: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" write_response: type: object properties: @@ -10660,16 +10836,16 @@ components: type: type: string data: - $ref: '#/components/schemas/cid_data' + $ref: "#/components/schemas/cid_data" search_autocomplete_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10685,19 +10861,19 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: - $ref: '#/components/schemas/search_model' + $ref: "#/components/schemas/search_model" track_inspect: type: object properties: data: - $ref: '#/components/schemas/blob_info' + $ref: "#/components/schemas/blob_info" repost: required: - - repost_item_id - - repost_type - - user_id + - repost_item_id + - repost_type + - user_id type: object properties: repost_item_id: @@ -10712,42 +10888,42 @@ components: data: type: array items: - $ref: '#/components/schemas/comment' + $ref: "#/components/schemas/comment" user_ids_addresses_response: type: object properties: data: type: array items: - $ref: '#/components/schemas/user_id_address' + $ref: "#/components/schemas/user_id_address" access_info_response: type: object properties: data: - $ref: '#/components/schemas/track_access_info' + $ref: "#/components/schemas/track_access_info" user_account_response: type: object properties: data: - $ref: '#/components/schemas/account' + $ref: "#/components/schemas/account" balance_history_response: type: object required: - - data + - data properties: data: type: array items: - $ref: '#/components/schemas/balance_history_data_point' + $ref: "#/components/schemas/balance_history_data_point" stems_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10763,20 +10939,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/stem' + $ref: "#/components/schemas/stem" history_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10792,18 +10968,18 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/track_activity' + $ref: "#/components/schemas/track_activity" authorized_app: required: - - address - - grant_created_at - - grant_updated_at - - grantor_user_id - - name + - address + - grant_created_at + - grant_updated_at + - grantor_user_id + - name type: object properties: address: @@ -10822,29 +10998,30 @@ components: type: string purchase_gate: required: - - usdc_purchase + - usdc_purchase type: object properties: usdc_purchase: type: object - description: Must pay the total price and split to the given addresses to + description: + Must pay the total price and split to the given addresses to unlock allOf: - - $ref: '#/components/schemas/usdc_gate' + - $ref: "#/components/schemas/usdc_gate" purchase: required: - - access - - amount - - buyer_user_id - - content_id - - content_type - - created_at - - extra_amount - - seller_user_id - - signature - - slot - - splits - - updated_at + - access + - amount + - buyer_user_id + - content_id + - content_type + - created_at + - extra_amount + - seller_user_id + - signature + - slot + - splits + - updated_at type: object properties: slot: @@ -10872,18 +11049,18 @@ components: splits: type: array items: - $ref: '#/components/schemas/purchase_split' + $ref: "#/components/schemas/purchase_split" discriminator: propertyName: content_type playlists_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -10899,20 +11076,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/playlist_without_tracks' + $ref: "#/components/schemas/playlist_without_tracks" prizes_response: type: object required: - - data + - data properties: data: type: array items: - $ref: '#/components/schemas/prize_public' + $ref: "#/components/schemas/prize_public" description: List of active prizes available for claiming create_coin_response: type: object @@ -10920,12 +11097,12 @@ components: data: type: object required: - - mint - - ticker - - user_id - - decimals - - name - - created_at + - mint + - ticker + - user_id + - decimals + - name + - created_at properties: mint: type: string @@ -10979,7 +11156,7 @@ components: type: string format: date-time description: The date and time when the coin was created - example: '2024-01-15T10:30:00Z' + example: "2024-01-15T10:30:00Z" unclaimed_id_response: type: object properties: @@ -10987,13 +11164,13 @@ components: type: string tracks_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -11009,41 +11186,41 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" managed_users_response: type: object properties: data: type: array items: - $ref: '#/components/schemas/managed_user' + $ref: "#/components/schemas/managed_user" reactions: type: object properties: data: type: array items: - $ref: '#/components/schemas/reaction' + $ref: "#/components/schemas/reaction" user_search: type: object properties: data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" remixers_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -11059,20 +11236,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" purchasers_count_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -11088,7 +11265,7 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: integer create_developer_app_response: @@ -11102,7 +11279,8 @@ components: description: The private key for the developer app (for signing) bearer_token: type: string - description: The bearer token for API authentication (use in Authorization + description: + The bearer token for API authentication (use in Authorization header) transaction_hash: type: string @@ -11116,13 +11294,13 @@ components: description: The blockchain block number/height playlist_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -11138,24 +11316,24 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/playlist' + $ref: "#/components/schemas/playlist" coin_members_response: type: object required: - - data + - data properties: data: type: array items: - $ref: '#/components/schemas/coin_member' + $ref: "#/components/schemas/coin_member" access: required: - - download - - stream + - download + - stream type: object properties: stream: @@ -11164,56 +11342,56 @@ components: type: boolean search_model: required: - - albums - - playlists - - tracks - - users + - albums + - playlists + - tracks + - users type: object properties: users: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" followed_users: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" tracks: type: array items: - $ref: '#/components/schemas/search_track' + $ref: "#/components/schemas/search_track" saved_tracks: type: array items: - $ref: '#/components/schemas/search_track' + $ref: "#/components/schemas/search_track" playlists: type: array items: - $ref: '#/components/schemas/search_playlist' + $ref: "#/components/schemas/search_playlist" saved_playlists: type: array items: - $ref: '#/components/schemas/search_playlist' + $ref: "#/components/schemas/search_playlist" albums: type: array items: - $ref: '#/components/schemas/search_playlist' + $ref: "#/components/schemas/search_playlist" saved_albums: type: array items: - $ref: '#/components/schemas/search_playlist' + $ref: "#/components/schemas/search_playlist" track_inspect_list: type: object properties: data: type: array items: - $ref: '#/components/schemas/blob_info' + $ref: "#/components/schemas/blob_info" developer_app: required: - - address - - name - - user_id + - address + - name + - user_id type: object properties: address: @@ -11228,8 +11406,8 @@ components: type: string attestation: required: - - attestation - - owner_wallet + - attestation + - owner_wallet type: object properties: owner_wallet: @@ -11258,53 +11436,53 @@ components: remix_parent_write: type: object required: - - tracks + - tracks properties: tracks: type: array items: - $ref: '#/components/schemas/track_element_write' + $ref: "#/components/schemas/track_element_write" user: required: - - album_count - - allow_ai_attribution - - artist_coin_badge - - associated_sol_wallets_balance - - associated_wallets_balance - - balance - - blocknumber - - created_at - - current_user_followee_follow_count - - does_current_user_follow - - does_current_user_subscribe - - does_follow_current_user - - erc_wallet - - followee_count - - follower_count - - handle - - handle_lc - - has_collectibles - - id - - is_available - - is_deactivated - - is_storage_v2 - - is_verified - - name - - playlist_count - - repost_count - - spl_wallet - - spl_usdc_wallet - - supporter_count - - supporting_count - - total_audio_balance - - total_balance - - track_count - - updated_at - - verified_with_instagram - - verified_with_tiktok - - verified_with_twitter - - wallet - - waudio_balance + - album_count + - allow_ai_attribution + - artist_coin_badge + - associated_sol_wallets_balance + - associated_wallets_balance + - balance + - blocknumber + - created_at + - current_user_followee_follow_count + - does_current_user_follow + - does_current_user_subscribe + - does_follow_current_user + - erc_wallet + - followee_count + - follower_count + - handle + - handle_lc + - has_collectibles + - id + - is_available + - is_deactivated + - is_storage_v2 + - is_verified + - name + - playlist_count + - repost_count + - spl_wallet + - spl_usdc_wallet + - supporter_count + - supporting_count + - total_audio_balance + - total_balance + - track_count + - updated_at + - verified_with_instagram + - verified_with_tiktok + - verified_with_twitter + - wallet + - waudio_balance type: object properties: album_count: @@ -11328,7 +11506,7 @@ components: bio: type: string cover_photo: - $ref: '#/components/schemas/cover_photo' + $ref: "#/components/schemas/cover_photo" followee_count: type: integer follower_count: @@ -11362,7 +11540,7 @@ components: playlist_count: type: integer profile_picture: - $ref: '#/components/schemas/profile_picture' + $ref: "#/components/schemas/profile_picture" repost_count: type: integer track_count: @@ -11421,32 +11599,32 @@ components: cover_photo_sizes: type: string cover_photo_cids: - $ref: '#/components/schemas/cover_photo' + $ref: "#/components/schemas/cover_photo" cover_photo_legacy: type: string profile_picture_sizes: type: string profile_picture_cids: - $ref: '#/components/schemas/profile_picture' + $ref: "#/components/schemas/profile_picture" profile_picture_legacy: type: string has_collectibles: type: boolean playlist_library: - $ref: '#/components/schemas/playlist_library' + $ref: "#/components/schemas/playlist_library" allow_ai_attribution: type: boolean profile_type: type: string playlist_updates_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -11462,16 +11640,17 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: - $ref: '#/components/schemas/playlist_updates' + $ref: "#/components/schemas/playlist_updates" update_user_request_body: type: object description: Request body for updating user profile. All fields are optional. properties: handle: type: string - description: User handle. Can only be set if the user does not already have + description: + User handle. Can only be set if the user does not already have a handle. name: type: string @@ -11515,7 +11694,7 @@ components: type: string nullable: true enum: - - label + - label description: Type of profile (e.g., 'label' for record labels) is_deactivated: type: boolean @@ -11534,7 +11713,7 @@ components: type: string description: Coin flair mint address playlist_library: - $ref: '#/components/schemas/user_playlist_library' + $ref: "#/components/schemas/user_playlist_library" events: type: object description: User events for tracking referrals and mobile users @@ -11549,13 +11728,13 @@ components: update_comment_request_body: type: object required: - - entityType - - entityId - - body + - entityType + - entityId + - body properties: entityType: allOf: - - $ref: '#/components/schemas/comment_entity_type' + - $ref: "#/components/schemas/comment_entity_type" example: Track entityId: type: integer @@ -11578,29 +11757,29 @@ components: users: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" tracks: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" playlists: type: array items: - $ref: '#/components/schemas/playlist' + $ref: "#/components/schemas/playlist" coin_insights_response: type: object properties: data: - $ref: '#/components/schemas/coin_insights' + $ref: "#/components/schemas/coin_insights" collection_library_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -11616,20 +11795,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/collection_activity_without_tracks' + $ref: "#/components/schemas/collection_activity_without_tracks" track_favorites_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -11645,16 +11824,16 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" ddex_resource_contributor: type: object required: - - name - - roles + - name + - roles properties: name: type: string @@ -11673,13 +11852,13 @@ components: description: Sequence number for ordering get_supporter: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -11695,13 +11874,13 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: - $ref: '#/components/schemas/supporter' + $ref: "#/components/schemas/supporter" playlist_added_timestamp: required: - - timestamp - - track_id + - timestamp + - track_id type: object properties: metadata_timestamp: @@ -11714,8 +11893,8 @@ components: balance_history_data_point: type: object required: - - timestamp - - balance_usd + - timestamp + - balance_usd properties: timestamp: type: integer @@ -11729,9 +11908,9 @@ components: example: 1234.56 remixed_track_aggregate: required: - - remix_count - - title - - track_id + - remix_count + - title + - track_id type: object properties: track_id: @@ -11777,10 +11956,10 @@ components: create_reward_code_response: type: object required: - - code - - mint - - reward_address - - amount + - code + - mint + - reward_address + - amount properties: code: type: string @@ -11804,16 +11983,16 @@ components: data: type: array items: - $ref: '#/components/schemas/sales_aggregate' + $ref: "#/components/schemas/sales_aggregate" related_artist_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -11829,19 +12008,19 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" field_visibility: required: - - genre - - mood - - play_count - - remixes - - share - - tags + - genre + - mood + - play_count + - remixes + - share + - tags type: object properties: mood: @@ -11859,12 +12038,12 @@ components: user_coin_with_accounts: type: object required: - - mint - - ticker - - decimals - - balance - - balance_usd - - accounts + - mint + - ticker + - decimals + - balance + - balance_usd + - accounts properties: mint: type: string @@ -11894,22 +12073,22 @@ components: accounts: type: array items: - $ref: '#/components/schemas/user_coin_account' + $ref: "#/components/schemas/user_coin_account" managers_response: type: object properties: data: type: array items: - $ref: '#/components/schemas/user_manager' + $ref: "#/components/schemas/user_manager" event: required: - - created_at - - event_data - - event_id - - event_type - - updated_at - - user_id + - created_at + - event_data + - event_id + - event_type + - updated_at + - user_id type: object properties: event_id: @@ -11918,18 +12097,18 @@ components: type: string example: remix_contest enum: - - remix_contest - - live_event - - new_release + - remix_contest + - live_event + - new_release user_id: type: string entity_type: type: string example: track enum: - - track - - collection - - user + - track + - collection + - user entity_id: type: string end_date: @@ -11946,8 +12125,8 @@ components: create_user_request_body: type: object required: - - handle - - wallet + - handle + - wallet properties: user_id: type: string @@ -12004,7 +12183,7 @@ components: type: string nullable: true enum: - - label + - label description: Type of profile (e.g., 'label' for record labels) allow_ai_attribution: type: boolean @@ -12013,7 +12192,7 @@ components: type: string description: Solana USDC payout wallet address playlist_library: - $ref: '#/components/schemas/user_playlist_library' + $ref: "#/components/schemas/user_playlist_library" events: type: object description: User events for tracking referrals and mobile users @@ -12028,8 +12207,8 @@ components: coin_member: type: object required: - - balance - - user_id + - balance + - user_id properties: balance: type: integer @@ -12042,7 +12221,7 @@ components: register_api_key_request_body: type: object required: - - api_secret + - api_secret properties: api_secret: type: string @@ -12056,20 +12235,20 @@ components: deactivate_access_key_request_body: type: object required: - - api_access_key + - api_access_key properties: api_access_key: type: string description: The bearer token (API access key) to deactivate get_supporting: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12085,23 +12264,23 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: - $ref: '#/components/schemas/supporting' + $ref: "#/components/schemas/supporting" sales_json_response: type: object properties: data: - $ref: '#/components/schemas/sales_json_content' + $ref: "#/components/schemas/sales_json_content" react_comment_request_body: type: object required: - - entityType - - entityId + - entityType + - entityId properties: entityType: allOf: - - $ref: '#/components/schemas/comment_entity_type' + - $ref: "#/components/schemas/comment_entity_type" example: Track entityId: type: integer @@ -12109,13 +12288,13 @@ components: example: 12345 comment_replies_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12131,22 +12310,22 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/reply_comment' + $ref: "#/components/schemas/reply_comment" related: - $ref: '#/components/schemas/related' + $ref: "#/components/schemas/related" transaction_history_count_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12162,20 +12341,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: integer undisbursed_challenge: required: - - amount - - challenge_id - - completed_at - - completed_blocknumber - - created_at - - handle - - specifier - - user_id - - wallet + - amount + - challenge_id + - completed_at + - completed_blocknumber + - created_at + - handle + - specifier + - user_id + - wallet type: object properties: challenge_id: @@ -12218,23 +12397,23 @@ components: type: object properties: data: - $ref: '#/components/schemas/comment_notification_setting' + $ref: "#/components/schemas/comment_notification_setting" verify_token: type: object properties: data: - $ref: '#/components/schemas/decoded_user_token' + $ref: "#/components/schemas/decoded_user_token" claimed_prize: type: object required: - - id - - wallet - - signature - - mint - - amount - - prize_id - - prize_name - - created_at + - id + - wallet + - signature + - mint + - amount + - prize_id + - prize_name + - created_at properties: id: type: integer @@ -12254,7 +12433,8 @@ components: example: ZDaUDL4XFdEct7UgeztrFQAptsvh4ZdhyZDZ1RpxYAK amount: type: integer - description: The amount paid to claim the prize (in smallest unit, e.g., + description: + The amount paid to claim the prize (in smallest unit, e.g., lamports) example: 2000000000 prize_id: @@ -12273,7 +12453,7 @@ components: type: string format: date-time description: When the prize was claimed - example: '2024-01-15T10:30:00Z' + example: "2024-01-15T10:30:00Z" collectibles: type: object properties: @@ -12284,9 +12464,9 @@ components: prize_public: type: object required: - - prize_id - - name - - weight + - prize_id + - name + - weight properties: prize_id: type: string @@ -12313,8 +12493,8 @@ components: amount: 1000000000 purchase_split: required: - - amount - - payout_wallet + - amount + - payout_wallet type: object properties: user_id: @@ -12325,13 +12505,13 @@ components: type: string remixers_count_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12347,21 +12527,21 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: integer claim_rewards_response: type: object required: - - data + - data properties: data: type: array items: type: object required: - - challengeId - - specifier + - challengeId + - specifier properties: challengeId: type: string @@ -12374,14 +12554,14 @@ components: amount: type: string description: The reward amount - example: '1000000000' + example: "1000000000" signatures: type: array items: type: string description: Transaction signatures example: - - 5j7s1QjmRKFuDbCWMRVRNibSV2VAAEcNKP6HWU7GwPdXkBZvhz8n4vQl7bBq8tN4Rz9x1Kj3mP5wQ8rT2Y6zA + - 5j7s1QjmRKFuDbCWMRVRNibSV2VAAEcNKP6HWU7GwPdXkBZvhz8n4vQl7bBq8tN4Rz9x1Kj3mP5wQ8rT2Y6zA error: type: string description: Error message if claim failed @@ -12389,7 +12569,7 @@ components: update_developer_app_request_body: type: object required: - - name + - name properties: name: type: string @@ -12402,35 +12582,35 @@ components: description: App logo/image URL (camelCase) playlist_without_tracks: required: - - access - - added_timestamps - - blocknumber - - created_at - - favorite_count - - followee_favorites - - followee_reposts - - has_current_user_reposted - - has_current_user_saved - - id - - is_album - - is_delete - - is_image_autogenerated - - is_private - - is_scheduled_release - - is_stream_gated - - permalink - - playlist_contents - - playlist_name - - repost_count - - total_play_count - - track_count - - updated_at - - user - - user_id + - access + - added_timestamps + - blocknumber + - created_at + - favorite_count + - followee_favorites + - followee_reposts + - has_current_user_reposted + - has_current_user_saved + - id + - is_album + - is_delete + - is_image_autogenerated + - is_private + - is_scheduled_release + - is_stream_gated + - permalink + - playlist_contents + - playlist_name + - repost_count + - total_play_count + - track_count + - updated_at + - user + - user_id type: object properties: artwork: - $ref: '#/components/schemas/playlist_artwork' + $ref: "#/components/schemas/playlist_artwork" description: type: string permalink: @@ -12446,7 +12626,7 @@ components: playlist_contents: type: array items: - $ref: '#/components/schemas/playlist_added_timestamp' + $ref: "#/components/schemas/playlist_added_timestamp" repost_count: type: integer favorite_count: @@ -12454,11 +12634,11 @@ components: total_play_count: type: integer user: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" ddex_app: type: string access: - $ref: '#/components/schemas/access' + $ref: "#/components/schemas/access" upc: type: string track_count: @@ -12470,11 +12650,11 @@ components: followee_reposts: type: array items: - $ref: '#/components/schemas/repost' + $ref: "#/components/schemas/repost" followee_favorites: type: array items: - $ref: '#/components/schemas/favorite' + $ref: "#/components/schemas/favorite" has_current_user_reposted: type: boolean has_current_user_saved: @@ -12489,26 +12669,26 @@ components: type: array description: DEPRECATED. Use playlist_contents instead. items: - $ref: '#/components/schemas/playlist_added_timestamp' + $ref: "#/components/schemas/playlist_added_timestamp" user_id: type: string tracks: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" cover_art: type: string cover_art_sizes: type: string cover_art_cids: - $ref: '#/components/schemas/playlist_artwork' + $ref: "#/components/schemas/playlist_artwork" is_stream_gated: type: boolean stream_conditions: type: object description: How to unlock stream access to the track allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" is_scheduled_release: type: boolean release_date: @@ -12532,13 +12712,13 @@ components: nullable: true get_tips_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12554,27 +12734,27 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/tip' + $ref: "#/components/schemas/tip" user_coins_response: type: object required: - - data + - data properties: data: type: array items: - $ref: '#/components/schemas/user_coin' + $ref: "#/components/schemas/user_coin" create_coin_request: type: object required: - - mint - - ticker - - decimals - - name + - mint + - ticker + - decimals + - name properties: mint: type: string @@ -12633,16 +12813,16 @@ components: data: type: array items: - $ref: '#/components/schemas/favorite' + $ref: "#/components/schemas/favorite" remixables_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12658,11 +12838,11 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" reward_code_error_response: type: object properties: @@ -12671,20 +12851,21 @@ components: description: Error message indicating why the code cannot be redeemed example: used enum: - - used - - invalid + - used + - invalid create_grant_request_body: type: object required: - - app_api_key + - app_api_key properties: app_api_key: type: string - description: The developer app address (API key) to grant authorization + description: + The developer app address (API key) to grant authorization to follow_gate: required: - - follow_user_id + - follow_user_id type: object properties: follow_user_id: @@ -12692,7 +12873,7 @@ components: description: Must follow the given user ID to unlock user_subscribers: required: - - user_id + - user_id type: object properties: user_id: @@ -12709,13 +12890,13 @@ components: description: Whether the deactivation was successful user_comments_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12731,97 +12912,98 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/comment' + $ref: "#/components/schemas/comment" related: - $ref: '#/components/schemas/related' + $ref: "#/components/schemas/related" coin_members_count_response: type: object required: - - data + - data properties: data: type: integer - description: The total number of users with a non-zero balance of the specific + description: + The total number of users with a non-zero balance of the specific coin example: 42 user_manager: required: - - grant - - manager + - grant + - manager type: object properties: manager: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" grant: - $ref: '#/components/schemas/grant' + $ref: "#/components/schemas/grant" genre: type: string description: Music genre enum: - - Electronic - - Rock - - Metal - - Alternative - - Hip-Hop/Rap - - Experimental - - Punk - - Folk - - Pop - - Ambient - - Soundtrack - - World - - Jazz - - Acoustic - - Funk - - R&B/Soul - - Devotional - - Classical - - Reggae - - Podcasts - - Country - - Spoken Word - - Comedy - - Blues - - Kids - - Audiobooks - - Latin - - Lo-Fi - - Hyperpop - - Dancehall - - Techno - - Trap - - House - - Tech House - - Deep House - - Disco - - Electro - - Jungle - - Progressive House - - Hardstyle - - Glitch Hop - - Trance - - Future Bass - - Future House - - Tropical House - - Downtempo - - Drum & Bass - - Dubstep - - Jersey Club - - Vaporwave - - Moombahton + - Electronic + - Rock + - Metal + - Alternative + - Hip-Hop/Rap + - Experimental + - Punk + - Folk + - Pop + - Ambient + - Soundtrack + - World + - Jazz + - Acoustic + - Funk + - R&B/Soul + - Devotional + - Classical + - Reggae + - Podcasts + - Country + - Spoken Word + - Comedy + - Blues + - Kids + - Audiobooks + - Latin + - Lo-Fi + - Hyperpop + - Dancehall + - Techno + - Trap + - House + - Tech House + - Deep House + - Disco + - Electro + - Jungle + - Progressive House + - Hardstyle + - Glitch Hop + - Trance + - Future Bass + - Future House + - Tropical House + - Downtempo + - Drum & Bass + - Dubstep + - Jersey Club + - Vaporwave + - Moombahton albums_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12837,17 +13019,17 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/playlist_without_tracks' + $ref: "#/components/schemas/playlist_without_tracks" favorite: required: - - created_at - - favorite_item_id - - favorite_type - - user_id + - created_at + - favorite_item_id + - favorite_type + - user_id type: object properties: favorite_item_id: @@ -12861,20 +13043,20 @@ components: approve_grant_request_body: type: object required: - - grantor_user_id + - grantor_user_id properties: grantor_user_id: type: string description: The user ID of the child user who proposed the manager (grantor) user_feed_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12890,20 +13072,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user_feed_item' + $ref: "#/components/schemas/user_feed_item" remixing_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12919,20 +13101,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" track_reposts_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12948,20 +13130,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" top_genre_users_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -12977,19 +13159,19 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" grant: required: - - created_at - - grantee_address - - is_approved - - is_revoked - - updated_at - - user_id + - created_at + - grantee_address + - is_approved + - is_revoked + - updated_at + - user_id type: object properties: grantee_address: @@ -13006,13 +13188,13 @@ components: type: string mutual_followers_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -13028,15 +13210,15 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" redeem_amount_response: type: object required: - - amount + - amount properties: amount: type: integer @@ -13045,7 +13227,7 @@ components: create_developer_app_request_body: type: object required: - - name + - name properties: name: type: string @@ -13060,12 +13242,12 @@ components: coins_response: type: object required: - - data + - data properties: data: type: array items: - $ref: '#/components/schemas/coin' + $ref: "#/components/schemas/coin" update_coin_response: type: object properties: @@ -13091,13 +13273,13 @@ components: description: The ID of the created track get_supporters: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -13113,15 +13295,15 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/supporter' + $ref: "#/components/schemas/supporter" blob_info: required: - - content_type - - size + - content_type + - size type: object properties: size: @@ -13131,8 +13313,8 @@ components: reward_code_response: type: object required: - - code - - amount + - code + - amount properties: code: type: string @@ -13144,7 +13326,8 @@ components: example: 100 update_playlist_request_body: type: object - description: Request body for updating playlist information. All fields are + description: + Request body for updating playlist information. All fields are optional. properties: playlist_name: @@ -13162,10 +13345,10 @@ components: type: boolean description: Whether this is an album genre: - $ref: '#/components/schemas/genre' + $ref: "#/components/schemas/genre" mood: allOf: - - $ref: '#/components/schemas/mood' + - $ref: "#/components/schemas/mood" tags: type: string description: Comma-separated tags @@ -13186,7 +13369,7 @@ components: type: array description: Array of track IDs to include in the playlist items: - $ref: '#/components/schemas/playlist_added_timestamp' + $ref: "#/components/schemas/playlist_added_timestamp" is_stream_gated: type: boolean nullable: true @@ -13198,7 +13381,7 @@ components: stream_conditions: nullable: true allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" ddex_app: type: string description: DDEX application identifier @@ -13212,17 +13395,17 @@ components: type: array nullable: true items: - $ref: '#/components/schemas/ddex_resource_contributor' + $ref: "#/components/schemas/ddex_resource_contributor" description: DDEX resource contributors / artists copyright_line: nullable: true allOf: - - $ref: '#/components/schemas/ddex_copyright' + - $ref: "#/components/schemas/ddex_copyright" description: DDEX copyright line producer_copyright_line: nullable: true allOf: - - $ref: '#/components/schemas/ddex_copyright' + - $ref: "#/components/schemas/ddex_copyright" description: DDEX producer copyright line parental_warning_type: type: string @@ -13234,13 +13417,13 @@ components: description: Whether the image is autogenerated tracks: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -13256,73 +13439,73 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" developer_app_response: type: object properties: data: - $ref: '#/components/schemas/developer_app' + $ref: "#/components/schemas/developer_app" remixes_response: type: object properties: data: type: object required: - - count + - count properties: count: type: integer tracks: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" track: required: - - access - - artwork - - blocknumber - - comment_count - - cover_art_sizes - - created_at - - download - - duration - - favorite_count - - field_visibility - - followee_favorites - - followee_reposts - - genre - - has_current_user_reposted - - has_current_user_saved - - id - - is_available - - is_delete - - is_download_gated - - is_downloadable - - is_original_available - - is_owned_by_user - - is_scheduled_release - - is_stream_gated - - is_unlisted - - permalink - - play_count - - preview - - remix_of - - repost_count - - route_id - - stream - - title - - track_segments - - updated_at - - user - - user_id + - access + - artwork + - blocknumber + - comment_count + - cover_art_sizes + - created_at + - download + - duration + - favorite_count + - field_visibility + - followee_favorites + - followee_reposts + - genre + - has_current_user_reposted + - has_current_user_saved + - id + - is_available + - is_delete + - is_download_gated + - is_downloadable + - is_original_available + - is_owned_by_user + - is_scheduled_release + - is_stream_gated + - is_unlisted + - permalink + - play_count + - preview + - remix_of + - repost_count + - route_id + - stream + - title + - track_segments + - updated_at + - user + - user_id type: object properties: artwork: - $ref: '#/components/schemas/track_artwork' + $ref: "#/components/schemas/track_artwork" description: type: string genre: @@ -13345,7 +13528,7 @@ components: type: string format: date remix_of: - $ref: '#/components/schemas/remix_parent' + $ref: "#/components/schemas/remix_parent" repost_count: type: integer favorite_count: @@ -13357,7 +13540,7 @@ components: title: type: string user: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" duration: type: integer is_downloadable: @@ -13377,12 +13560,12 @@ components: pinned_comment_id: type: integer album_backlink: - $ref: '#/components/schemas/album_backlink' + $ref: "#/components/schemas/album_backlink" access: type: object description: Describes what access the given user has allOf: - - $ref: '#/components/schemas/access' + - $ref: "#/components/schemas/access" blocknumber: type: integer description: The blocknumber this track was last updated @@ -13391,7 +13574,7 @@ components: cover_art_sizes: type: string cover_art_cids: - $ref: '#/components/schemas/cover_art' + $ref: "#/components/schemas/cover_art" created_at: type: string credits_splits: @@ -13403,11 +13586,11 @@ components: iswc: type: string field_visibility: - $ref: '#/components/schemas/field_visibility' + $ref: "#/components/schemas/field_visibility" followee_reposts: type: array items: - $ref: '#/components/schemas/repost' + $ref: "#/components/schemas/repost" has_current_user_reposted: type: boolean is_scheduled_release: @@ -13419,15 +13602,15 @@ components: followee_favorites: type: array items: - $ref: '#/components/schemas/favorite' + $ref: "#/components/schemas/favorite" route_id: type: string stem_of: - $ref: '#/components/schemas/stem_parent' + $ref: "#/components/schemas/stem_parent" track_segments: type: array items: - $ref: '#/components/schemas/track_segment' + $ref: "#/components/schemas/track_segment" updated_at: type: string user_id: @@ -13472,44 +13655,46 @@ components: type: array nullable: true items: - $ref: '#/components/schemas/ddex_resource_contributor' + $ref: "#/components/schemas/ddex_resource_contributor" indirect_resource_contributors: type: array nullable: true items: - $ref: '#/components/schemas/ddex_resource_contributor' + $ref: "#/components/schemas/ddex_resource_contributor" rights_controller: nullable: true - $ref: '#/components/schemas/ddex_rights_controller' + $ref: "#/components/schemas/ddex_rights_controller" copyright_line: nullable: true allOf: - - $ref: '#/components/schemas/ddex_copyright' + - $ref: "#/components/schemas/ddex_copyright" producer_copyright_line: nullable: true allOf: - - $ref: '#/components/schemas/ddex_copyright' + - $ref: "#/components/schemas/ddex_copyright" parental_warning_type: type: string nullable: true is_stream_gated: type: boolean - description: Whether or not the owner has restricted streaming behind an + description: + Whether or not the owner has restricted streaming behind an access gate stream_conditions: type: object description: How to unlock stream access to the track allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" is_download_gated: type: boolean - description: Whether or not the owner has restricted downloading behind + description: + Whether or not the owner has restricted downloading behind an access gate download_conditions: type: object description: How to unlock the track download allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" cover_original_song_title: type: string cover_original_artist: @@ -13518,27 +13703,27 @@ components: type: boolean description: Indicates whether the track is owned by the user for MRI sake stream: - $ref: '#/components/schemas/url_with_mirrors' + $ref: "#/components/schemas/url_with_mirrors" download: - $ref: '#/components/schemas/url_with_mirrors' + $ref: "#/components/schemas/url_with_mirrors" preview: - $ref: '#/components/schemas/url_with_mirrors' + $ref: "#/components/schemas/url_with_mirrors" stream_url_response: required: - - data + - data type: object properties: data: type: string followers_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -13554,20 +13739,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" get_supported_users: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -13583,20 +13768,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/supporting' + $ref: "#/components/schemas/supporting" notifications_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -13612,23 +13797,23 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: - $ref: '#/components/schemas/notifications' + $ref: "#/components/schemas/notifications" connected_wallets_response: type: object properties: data: - $ref: '#/components/schemas/connected_wallets' + $ref: "#/components/schemas/connected_wallets" best_selling_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -13644,34 +13829,34 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/best_selling_item' + $ref: "#/components/schemas/best_selling_item" related: - $ref: '#/components/schemas/related' + $ref: "#/components/schemas/related" track_search: type: object properties: data: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" user_track_listen_counts_response: type: object properties: data: - $ref: '#/components/schemas/wild_month_model' + $ref: "#/components/schemas/wild_month_model" subscribers_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -13687,20 +13872,20 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" transaction_history_response: required: - - latest_chain_block - - latest_chain_slot_plays - - latest_indexed_block - - latest_indexed_slot_plays - - signature - - timestamp - - version + - latest_chain_block + - latest_chain_slot_plays + - latest_indexed_block + - latest_indexed_slot_plays + - signature + - timestamp + - version type: object properties: latest_chain_block: @@ -13716,50 +13901,50 @@ components: timestamp: type: string version: - $ref: '#/components/schemas/version_metadata' + $ref: "#/components/schemas/version_metadata" data: type: array items: - $ref: '#/components/schemas/transaction_details' + $ref: "#/components/schemas/transaction_details" mood: type: string description: Music mood enum: - - Peaceful - - Romantic - - Sentimental - - Tender - - Easygoing - - Yearning - - Sophisticated - - Sensual - - Cool - - Gritty - - Melancholy - - Serious - - Brooding - - Fiery - - Defiant - - Aggressive - - Rowdy - - Excited - - Energizing - - Empowering - - Stirring - - Upbeat - - Other + - Peaceful + - Romantic + - Sentimental + - Tender + - Easygoing + - Yearning + - Sophisticated + - Sensual + - Cool + - Gritty + - Melancholy + - Serious + - Brooding + - Fiery + - Defiant + - Aggressive + - Rowdy + - Excited + - Energizing + - Empowering + - Stirring + - Upbeat + - Other get_challenges: type: object properties: data: type: array items: - $ref: '#/components/schemas/challenge_response' + $ref: "#/components/schemas/challenge_response" sales_aggregate: required: - - content_id - - content_type - - purchase_count + - content_id + - content_type + - purchase_count type: object properties: content_type: @@ -13770,8 +13955,8 @@ components: type: integer connected_wallets: required: - - erc_wallets - - spl_wallets + - erc_wallets + - spl_wallets type: object properties: erc_wallets: @@ -13786,39 +13971,39 @@ components: type: string description: Type of entity that can be commented on enum: - - Track + - Track top_listener: type: object properties: data: type: array items: - $ref: '#/components/schemas/top_listener' + $ref: "#/components/schemas/top_listener" collection_activity_without_tracks: allOf: - - $ref: '#/components/schemas/activity' - - required: - - item - - item_type - type: object - properties: - item_type: - type: string - example: playlist - enum: - - playlist - item: - $ref: '#/components/schemas/playlist_without_tracks' + - $ref: "#/components/schemas/activity" + - required: + - item + - item_type + type: object + properties: + item_type: + type: string + example: playlist + enum: + - playlist + item: + $ref: "#/components/schemas/playlist_without_tracks" comment: required: - - created_at - - entity_id - - entity_type - - id - - is_edited - - message - - react_count - - reply_count + - created_at + - entity_id + - entity_type + - id + - is_edited + - message + - react_count + - reply_count type: object properties: id: @@ -13826,7 +14011,7 @@ components: entity_id: type: string entity_type: - $ref: '#/components/schemas/comment_entity_type' + $ref: "#/components/schemas/comment_entity_type" user_id: type: string message: @@ -13834,7 +14019,7 @@ components: mentions: type: array items: - $ref: '#/components/schemas/comment_mention' + $ref: "#/components/schemas/comment_mention" track_timestamp_s: type: integer react_count: @@ -13858,15 +14043,15 @@ components: replies: type: array items: - $ref: '#/components/schemas/reply_comment' + $ref: "#/components/schemas/reply_comment" parent_comment_id: type: integer reaction: required: - - reacted_to - - reaction_type - - reaction_value - - sender_user_id + - reacted_to + - reaction_type + - reaction_value + - sender_user_id type: object properties: reaction_value: @@ -13879,13 +14064,13 @@ components: type: string stem: required: - - blocknumber - - category - - cid - - id - - orig_filename - - parent_id - - user_id + - blocknumber + - category + - cid + - id + - orig_filename + - parent_id + - user_id type: object properties: id: @@ -13905,8 +14090,8 @@ components: user_id_address: type: object required: - - user_id - - address + - user_id + - address properties: user_id: type: string @@ -13914,9 +14099,9 @@ components: type: string album_backlink: required: - - permalink - - playlist_id - - playlist_name + - permalink + - playlist_id + - playlist_name type: object properties: playlist_id: @@ -13927,15 +14112,15 @@ components: type: string challenge_response: required: - - amount - - challenge_id - - challenge_type - - disbursed_amount - - is_active - - is_complete - - is_disbursed - - metadata - - user_id + - amount + - challenge_id + - challenge_type + - disbursed_amount + - is_active + - is_complete + - is_disbursed + - metadata + - user_id type: object properties: challenge_id: @@ -13967,14 +14152,14 @@ components: properties: {} email_access: required: - - created_at - - email_owner_user_id - - encrypted_key - - grantor_user_id - - id - - is_initial - - receiving_user_id - - updated_at + - created_at + - email_owner_user_id + - encrypted_key + - grantor_user_id + - id + - is_initial + - receiving_user_id + - updated_at type: object properties: id: @@ -13995,15 +14180,15 @@ components: type: string track_access_info: required: - - blocknumber - - user_id + - blocknumber + - user_id type: object properties: access: type: object description: Describes what access the given user has allOf: - - $ref: '#/components/schemas/access' + - $ref: "#/components/schemas/access" user_id: type: string description: The user ID of the owner of this track @@ -14012,28 +14197,30 @@ components: description: The blocknumber this track was last updated is_stream_gated: type: boolean - description: Whether or not the owner has restricted streaming behind an + description: + Whether or not the owner has restricted streaming behind an access gate stream_conditions: type: object description: How to unlock stream access to the track allOf: - - $ref: '#/components/schemas/extended_access_gate' + - $ref: "#/components/schemas/extended_access_gate" is_download_gated: type: boolean - description: Whether or not the owner has restricted downloading behind + description: + Whether or not the owner has restricted downloading behind an access gate download_conditions: type: object description: How to unlock the track download allOf: - - $ref: '#/components/schemas/extended_access_gate' + - $ref: "#/components/schemas/extended_access_gate" activity: required: - - class - - item - - item_type - - timestamp + - class + - item + - item_type + - timestamp type: object properties: timestamp: @@ -14042,8 +14229,8 @@ components: type: string example: track enum: - - track - - playlist + - track + - playlist item: type: object properties: {} @@ -14053,14 +14240,14 @@ components: propertyName: class token_gate: required: - - token_gate + - token_gate type: object properties: token_gate: type: object description: Must hold an NFT of the given collection to unlock allOf: - - $ref: '#/components/schemas/extended_token_gate' + - $ref: "#/components/schemas/extended_token_gate" cover_photo: type: object properties: @@ -14074,14 +14261,14 @@ components: type: string nft_gate: required: - - nft_collection + - nft_collection type: object properties: nft_collection: type: object description: Must hold an NFT of the given collection to unlock allOf: - - $ref: '#/components/schemas/nft_collection' + - $ref: "#/components/schemas/nft_collection" cid_data: type: object properties: @@ -14100,61 +14287,61 @@ components: week: type: array items: - $ref: '#/components/schemas/track_id' + $ref: "#/components/schemas/track_id" month: type: array items: - $ref: '#/components/schemas/track_id' + $ref: "#/components/schemas/track_id" year: type: array items: - $ref: '#/components/schemas/track_id' + $ref: "#/components/schemas/track_id" account: required: - - playlists - - track_save_count - - user + - playlists + - track_save_count + - user type: object properties: user: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" playlists: type: array items: - $ref: '#/components/schemas/account_collection' + $ref: "#/components/schemas/account_collection" playlist_library: - $ref: '#/components/schemas/playlist_library' + $ref: "#/components/schemas/playlist_library" track_save_count: type: integer search_playlist: required: - - access - - added_timestamps - - blocknumber - - created_at - - favorite_count - - has_current_user_reposted - - has_current_user_saved - - id - - is_album - - is_delete - - is_image_autogenerated - - is_private - - is_scheduled_release - - is_stream_gated - - permalink - - playlist_contents - - playlist_name - - repost_count - - total_play_count - - track_count - - updated_at - - user - - user_id + - access + - added_timestamps + - blocknumber + - created_at + - favorite_count + - has_current_user_reposted + - has_current_user_saved + - id + - is_album + - is_delete + - is_image_autogenerated + - is_private + - is_scheduled_release + - is_stream_gated + - permalink + - playlist_contents + - playlist_name + - repost_count + - total_play_count + - track_count + - updated_at + - user + - user_id type: object properties: artwork: - $ref: '#/components/schemas/playlist_artwork' + $ref: "#/components/schemas/playlist_artwork" description: type: string permalink: @@ -14170,7 +14357,7 @@ components: playlist_contents: type: array items: - $ref: '#/components/schemas/playlist_added_timestamp' + $ref: "#/components/schemas/playlist_added_timestamp" repost_count: type: integer favorite_count: @@ -14178,11 +14365,11 @@ components: total_play_count: type: integer user: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" ddex_app: type: string access: - $ref: '#/components/schemas/access' + $ref: "#/components/schemas/access" upc: type: string track_count: @@ -14194,11 +14381,11 @@ components: followee_reposts: type: array items: - $ref: '#/components/schemas/repost' + $ref: "#/components/schemas/repost" followee_favorites: type: array items: - $ref: '#/components/schemas/favorite' + $ref: "#/components/schemas/favorite" has_current_user_reposted: type: boolean has_current_user_saved: @@ -14213,26 +14400,26 @@ components: type: array description: DEPRECATED. Use playlist_contents instead. items: - $ref: '#/components/schemas/playlist_added_timestamp' + $ref: "#/components/schemas/playlist_added_timestamp" user_id: type: string tracks: type: array items: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" cover_art: type: string cover_art_sizes: type: string cover_art_cids: - $ref: '#/components/schemas/playlist_artwork' + $ref: "#/components/schemas/playlist_artwork" is_stream_gated: type: boolean stream_conditions: type: object description: How to unlock stream access to the track allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" is_scheduled_release: type: boolean release_date: @@ -14256,9 +14443,9 @@ components: nullable: true best_selling_item: required: - - content_id - - owner_id - - title + - content_id + - owner_id + - title type: object properties: content_id: @@ -14267,16 +14454,16 @@ components: type: string example: track enum: - - track - - album + - track + - album title: type: string owner_id: type: string comment_mention: required: - - handle - - user_id + - handle + - user_id type: object properties: user_id: @@ -14285,13 +14472,13 @@ components: type: string user_feed_item: oneOf: - - $ref: '#/components/schemas/track_feed_item' - - $ref: '#/components/schemas/playlist_feed_item' + - $ref: "#/components/schemas/track_feed_item" + - $ref: "#/components/schemas/playlist_feed_item" discriminator: propertyName: type mapping: - track: '#/components/schemas/track_feed_item' - playlist: '#/components/schemas/playlist_feed_item' + track: "#/components/schemas/track_feed_item" + playlist: "#/components/schemas/playlist_feed_item" cover_art: type: object properties: @@ -14307,8 +14494,8 @@ components: type: string track_segment: required: - - duration - - multihash + - duration + - multihash type: object properties: duration: @@ -14317,14 +14504,14 @@ components: type: string transaction_details: required: - - balance - - change - - metadata - - method - - signature - - transaction_date - - transaction_type - - user_bank + - balance + - change + - metadata + - method + - signature + - transaction_date + - transaction_type + - user_bank type: object properties: transaction_date: @@ -14352,7 +14539,7 @@ components: playlist_updates: type: array items: - $ref: '#/components/schemas/playlist_update' + $ref: "#/components/schemas/playlist_update" playlist_library: type: object properties: @@ -14380,60 +14567,61 @@ components: tracks: type: array items: - $ref: '#/components/schemas/remix' + $ref: "#/components/schemas/remix" extended_access_gate: oneOf: - - $ref: '#/components/schemas/tip_gate' - - $ref: '#/components/schemas/follow_gate' - - $ref: '#/components/schemas/extended_purchase_gate' - - $ref: '#/components/schemas/token_gate' + - $ref: "#/components/schemas/tip_gate" + - $ref: "#/components/schemas/follow_gate" + - $ref: "#/components/schemas/extended_purchase_gate" + - $ref: "#/components/schemas/token_gate" coin_insights: type: object - description: 'Additional token information from Birdeye''s defi token overview + description: + "Additional token information from Birdeye's defi token overview API. Includes price, volume, supply, market cap, and other on-chain and market data. - ' - required: - - mint - - marketCap - - fdv - - liquidity - - lastTradeUnixTime - - lastTradeHumanTime - - price - - history24hPrice - - priceChange24hPercent - - uniqueWallet24h - - uniqueWalletHistory24h - - uniqueWallet24hChangePercent - - totalSupply - - circulatingSupply - - holder - - trade24h - - tradeHistory24h - - trade24hChangePercent - - sell24h - - sellHistory24h - - sell24hChangePercent - - buy24h - - buyHistory24h - - buy24hChangePercent - - v24h - - v24hUSD - - vHistory24h - - totalVolume - - totalVolumeUSD - - volumeBuy - - volumeBuyUSD - - volumeSell - - volumeSellUSD - - totalTrade - - buy - - sell - - dynamicBondingCurve + " + required: + - mint + - marketCap + - fdv + - liquidity + - lastTradeUnixTime + - lastTradeHumanTime + - price + - history24hPrice + - priceChange24hPercent + - uniqueWallet24h + - uniqueWalletHistory24h + - uniqueWallet24hChangePercent + - totalSupply + - circulatingSupply + - holder + - trade24h + - tradeHistory24h + - trade24hChangePercent + - sell24h + - sellHistory24h + - sell24hChangePercent + - buy24h + - buyHistory24h + - buy24hChangePercent + - v24h + - v24hUSD + - vHistory24h + - totalVolume + - totalVolumeUSD + - volumeBuy + - volumeBuyUSD + - volumeSell + - volumeSellUSD + - totalTrade + - buy + - sell + - dynamicBondingCurve properties: address: type: string @@ -14494,7 +14682,7 @@ components: lastTradeHumanTime: type: string description: ISO8601 time of the last trade - example: '2025-07-15T23:03:12' + example: "2025-07-15T23:03:12" price: type: number description: Current price in USD @@ -14669,16 +14857,17 @@ components: example: 170693395 dynamicBondingCurve: type: object - description: Information about the dynamic bonding curve if one exists for + description: + Information about the dynamic bonding curve if one exists for the Coin required: - - address - - price - - priceUSD - - curveProgress - - creatorQuoteFee - - totalTradingQuoteFee - - creatorWalletAddress + - address + - price + - priceUSD + - curveProgress + - creatorQuoteFee + - totalTradingQuoteFee + - creatorWalletAddress properties: address: type: string @@ -14714,8 +14903,8 @@ components: example: 2AAsAwNPTNBk5N466xyPiwqdgbc5WLbDTdnn9gVuDKaN usdc_gate: required: - - price - - splits + - price + - splits type: object properties: price: @@ -14727,8 +14916,8 @@ components: $ref: "#/components/schemas/payment_split" payment_split: required: - - user_id - - percentage + - user_id + - percentage type: object properties: user_id: @@ -14738,45 +14927,45 @@ components: type: number search_track: required: - - access - - artwork - - blocknumber - - comment_count - - cover_art_sizes - - created_at - - download - - duration - - favorite_count - - field_visibility - - genre - - has_current_user_reposted - - has_current_user_saved - - id - - is_available - - is_delete - - is_download_gated - - is_downloadable - - is_original_available - - is_owned_by_user - - is_scheduled_release - - is_stream_gated - - is_unlisted - - permalink - - play_count - - preview - - remix_of - - repost_count - - route_id - - stream - - title - - track_segments - - updated_at - - user - - user_id + - access + - artwork + - blocknumber + - comment_count + - cover_art_sizes + - created_at + - download + - duration + - favorite_count + - field_visibility + - genre + - has_current_user_reposted + - has_current_user_saved + - id + - is_available + - is_delete + - is_download_gated + - is_downloadable + - is_original_available + - is_owned_by_user + - is_scheduled_release + - is_stream_gated + - is_unlisted + - permalink + - play_count + - preview + - remix_of + - repost_count + - route_id + - stream + - title + - track_segments + - updated_at + - user + - user_id type: object properties: artwork: - $ref: '#/components/schemas/track_artwork' + $ref: "#/components/schemas/track_artwork" description: type: string genre: @@ -14799,7 +14988,7 @@ components: type: string format: date remix_of: - $ref: '#/components/schemas/remix_parent' + $ref: "#/components/schemas/remix_parent" repost_count: type: integer favorite_count: @@ -14811,7 +15000,7 @@ components: title: type: string user: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" duration: type: integer is_downloadable: @@ -14831,12 +15020,12 @@ components: pinned_comment_id: type: integer album_backlink: - $ref: '#/components/schemas/album_backlink' + $ref: "#/components/schemas/album_backlink" access: type: object description: Describes what access the given user has allOf: - - $ref: '#/components/schemas/access' + - $ref: "#/components/schemas/access" blocknumber: type: integer description: The blocknumber this track was last updated @@ -14845,7 +15034,7 @@ components: cover_art_sizes: type: string cover_art_cids: - $ref: '#/components/schemas/cover_art' + $ref: "#/components/schemas/cover_art" created_at: type: string credits_splits: @@ -14857,11 +15046,11 @@ components: iswc: type: string field_visibility: - $ref: '#/components/schemas/field_visibility' + $ref: "#/components/schemas/field_visibility" followee_reposts: type: array items: - $ref: '#/components/schemas/repost' + $ref: "#/components/schemas/repost" has_current_user_reposted: type: boolean is_scheduled_release: @@ -14873,15 +15062,15 @@ components: followee_favorites: type: array items: - $ref: '#/components/schemas/favorite' + $ref: "#/components/schemas/favorite" route_id: type: string stem_of: - $ref: '#/components/schemas/stem_parent' + $ref: "#/components/schemas/stem_parent" track_segments: type: array items: - $ref: '#/components/schemas/track_segment' + $ref: "#/components/schemas/track_segment" updated_at: type: string user_id: @@ -14926,44 +15115,46 @@ components: type: array nullable: true items: - $ref: '#/components/schemas/ddex_resource_contributor' + $ref: "#/components/schemas/ddex_resource_contributor" indirect_resource_contributors: type: array nullable: true items: - $ref: '#/components/schemas/ddex_resource_contributor' + $ref: "#/components/schemas/ddex_resource_contributor" rights_controller: nullable: true - $ref: '#/components/schemas/ddex_rights_controller' + $ref: "#/components/schemas/ddex_rights_controller" copyright_line: nullable: true allOf: - - $ref: '#/components/schemas/ddex_copyright' + - $ref: "#/components/schemas/ddex_copyright" producer_copyright_line: nullable: true allOf: - - $ref: '#/components/schemas/ddex_copyright' + - $ref: "#/components/schemas/ddex_copyright" parental_warning_type: type: string nullable: true is_stream_gated: type: boolean - description: Whether or not the owner has restricted streaming behind an + description: + Whether or not the owner has restricted streaming behind an access gate stream_conditions: type: object description: How to unlock stream access to the track allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" is_download_gated: type: boolean - description: Whether or not the owner has restricted downloading behind + description: + Whether or not the owner has restricted downloading behind an access gate download_conditions: type: object description: How to unlock the track download allOf: - - $ref: '#/components/schemas/access_gate' + - $ref: "#/components/schemas/access_gate" cover_original_song_title: type: string cover_original_artist: @@ -14972,28 +15163,28 @@ components: type: boolean description: Indicates whether the track is owned by the user for MRI sake stream: - $ref: '#/components/schemas/url_with_mirrors' + $ref: "#/components/schemas/url_with_mirrors" download: - $ref: '#/components/schemas/url_with_mirrors' + $ref: "#/components/schemas/url_with_mirrors" preview: - $ref: '#/components/schemas/url_with_mirrors' + $ref: "#/components/schemas/url_with_mirrors" managed_user: required: - - grant - - user + - grant + - user type: object properties: user: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" grant: - $ref: '#/components/schemas/grant' + $ref: "#/components/schemas/grant" wild_month_model: type: object additionalProperties: - $ref: '#/components/schemas/monthly_aggregate_play' + $ref: "#/components/schemas/monthly_aggregate_play" url_with_mirrors: required: - - mirrors + - mirrors type: object properties: url: @@ -15004,8 +15195,8 @@ components: type: string extended_token_gate: required: - - token_mint - - token_amount + - token_mint + - token_amount type: object properties: token_mint: @@ -15016,23 +15207,23 @@ components: description: The amount of the token needed to unlock nft_collection: required: - - address - - chain - - name + - address + - chain + - name type: object properties: chain: type: string example: eth enum: - - eth - - sol + - eth + - sol standard: type: string example: ERC721 enum: - - ERC721 - - ERC1155 + - ERC721 + - ERC1155 address: type: string name: @@ -15043,9 +15234,9 @@ components: type: string supporting: required: - - amount - - rank - - receiver + - amount + - rank + - receiver type: object properties: rank: @@ -15053,10 +15244,10 @@ components: amount: type: string receiver: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" track_element_write: required: - - parent_track_id + - parent_track_id type: object properties: parent_track_id: @@ -15064,26 +15255,27 @@ components: example: x5pJ3Az extended_purchase_gate: required: - - usdc_purchase + - usdc_purchase type: object properties: usdc_purchase: type: object - description: Must pay the total price and split to the given addresses to + description: + Must pay the total price and split to the given addresses to unlock allOf: - - $ref: '#/components/schemas/extended_usdc_gate' + - $ref: "#/components/schemas/extended_usdc_gate" comment_notification_setting: required: - - is_muted + - is_muted type: object properties: is_muted: type: boolean extended_usdc_gate: required: - - price - - splits + - price + - splits type: object properties: price: @@ -15091,7 +15283,7 @@ components: splits: type: array items: - $ref: '#/components/schemas/extended_payment_split' + $ref: "#/components/schemas/extended_payment_split" track_artwork: type: object properties: @@ -15107,14 +15299,14 @@ components: type: string reply_comment: required: - - created_at - - entity_id - - entity_type - - id - - is_edited - - message - - react_count - - user_id + - created_at + - entity_id + - entity_type + - id + - is_edited + - message + - react_count + - user_id type: object properties: id: @@ -15122,7 +15314,7 @@ components: entity_id: type: string entity_type: - $ref: '#/components/schemas/comment_entity_type' + $ref: "#/components/schemas/comment_entity_type" user_id: type: string message: @@ -15130,7 +15322,7 @@ components: mentions: type: array items: - $ref: '#/components/schemas/comment_mention' + $ref: "#/components/schemas/comment_mention" track_timestamp_s: type: integer react_count: @@ -15151,25 +15343,25 @@ components: type: object description: User's playlist library with support for folders and playlists required: - - contents + - contents properties: contents: type: array description: Array of folders and playlist identifiers items: oneOf: - - $ref: '#/components/schemas/playlist_library_folder' - - $ref: '#/components/schemas/playlist_library_playlist_identifier' - - $ref: '#/components/schemas/playlist_library_explore_playlist_identifier' + - $ref: "#/components/schemas/playlist_library_folder" + - $ref: "#/components/schemas/playlist_library_playlist_identifier" + - $ref: "#/components/schemas/playlist_library_explore_playlist_identifier" notifications: required: - - unread_count + - unread_count type: object properties: notifications: type: array items: - $ref: '#/components/schemas/notification' + $ref: "#/components/schemas/notification" unread_count: type: integer wild_card_split: @@ -15178,9 +15370,9 @@ components: type: integer supporter: required: - - amount - - rank - - sender + - amount + - rank + - sender type: object properties: rank: @@ -15188,17 +15380,17 @@ components: amount: type: string sender: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" decoded_user_token: required: - - apiKey - - email - - handle - - iat - - name - - sub - - userId - - verified + - apiKey + - email + - handle + - iat + - name + - sub + - userId + - verified type: object properties: apiKey: @@ -15214,7 +15406,7 @@ components: verified: type: boolean profile_picture: - $ref: '#/components/schemas/profile_picture' + $ref: "#/components/schemas/profile_picture" sub: type: string iat: @@ -15222,11 +15414,11 @@ components: user_coin_account: type: object required: - - account - - owner - - balance - - balance_usd - - is_in_app_wallet + - account + - owner + - balance + - balance_usd + - is_in_app_wallet properties: account: type: string @@ -15254,24 +15446,24 @@ components: sales: type: array items: - $ref: '#/components/schemas/sale_json' + $ref: "#/components/schemas/sale_json" tip: required: - - amount - - created_at - - followee_supporters - - receiver - - sender - - slot - - tx_signature + - amount + - created_at + - followee_supporters + - receiver + - sender + - slot + - tx_signature type: object properties: amount: type: string sender: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" receiver: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" created_at: type: string slot: @@ -15279,25 +15471,25 @@ components: followee_supporters: type: array items: - $ref: '#/components/schemas/supporter_reference' + $ref: "#/components/schemas/supporter_reference" tx_signature: type: string track_id: required: - - id + - id type: object properties: id: type: string user_coin: required: - - mint - - ticker - - decimals - - owner_id - - balance - - has_discord - - balance_usd + - mint + - ticker + - decimals + - owner_id + - balance + - has_discord + - balance_usd type: object properties: mint: @@ -15340,37 +15532,37 @@ components: example: 1.23 track_feed_item: required: - - item - - type + - item + - type type: object properties: type: type: string item: - $ref: '#/components/schemas/track' + $ref: "#/components/schemas/track" remix: required: - - has_remix_author_reposted - - has_remix_author_saved - - parent_track_id - - user + - has_remix_author_reposted + - has_remix_author_saved + - parent_track_id + - user type: object properties: parent_track_id: type: string user: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" has_remix_author_reposted: type: boolean has_remix_author_saved: type: boolean account_collection: required: - - id - - is_album - - name - - permalink - - user + - id + - is_album + - name + - permalink + - user type: object properties: id: @@ -15382,11 +15574,11 @@ components: permalink: type: string user: - $ref: '#/components/schemas/account_collection_user' + $ref: "#/components/schemas/account_collection_user" playlist_update: required: - - playlist_id - - updated_at + - playlist_id + - updated_at type: object properties: playlist_id: @@ -15397,104 +15589,104 @@ components: type: integer supporter_reference: required: - - user_id + - user_id type: object properties: user_id: type: string notification: oneOf: - - $ref: '#/components/schemas/follow_notification' - - $ref: '#/components/schemas/save_notification' - - $ref: '#/components/schemas/repost_notification' - - $ref: '#/components/schemas/repost_of_repost_notification' - - $ref: '#/components/schemas/save_of_repost_notification' - - $ref: '#/components/schemas/tastemaker_notification' - - $ref: '#/components/schemas/remix_notification' - - $ref: '#/components/schemas/cosign_notification' - - $ref: '#/components/schemas/create_notification' - - $ref: '#/components/schemas/send_tip_notification' - - $ref: '#/components/schemas/receive_tip_notification' - - $ref: '#/components/schemas/supporter_dethroned_notification' - - $ref: '#/components/schemas/supporter_rank_up_notification' - - $ref: '#/components/schemas/supporter_rank_up_notification' - - $ref: '#/components/schemas/challenge_reward_notification' - - $ref: '#/components/schemas/claimable_reward_notification' - - $ref: '#/components/schemas/reaction_notification' - - $ref: '#/components/schemas/milestone_notification' - - $ref: '#/components/schemas/tier_change_notification' - - $ref: '#/components/schemas/track_added_to_playlist_notification' - - $ref: '#/components/schemas/track_added_to_purchased_album_notification' - - $ref: '#/components/schemas/usdc_purchase_seller_notification' - - $ref: '#/components/schemas/usdc_purchase_buyer_notification' - - $ref: '#/components/schemas/request_manager_notification' - - $ref: '#/components/schemas/approve_manager_request_notification' - - $ref: '#/components/schemas/trending_notification' - - $ref: '#/components/schemas/trending_playlist_notification' - - $ref: '#/components/schemas/trending_underground_notification' - - $ref: '#/components/schemas/announcement_notification' - - $ref: '#/components/schemas/comment_notification' - - $ref: '#/components/schemas/comment_thread_notification' - - $ref: '#/components/schemas/comment_mention_notification' - - $ref: '#/components/schemas/comment_reaction_notification' - - $ref: '#/components/schemas/listen_streak_reminder_notification' - - $ref: '#/components/schemas/fan_remix_contest_started_notification' - - $ref: '#/components/schemas/fan_remix_contest_ended_notification' - - $ref: '#/components/schemas/fan_remix_contest_ending_soon_notification' - - $ref: '#/components/schemas/artist_remix_contest_ended_notification' - - $ref: '#/components/schemas/artist_remix_contest_ending_soon_notification' - - $ref: '#/components/schemas/artist_remix_contest_submissions_notification' - - $ref: '#/components/schemas/fan_remix_contest_winners_selected_notification' + - $ref: "#/components/schemas/follow_notification" + - $ref: "#/components/schemas/save_notification" + - $ref: "#/components/schemas/repost_notification" + - $ref: "#/components/schemas/repost_of_repost_notification" + - $ref: "#/components/schemas/save_of_repost_notification" + - $ref: "#/components/schemas/tastemaker_notification" + - $ref: "#/components/schemas/remix_notification" + - $ref: "#/components/schemas/cosign_notification" + - $ref: "#/components/schemas/create_notification" + - $ref: "#/components/schemas/send_tip_notification" + - $ref: "#/components/schemas/receive_tip_notification" + - $ref: "#/components/schemas/supporter_dethroned_notification" + - $ref: "#/components/schemas/supporter_rank_up_notification" + - $ref: "#/components/schemas/supporter_rank_up_notification" + - $ref: "#/components/schemas/challenge_reward_notification" + - $ref: "#/components/schemas/claimable_reward_notification" + - $ref: "#/components/schemas/reaction_notification" + - $ref: "#/components/schemas/milestone_notification" + - $ref: "#/components/schemas/tier_change_notification" + - $ref: "#/components/schemas/track_added_to_playlist_notification" + - $ref: "#/components/schemas/track_added_to_purchased_album_notification" + - $ref: "#/components/schemas/usdc_purchase_seller_notification" + - $ref: "#/components/schemas/usdc_purchase_buyer_notification" + - $ref: "#/components/schemas/request_manager_notification" + - $ref: "#/components/schemas/approve_manager_request_notification" + - $ref: "#/components/schemas/trending_notification" + - $ref: "#/components/schemas/trending_playlist_notification" + - $ref: "#/components/schemas/trending_underground_notification" + - $ref: "#/components/schemas/announcement_notification" + - $ref: "#/components/schemas/comment_notification" + - $ref: "#/components/schemas/comment_thread_notification" + - $ref: "#/components/schemas/comment_mention_notification" + - $ref: "#/components/schemas/comment_reaction_notification" + - $ref: "#/components/schemas/listen_streak_reminder_notification" + - $ref: "#/components/schemas/fan_remix_contest_started_notification" + - $ref: "#/components/schemas/fan_remix_contest_ended_notification" + - $ref: "#/components/schemas/fan_remix_contest_ending_soon_notification" + - $ref: "#/components/schemas/artist_remix_contest_ended_notification" + - $ref: "#/components/schemas/artist_remix_contest_ending_soon_notification" + - $ref: "#/components/schemas/artist_remix_contest_submissions_notification" + - $ref: "#/components/schemas/fan_remix_contest_winners_selected_notification" discriminator: propertyName: type mapping: - follow: '#/components/schemas/follow_notification' - save: '#/components/schemas/save_notification' - repost: '#/components/schemas/repost_notification' - repost_of_repost: '#/components/schemas/repost_of_repost_notification' - save_of_repost: '#/components/schemas/save_of_repost_notification' - tastemaker: '#/components/schemas/tastemaker_notification' - remix: '#/components/schemas/remix_notification' - cosign: '#/components/schemas/cosign_notification' - create: '#/components/schemas/create_notification' - tip_send: '#/components/schemas/send_tip_notification' - tip_receive: '#/components/schemas/receive_tip_notification' - supporter_dethroned: '#/components/schemas/supporter_dethroned_notification' - supporter_rank_up: '#/components/schemas/supporter_rank_up_notification' - supporting_rank_up: '#/components/schemas/supporter_rank_up_notification' - challenge_reward: '#/components/schemas/challenge_reward_notification' - claimable_reward: '#/components/schemas/claimable_reward_notification' - reaction: '#/components/schemas/reaction_notification' - milestone: '#/components/schemas/milestone_notification' - tier_change: '#/components/schemas/tier_change_notification' - track_added_to_playlist: '#/components/schemas/track_added_to_playlist_notification' - track_added_to_purchased_album: '#/components/schemas/track_added_to_purchased_album_notification' - usdc_purchase_seller: '#/components/schemas/usdc_purchase_seller_notification' - usdc_purchase_buyer: '#/components/schemas/usdc_purchase_buyer_notification' - request_manager: '#/components/schemas/request_manager_notification' - approve_manager_request: '#/components/schemas/approve_manager_request_notification' - trending: '#/components/schemas/trending_notification' - trending_playlist: '#/components/schemas/trending_playlist_notification' - trending_underground: '#/components/schemas/trending_underground_notification' - announcement: '#/components/schemas/announcement_notification' - comment: '#/components/schemas/comment_notification' - comment_thread: '#/components/schemas/comment_thread_notification' - comment_mention: '#/components/schemas/comment_mention_notification' - comment_reaction: '#/components/schemas/comment_reaction_notification' - listen_streak_reminder: '#/components/schemas/listen_streak_reminder_notification' - fan_remix_contest_started: '#/components/schemas/fan_remix_contest_started_notification' - fan_remix_contest_ended: '#/components/schemas/fan_remix_contest_ended_notification' - fan_remix_contest_ending_soon: '#/components/schemas/fan_remix_contest_ending_soon_notification' - artist_remix_contest_ended: '#/components/schemas/artist_remix_contest_ended_notification' - artist_remix_contest_ending_soon: '#/components/schemas/artist_remix_contest_ending_soon_notification' - artist_remix_contest_submissions: '#/components/schemas/artist_remix_contest_submissions_notification' - fan_remix_contest_winners_selected: '#/components/schemas/fan_remix_contest_winners_selected_notification' + follow: "#/components/schemas/follow_notification" + save: "#/components/schemas/save_notification" + repost: "#/components/schemas/repost_notification" + repost_of_repost: "#/components/schemas/repost_of_repost_notification" + save_of_repost: "#/components/schemas/save_of_repost_notification" + tastemaker: "#/components/schemas/tastemaker_notification" + remix: "#/components/schemas/remix_notification" + cosign: "#/components/schemas/cosign_notification" + create: "#/components/schemas/create_notification" + tip_send: "#/components/schemas/send_tip_notification" + tip_receive: "#/components/schemas/receive_tip_notification" + supporter_dethroned: "#/components/schemas/supporter_dethroned_notification" + supporter_rank_up: "#/components/schemas/supporter_rank_up_notification" + supporting_rank_up: "#/components/schemas/supporter_rank_up_notification" + challenge_reward: "#/components/schemas/challenge_reward_notification" + claimable_reward: "#/components/schemas/claimable_reward_notification" + reaction: "#/components/schemas/reaction_notification" + milestone: "#/components/schemas/milestone_notification" + tier_change: "#/components/schemas/tier_change_notification" + track_added_to_playlist: "#/components/schemas/track_added_to_playlist_notification" + track_added_to_purchased_album: "#/components/schemas/track_added_to_purchased_album_notification" + usdc_purchase_seller: "#/components/schemas/usdc_purchase_seller_notification" + usdc_purchase_buyer: "#/components/schemas/usdc_purchase_buyer_notification" + request_manager: "#/components/schemas/request_manager_notification" + approve_manager_request: "#/components/schemas/approve_manager_request_notification" + trending: "#/components/schemas/trending_notification" + trending_playlist: "#/components/schemas/trending_playlist_notification" + trending_underground: "#/components/schemas/trending_underground_notification" + announcement: "#/components/schemas/announcement_notification" + comment: "#/components/schemas/comment_notification" + comment_thread: "#/components/schemas/comment_thread_notification" + comment_mention: "#/components/schemas/comment_mention_notification" + comment_reaction: "#/components/schemas/comment_reaction_notification" + listen_streak_reminder: "#/components/schemas/listen_streak_reminder_notification" + fan_remix_contest_started: "#/components/schemas/fan_remix_contest_started_notification" + fan_remix_contest_ended: "#/components/schemas/fan_remix_contest_ended_notification" + fan_remix_contest_ending_soon: "#/components/schemas/fan_remix_contest_ending_soon_notification" + artist_remix_contest_ended: "#/components/schemas/artist_remix_contest_ended_notification" + artist_remix_contest_ending_soon: "#/components/schemas/artist_remix_contest_ending_soon_notification" + artist_remix_contest_submissions: "#/components/schemas/artist_remix_contest_submissions_notification" + fan_remix_contest_winners_selected: "#/components/schemas/fan_remix_contest_winners_selected_notification" save_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15508,7 +15700,7 @@ components: actions: type: array items: - $ref: '#/components/schemas/save_notification_action' + $ref: "#/components/schemas/save_notification_action" sale_json: type: object properties: @@ -15556,34 +15748,34 @@ components: description: Base64 encoded public key of the buyer playlist_feed_item: required: - - item - - type + - item + - type type: object properties: type: type: string item: - $ref: '#/components/schemas/playlist' + $ref: "#/components/schemas/playlist" playlist_library_playlist_identifier: type: object description: Reference to a playlist required: - - type - - playlist_id + - type + - playlist_id properties: type: type: string enum: - - playlist + - playlist playlist_id: type: integer description: Playlist ID example: 1234 extended_payment_split: required: - - amount - - payout_wallet - - percentage + - amount + - payout_wallet + - percentage type: object properties: user_id: @@ -15599,10 +15791,10 @@ components: type: integer fan_remix_contest_ended_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15616,13 +15808,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/fan_remix_contest_ended_notification_action' + $ref: "#/components/schemas/fan_remix_contest_ended_notification_action" fan_remix_contest_winners_selected_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15636,13 +15828,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/fan_remix_contest_winners_selected_notification_action' + $ref: "#/components/schemas/fan_remix_contest_winners_selected_notification_action" tier_change_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15656,13 +15848,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/tier_change_notification_action' + $ref: "#/components/schemas/tier_change_notification_action" cosign_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15676,13 +15868,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/cosign_notification_action' + $ref: "#/components/schemas/cosign_notification_action" comment_reaction_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15696,13 +15888,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/comment_reaction_notification_action' + $ref: "#/components/schemas/comment_reaction_notification_action" approve_manager_request_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15716,13 +15908,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/approve_manager_request_notification_action' + $ref: "#/components/schemas/approve_manager_request_notification_action" fan_remix_contest_ended_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -15732,7 +15924,7 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/fan_remix_contest_ended_notification_action_data' + $ref: "#/components/schemas/fan_remix_contest_ended_notification_action_data" monthly_aggregate_play: type: object properties: @@ -15745,13 +15937,13 @@ components: listenCounts: type: array items: - $ref: '#/components/schemas/listen_count' + $ref: "#/components/schemas/listen_count" save_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -15761,13 +15953,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/save_notification_action_data' + $ref: "#/components/schemas/save_notification_action_data" save_of_repost_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15781,13 +15973,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/save_of_repost_notification_action' + $ref: "#/components/schemas/save_of_repost_notification_action" approve_manager_request_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -15797,13 +15989,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/approve_manager_request_notification_action_data' + $ref: "#/components/schemas/approve_manager_request_notification_action_data" comment_mention_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15817,11 +16009,11 @@ components: actions: type: array items: - $ref: '#/components/schemas/comment_mention_notification_action' + $ref: "#/components/schemas/comment_mention_notification_action" fan_remix_contest_ended_notification_action_data: required: - - entity_id - - entity_user_id + - entity_id + - entity_user_id type: object properties: entity_user_id: @@ -15832,10 +16024,10 @@ components: type: object description: Folder containing nested playlists and folders required: - - id - - type - - name - - contents + - id + - type + - name + - contents properties: id: type: string @@ -15843,7 +16035,7 @@ components: type: type: string enum: - - folder + - folder name: type: string description: Folder name @@ -15852,29 +16044,29 @@ components: description: Nested folders and playlist identifiers items: oneOf: - - $ref: '#/components/schemas/playlist_library_folder' - - $ref: '#/components/schemas/playlist_library_playlist_identifier' - - $ref: '#/components/schemas/playlist_library_explore_playlist_identifier' + - $ref: "#/components/schemas/playlist_library_folder" + - $ref: "#/components/schemas/playlist_library_playlist_identifier" + - $ref: "#/components/schemas/playlist_library_explore_playlist_identifier" playlist_library_explore_playlist_identifier: type: object description: Reference to an explore playlist required: - - type - - playlist_id + - type + - playlist_id properties: type: type: string enum: - - explore_playlist + - explore_playlist playlist_id: type: string description: Explore playlist identifier send_tip_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15888,13 +16080,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/send_tip_notification_action' + $ref: "#/components/schemas/send_tip_notification_action" comment_reaction_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -15904,13 +16096,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/comment_reaction_notification_action_data' + $ref: "#/components/schemas/comment_reaction_notification_action_data" comment_thread_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15924,13 +16116,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/comment_thread_notification_action' + $ref: "#/components/schemas/comment_thread_notification_action" reaction_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15944,11 +16136,11 @@ components: actions: type: array items: - $ref: '#/components/schemas/reaction_notification_action' + $ref: "#/components/schemas/reaction_notification_action" account_collection_user: required: - - handle - - id + - handle + - id type: object properties: id: @@ -15959,10 +16151,10 @@ components: type: boolean remix_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -15976,13 +16168,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/remix_notification_action' + $ref: "#/components/schemas/remix_notification_action" cosign_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -15992,13 +16184,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/cosign_notification_action_data' + $ref: "#/components/schemas/cosign_notification_action_data" announcement_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16012,13 +16204,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/announcement_notification_action' + $ref: "#/components/schemas/announcement_notification_action" listen_streak_reminder_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16032,13 +16224,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/listen_streak_reminder_notification_action' + $ref: "#/components/schemas/listen_streak_reminder_notification_action" comment_thread_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16048,13 +16240,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/comment_thread_notification_action_data' + $ref: "#/components/schemas/comment_thread_notification_action_data" fan_remix_contest_winners_selected_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16064,13 +16256,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/fan_remix_contest_winners_selected_notification_action_data' + $ref: "#/components/schemas/fan_remix_contest_winners_selected_notification_action_data" send_tip_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16080,13 +16272,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/send_tip_notification_action_data' + $ref: "#/components/schemas/send_tip_notification_action_data" supporter_dethroned_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16100,13 +16292,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/supporter_dethroned_notification_action' + $ref: "#/components/schemas/supporter_dethroned_notification_action" reaction_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16116,13 +16308,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/reaction_notification_action_data' + $ref: "#/components/schemas/reaction_notification_action_data" receive_tip_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16136,13 +16328,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/receive_tip_notification_action' + $ref: "#/components/schemas/receive_tip_notification_action" tastemaker_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16156,13 +16348,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/tastemaker_notification_action' + $ref: "#/components/schemas/tastemaker_notification_action" track_added_to_purchased_album_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16176,13 +16368,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/track_added_to_purchased_album_notification_action' + $ref: "#/components/schemas/track_added_to_purchased_album_notification_action" track_added_to_playlist_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16196,13 +16388,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/track_added_to_playlist_notification_action' + $ref: "#/components/schemas/track_added_to_playlist_notification_action" receive_tip_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16212,13 +16404,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/receive_tip_notification_action_data' + $ref: "#/components/schemas/receive_tip_notification_action_data" trending_underground_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16232,7 +16424,7 @@ components: actions: type: array items: - $ref: '#/components/schemas/trending_underground_notification_action' + $ref: "#/components/schemas/trending_underground_notification_action" listen_count: type: object properties: @@ -16244,9 +16436,9 @@ components: type: integer cosign_notification_action_data: required: - - parent_track_id - - track_id - - track_owner_id + - parent_track_id + - track_id + - track_owner_id type: object properties: parent_track_id: @@ -16257,11 +16449,11 @@ components: type: string receive_tip_notification_action_data: required: - - amount - - reaction_value - - receiver_user_id - - sender_user_id - - tip_tx_signature + - amount + - reaction_value + - receiver_user_id + - sender_user_id + - tip_tx_signature type: object properties: amount: @@ -16276,10 +16468,10 @@ components: type: integer challenge_reward_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16293,13 +16485,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/challenge_reward_notification_action' + $ref: "#/components/schemas/challenge_reward_notification_action" usdc_purchase_seller_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16313,13 +16505,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/usdc_purchase_seller_notification_action' + $ref: "#/components/schemas/usdc_purchase_seller_notification_action" supporter_rank_up_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16333,13 +16525,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/supporter_rank_up_notification_action' + $ref: "#/components/schemas/supporter_rank_up_notification_action" fan_remix_contest_started_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16353,13 +16545,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/fan_remix_contest_started_notification_action' + $ref: "#/components/schemas/fan_remix_contest_started_notification_action" track_added_to_purchased_album_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16369,13 +16561,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/track_added_to_purchased_album_notification_action_data' + $ref: "#/components/schemas/track_added_to_purchased_album_notification_action_data" remix_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16385,13 +16577,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/remix_notification_action_data' + $ref: "#/components/schemas/remix_notification_action_data" request_manager_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16405,13 +16597,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/request_manager_notification_action' + $ref: "#/components/schemas/request_manager_notification_action" comment_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16425,13 +16617,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/comment_notification_action' + $ref: "#/components/schemas/comment_notification_action" claimable_reward_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16445,13 +16637,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/claimable_reward_notification_action' + $ref: "#/components/schemas/claimable_reward_notification_action" create_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16465,13 +16657,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/create_notification_action' + $ref: "#/components/schemas/create_notification_action" milestone_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16485,13 +16677,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/milestone_notification_action' + $ref: "#/components/schemas/milestone_notification_action" fan_remix_contest_ending_soon_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16505,13 +16697,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/fan_remix_contest_ending_soon_notification_action' + $ref: "#/components/schemas/fan_remix_contest_ending_soon_notification_action" trending_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16525,13 +16717,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/trending_notification_action' + $ref: "#/components/schemas/trending_notification_action" tastemaker_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16541,13 +16733,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/tastemaker_notification_action_data' + $ref: "#/components/schemas/tastemaker_notification_action_data" comment_mention_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16557,13 +16749,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/comment_mention_notification_action_data' + $ref: "#/components/schemas/comment_mention_notification_action_data" claimable_reward_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16573,13 +16765,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/claimable_reward_notification_action_data' + $ref: "#/components/schemas/claimable_reward_notification_action_data" announcement_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16589,13 +16781,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/announcement_notification_action_data' + $ref: "#/components/schemas/announcement_notification_action_data" usdc_purchase_seller_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16605,11 +16797,11 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/usdc_purchase_seller_notification_action_data' + $ref: "#/components/schemas/usdc_purchase_seller_notification_action_data" fan_remix_contest_winners_selected_notification_action_data: required: - - entity_id - - entity_user_id + - entity_id + - entity_user_id type: object properties: entity_user_id: @@ -16618,10 +16810,10 @@ components: type: string trending_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16631,13 +16823,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/trending_notification_action_data' + $ref: "#/components/schemas/trending_notification_action_data" request_manager_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16647,13 +16839,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/request_manager_notification_action_data' + $ref: "#/components/schemas/request_manager_notification_action_data" repost_of_repost_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16667,13 +16859,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/repost_of_repost_notification_action' + $ref: "#/components/schemas/repost_of_repost_notification_action" trending_playlist_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16687,13 +16879,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/trending_playlist_notification_action' + $ref: "#/components/schemas/trending_playlist_notification_action" follow_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16707,22 +16899,22 @@ components: actions: type: array items: - $ref: '#/components/schemas/follow_notification_action' + $ref: "#/components/schemas/follow_notification_action" comment_thread_notification_action_data: required: - - comment_user_id - - entity_id - - entity_user_id - - type + - comment_user_id + - entity_id + - entity_user_id + - type type: object properties: type: type: string example: Track enum: - - Track - - Playlist - - Album + - Track + - Playlist + - Album entity_id: type: string entity_user_id: @@ -16733,10 +16925,10 @@ components: type: string create_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16746,13 +16938,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/create_notification_action_data' + $ref: "#/components/schemas/create_notification_action_data" trending_underground_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16762,13 +16954,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/trending_underground_notification_action_data' + $ref: "#/components/schemas/trending_underground_notification_action_data" repost_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16782,13 +16974,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/repost_notification_action' + $ref: "#/components/schemas/repost_notification_action" artist_remix_contest_submissions_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16802,13 +16994,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/artist_remix_contest_submissions_notification_action' + $ref: "#/components/schemas/artist_remix_contest_submissions_notification_action" artist_remix_contest_ending_soon_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16822,13 +17014,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/artist_remix_contest_ending_soon_notification_action' + $ref: "#/components/schemas/artist_remix_contest_ending_soon_notification_action" usdc_purchase_buyer_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16842,13 +17034,13 @@ components: actions: type: array items: - $ref: '#/components/schemas/usdc_purchase_buyer_notification_action' + $ref: "#/components/schemas/usdc_purchase_buyer_notification_action" artist_remix_contest_ended_notification: required: - - actions - - group_id - - is_seen - - type + - actions + - group_id + - is_seen + - type type: object properties: type: @@ -16862,12 +17054,12 @@ components: actions: type: array items: - $ref: '#/components/schemas/artist_remix_contest_ended_notification_action' + $ref: "#/components/schemas/artist_remix_contest_ended_notification_action" approve_manager_request_notification_action_data: required: - - grantee_address - - grantee_user_id - - user_id + - grantee_address + - grantee_user_id + - user_id type: object properties: user_id: @@ -16878,10 +17070,10 @@ components: type: string save_of_repost_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16891,13 +17083,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/save_of_repost_notification_action_data' + $ref: "#/components/schemas/save_of_repost_notification_action_data" supporter_dethroned_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16907,12 +17099,12 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/supporter_dethroned_notification_action_data' + $ref: "#/components/schemas/supporter_dethroned_notification_action_data" claimable_reward_notification_action_data: required: - - amount - - challenge_id - - specifier + - amount + - challenge_id + - specifier type: object properties: amount: @@ -16923,28 +17115,28 @@ components: type: string save_notification_action_data: required: - - save_item_id - - type - - user_id + - save_item_id + - type + - user_id type: object properties: type: type: string example: track enum: - - track - - playlist - - album + - track + - playlist + - album user_id: type: string save_item_id: type: string tier_change_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16954,13 +17146,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/tier_change_notification_action_data' + $ref: "#/components/schemas/tier_change_notification_action_data" trending_underground_notification_action_data: required: - - genre - - rank - - time_range - - track_id + - genre + - rank + - time_range + - track_id type: object properties: rank: @@ -16973,15 +17165,15 @@ components: type: string example: week enum: - - week - - month - - year + - week + - month + - year challenge_reward_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -16991,13 +17183,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/challenge_reward_notification_action_data' + $ref: "#/components/schemas/challenge_reward_notification_action_data" artist_remix_contest_submissions_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17007,18 +17199,18 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/artist_remix_contest_submissions_notification_action_data' + $ref: "#/components/schemas/artist_remix_contest_submissions_notification_action_data" create_notification_action_data: oneOf: - - $ref: '#/components/schemas/create_playlist_notification_action_data' - - $ref: '#/components/schemas/create_track_notification_action_data' + - $ref: "#/components/schemas/create_playlist_notification_action_data" + - $ref: "#/components/schemas/create_track_notification_action_data" tastemaker_notification_action_data: required: - - action - - tastemaker_item_id - - tastemaker_item_owner_id - - tastemaker_item_type - - tastemaker_user_id + - action + - tastemaker_item_id + - tastemaker_item_owner_id + - tastemaker_item_type + - tastemaker_user_id type: object properties: tastemaker_item_owner_id: @@ -17033,9 +17225,9 @@ components: type: string tier_change_notification_action_data: required: - - current_value - - new_tier - - new_tier_value + - current_value + - new_tier + - new_tier_value type: object properties: new_tier: @@ -17046,8 +17238,8 @@ components: type: integer remix_notification_action_data: required: - - parent_track_id - - track_id + - parent_track_id + - track_id type: object properties: parent_track_id: @@ -17056,10 +17248,10 @@ components: type: string artist_remix_contest_ended_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17069,13 +17261,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/artist_remix_contest_ended_notification_action_data' + $ref: "#/components/schemas/artist_remix_contest_ended_notification_action_data" fan_remix_contest_ending_soon_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17085,34 +17277,34 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/fan_remix_contest_ending_soon_notification_action_data' + $ref: "#/components/schemas/fan_remix_contest_ending_soon_notification_action_data" save_of_repost_notification_action_data: required: - - save_of_repost_item_id - - type - - user_id + - save_of_repost_item_id + - type + - user_id type: object properties: type: type: string example: track enum: - - track - - playlist - - album + - track + - playlist + - album user_id: type: string save_of_repost_item_id: type: string reaction_notification_action_data: required: - - reacted_to - - reaction_type - - reaction_value - - receiver_user_id - - sender_user_id - - sender_wallet - - tip_amount + - reacted_to + - reaction_type + - reaction_value + - receiver_user_id + - sender_user_id + - sender_wallet + - tip_amount type: object properties: reacted_to: @@ -17131,10 +17323,10 @@ components: type: string listen_streak_reminder_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17144,22 +17336,22 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/listen_streak_reminder_notification_action_data' + $ref: "#/components/schemas/listen_streak_reminder_notification_action_data" comment_reaction_notification_action_data: required: - - entity_id - - entity_user_id - - reacter_user_id - - type + - entity_id + - entity_user_id + - reacter_user_id + - type type: object properties: type: type: string example: Track enum: - - Track - - Playlist - - Album + - Track + - Playlist + - Album entity_id: type: string entity_user_id: @@ -17170,9 +17362,9 @@ components: type: string supporter_dethroned_notification_action_data: required: - - dethroned_user_id - - receiver_user_id - - sender_user_id + - dethroned_user_id + - receiver_user_id + - sender_user_id type: object properties: dethroned_user_id: @@ -17183,10 +17375,10 @@ components: type: string repost_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17196,12 +17388,12 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/repost_notification_action_data' + $ref: "#/components/schemas/repost_notification_action_data" challenge_reward_notification_action_data: required: - - amount - - challenge_id - - specifier + - amount + - challenge_id + - specifier type: object properties: amount: @@ -17214,10 +17406,10 @@ components: type: integer comment_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17227,31 +17419,31 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/comment_notification_action_data' + $ref: "#/components/schemas/comment_notification_action_data" repost_notification_action_data: required: - - repost_item_id - - type - - user_id + - repost_item_id + - type + - user_id type: object properties: type: type: string example: track enum: - - track - - playlist - - album + - track + - playlist + - album user_id: type: string repost_item_id: type: string repost_of_repost_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17261,13 +17453,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/repost_of_repost_notification_action_data' + $ref: "#/components/schemas/repost_of_repost_notification_action_data" trending_playlist_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17277,12 +17469,12 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/trending_playlist_notification_action_data' + $ref: "#/components/schemas/trending_playlist_notification_action_data" request_manager_notification_action_data: required: - - grantee_address - - grantee_user_id - - user_id + - grantee_address + - grantee_user_id + - user_id type: object properties: user_id: @@ -17293,10 +17485,10 @@ components: type: string follow_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17306,13 +17498,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/follow_notification_action_data' + $ref: "#/components/schemas/follow_notification_action_data" artist_remix_contest_ending_soon_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17322,22 +17514,22 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/artist_remix_contest_ending_soon_notification_action_data' + $ref: "#/components/schemas/artist_remix_contest_ending_soon_notification_action_data" comment_mention_notification_action_data: required: - - comment_user_id - - entity_id - - entity_user_id - - type + - comment_user_id + - entity_id + - entity_user_id + - type type: object properties: type: type: string example: Track enum: - - Track - - Playlist - - Album + - Track + - Playlist + - Album entity_id: type: string entity_user_id: @@ -17348,9 +17540,9 @@ components: type: string track_added_to_purchased_album_notification_action_data: required: - - playlist_id - - playlist_owner_id - - track_id + - playlist_id + - playlist_owner_id + - track_id type: object properties: track_id: @@ -17361,18 +17553,18 @@ components: type: string comment_notification_action_data: required: - - comment_user_id - - entity_id - - type + - comment_user_id + - entity_id + - type type: object properties: type: type: string example: Track enum: - - Track - - Playlist - - Album + - Track + - Playlist + - Album entity_id: type: string comment_user_id: @@ -17381,10 +17573,10 @@ components: type: string trending_notification_action_data: required: - - genre - - rank - - time_range - - track_id + - genre + - rank + - time_range + - track_id type: object properties: rank: @@ -17397,15 +17589,15 @@ components: type: string example: week enum: - - week - - month - - year + - week + - month + - year milestone_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17415,11 +17607,11 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/milestone_notification_action_data' + $ref: "#/components/schemas/milestone_notification_action_data" follow_notification_action_data: required: - - followee_user_id - - follower_user_id + - followee_user_id + - follower_user_id type: object properties: follower_user_id: @@ -17428,11 +17620,11 @@ components: type: string announcement_notification_action_data: required: - - long_description - - push_body - - short_description - - title - - route + - long_description + - push_body + - short_description + - title + - route type: object properties: title: @@ -17447,10 +17639,10 @@ components: type: string supporter_rank_up_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17460,31 +17652,31 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/supporter_rank_up_notification_action_data' + $ref: "#/components/schemas/supporter_rank_up_notification_action_data" repost_of_repost_notification_action_data: required: - - repost_of_repost_item_id - - type - - user_id + - repost_of_repost_item_id + - type + - user_id type: object properties: type: type: string example: track enum: - - track - - playlist - - album + - track + - playlist + - album user_id: type: string repost_of_repost_item_id: type: string send_tip_notification_action_data: required: - - amount - - receiver_user_id - - sender_user_id - - tip_tx_signature + - amount + - receiver_user_id + - sender_user_id + - tip_tx_signature type: object properties: amount: @@ -17497,10 +17689,10 @@ components: type: string trending_playlist_notification_action_data: required: - - genre - - playlist_id - - rank - - time_range + - genre + - playlist_id + - rank + - time_range type: object properties: rank: @@ -17513,15 +17705,15 @@ components: type: string example: week enum: - - week - - month - - year + - week + - month + - year usdc_purchase_buyer_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17531,11 +17723,11 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/usdc_purchase_buyer_notification_action_data' + $ref: "#/components/schemas/usdc_purchase_buyer_notification_action_data" fan_remix_contest_ending_soon_notification_action_data: required: - - entity_id - - entity_user_id + - entity_id + - entity_user_id type: object properties: entity_user_id: @@ -17544,12 +17736,12 @@ components: type: string usdc_purchase_seller_notification_action_data: required: - - amount - - buyer_user_id - - content_id - - content_type - - extra_amount - - seller_user_id + - amount + - buyer_user_id + - content_id + - content_type + - extra_amount + - seller_user_id type: object properties: content_type: @@ -17566,15 +17758,15 @@ components: type: string create_track_notification_action_data: required: - - track_id + - track_id type: object properties: track_id: type: string create_playlist_notification_action_data: required: - - is_album - - playlist_id + - is_album + - playlist_id type: object properties: is_album: @@ -17583,10 +17775,10 @@ components: type: string track_added_to_playlist_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17596,13 +17788,13 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/track_added_to_playlist_notification_action_data' + $ref: "#/components/schemas/track_added_to_playlist_notification_action_data" fan_remix_contest_started_notification_action: required: - - data - - specifier - - timestamp - - type + - data + - specifier + - timestamp + - type type: object properties: specifier: @@ -17612,19 +17804,19 @@ components: timestamp: type: integer data: - $ref: '#/components/schemas/fan_remix_contest_started_notification_action_data' + $ref: "#/components/schemas/fan_remix_contest_started_notification_action_data" listen_streak_reminder_notification_action_data: required: - - streak + - streak type: object properties: streak: type: integer artist_remix_contest_submissions_notification_action_data: required: - - entity_id - - event_id - - milestone + - entity_id + - event_id + - milestone type: object properties: event_id: @@ -17635,15 +17827,15 @@ components: type: string artist_remix_contest_ended_notification_action_data: required: - - entity_id + - entity_id type: object properties: entity_id: type: string artist_remix_contest_ending_soon_notification_action_data: required: - - entity_id - - entity_user_id + - entity_id + - entity_user_id type: object properties: entity_user_id: @@ -17652,8 +17844,8 @@ components: type: string fan_remix_contest_started_notification_action_data: required: - - entity_id - - entity_user_id + - entity_id + - entity_user_id type: object properties: entity_user_id: @@ -17662,9 +17854,9 @@ components: type: string supporter_rank_up_notification_action_data: required: - - rank - - receiver_user_id - - sender_user_id + - rank + - receiver_user_id + - sender_user_id type: object properties: rank: @@ -17675,9 +17867,9 @@ components: type: string track_added_to_playlist_notification_action_data: required: - - playlist_id - - playlist_owner_id - - track_id + - playlist_id + - playlist_owner_id + - track_id type: object properties: track_id: @@ -17688,14 +17880,14 @@ components: type: string milestone_notification_action_data: oneOf: - - $ref: '#/components/schemas/user_milestone_notification_action_data' - - $ref: '#/components/schemas/track_milestone_notification_action_data' - - $ref: '#/components/schemas/playlist_milestone_notification_action_data' + - $ref: "#/components/schemas/user_milestone_notification_action_data" + - $ref: "#/components/schemas/track_milestone_notification_action_data" + - $ref: "#/components/schemas/playlist_milestone_notification_action_data" user_milestone_notification_action_data: required: - - threshold - - type - - user_id + - threshold + - type + - user_id type: object properties: type: @@ -17706,10 +17898,10 @@ components: type: string playlist_milestone_notification_action_data: required: - - is_album - - playlist_id - - threshold - - type + - is_album + - playlist_id + - threshold + - type type: object properties: type: @@ -17722,9 +17914,9 @@ components: type: boolean track_milestone_notification_action_data: required: - - threshold - - track_id - - type + - threshold + - track_id + - type type: object properties: type: @@ -17735,12 +17927,12 @@ components: type: string usdc_purchase_buyer_notification_action_data: required: - - amount - - buyer_user_id - - content_id - - content_type - - extra_amount - - seller_user_id + - amount + - buyer_user_id + - content_id + - content_type + - extra_amount + - seller_user_id type: object properties: content_type: @@ -17759,7 +17951,7 @@ components: type: object properties: data: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" responses: ParseError: description: When a mask can't be parsed @@ -17771,7 +17963,8 @@ components: BasicAuth: type: http scheme: basic - description: 'HTTP Basic Authentication with Ethereum private key for write + description: + "HTTP Basic Authentication with Ethereum private key for write operations. @@ -17821,12 +18014,12 @@ components: - A wallet with an approved, non-revoked grant for the user (manager mode) - ' + " BearerAuth: type: http scheme: bearer bearerFormat: JWT - description: 'The API bearer token or OAuth JWT token for the user. + description: "The API bearer token or OAuth JWT token for the user. - ' -x-original-swagger-version: '2.0' + " +x-original-swagger-version: "2.0" diff --git a/api/v1_track.go b/api/v1_track.go index 327f9054..c3257da3 100644 --- a/api/v1_track.go +++ b/api/v1_track.go @@ -137,6 +137,7 @@ type CreateTrackRequest struct { DownloadConditions *AccessConditions `json:"download_conditions,omitempty" validate:"omitempty"` StreamConditions *AccessConditions `json:"stream_conditions,omitempty" validate:"omitempty"` IsStreamGated *bool `json:"is_stream_gated,omitempty"` + AccessAuthorities *[]string `json:"access_authorities,omitempty"` IsDownloadGated *bool `json:"is_download_gated,omitempty"` AiAttributionUserId *trashid.HashId `json:"ai_attribution_user_id,omitempty" validate:"omitempty,min=0"` AllowedApiKeys *[]string `json:"allowed_api_keys,omitempty"` @@ -178,6 +179,7 @@ type UpdateTrackRequest struct { DownloadConditions *AccessConditions `json:"download_conditions,omitempty" validate:"omitempty"` StreamConditions *AccessConditions `json:"stream_conditions,omitempty" validate:"omitempty"` IsStreamGated *bool `json:"is_stream_gated,omitempty"` + AccessAuthorities *[]string `json:"access_authorities,omitempty"` IsDownloadGated *bool `json:"is_download_gated,omitempty"` AiAttributionUserId *trashid.HashId `json:"ai_attribution_user_id,omitempty" validate:"omitempty,min=0"` AllowedApiKeys *[]string `json:"allowed_api_keys,omitempty"` @@ -282,8 +284,9 @@ func (app *ApiServer) postV1Tracks(c *fiber.Ctx) error { // Build metadata JSON with cid and data fields metadataJSON := map[string]interface{}{ - "cid": "", - "data": metadata, + "cid": "", + "access_authorities": req.AccessAuthorities, + "data": metadata, } finalMetadataBytes, _ := json.Marshal(metadataJSON) @@ -372,8 +375,9 @@ func (app *ApiServer) putV1Track(c *fiber.Ctx) error { // Build metadata JSON with cid and data fields metadataJSON := map[string]interface{}{ - "cid": "", - "data": metadata, + "cid": "", + "access_authorities": req.AccessAuthorities, + "data": metadata, } finalMetadataBytes, _ := json.Marshal(metadataJSON) diff --git a/go.mod b/go.mod index 363796c7..60fb16e3 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( connectrpc.com/connect v1.18.1 github.com/AlecAivazis/survey/v2 v2.3.7 github.com/Doist/unfurlist v0.0.0-20250409100812-515f2735f8e5 - github.com/OpenAudio/go-openaudio v1.1.0 + github.com/OpenAudio/go-openaudio v1.2.0 github.com/aquasecurity/esquery v0.2.0 github.com/axiomhq/axiom-go v0.23.0 github.com/axiomhq/hyperloglog v0.2.5 diff --git a/go.sum b/go.sum index 19e42698..e0cd92bb 100644 --- a/go.sum +++ b/go.sum @@ -22,6 +22,8 @@ github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEV github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OpenAudio/go-openaudio v1.1.0 h1:OhjXGPQd8oRkClrNujXG+oW/zT5w00WmnyjySQiaRCI= github.com/OpenAudio/go-openaudio v1.1.0/go.mod h1:lVst5R48H8ZyIDHkavo8/1mzr8ZwCmxj9aZV9x1TWkQ= +github.com/OpenAudio/go-openaudio v1.2.0 h1:jnvc7nWpPEZlDTABVrp9uLuLh0BcchwpHkg8nTQ/Zqs= +github.com/OpenAudio/go-openaudio v1.2.0/go.mod h1:tI/qfjYymj8TmVWEMl4WnciLxB//I2eZZyIkuUUCSnM= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI=