openapi: 3.2.0 info: title: Devto Readinglist Reading List API version: 1.0.0 description: 'Operations tagged readinglist across 2 of this provider''s published API definitions: openapi.json, openapi.yaml. Each path carries the servers of the definition it was published in.' servers: - url: https://dev.to/api description: Production server security: - api-key: [] tags: - name: Reading List paths: /api/readinglist: servers: - url: https://dev.to/api description: Production server get: summary: Readinglist tags: - Reading List description: 'This endpoint allows the client to retrieve a list of articles that were saved to a Users readinglist. It supports pagination, each page will contain `30` articles by default' operationId: getReadinglist parameters: - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/perPageParam30to1000' responses: '401': description: Unauthorized content: application/json: example: error: unauthorized status: 401 '200': description: A list of articles in the users readinglist content: application/json: example: [] schema: type: array items: $ref: '#/components/schemas/ArticleIndex' /readinglist: servers: - url: https://dev.to/api description: Production server get: summary: Readinglist tags: - Reading List description: 'This endpoint allows the client to retrieve a list of articles that were saved to a Users readinglist. It supports pagination, each page will contain `30` articles by default' operationId: getReadinglist parameters: - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/perPageParam30to1000' responses: '200': description: A list of articles in the users readinglist content: application/json: example: [] schema: type: array items: $ref: '#/components/schemas/ArticleIndex' '401': description: Unauthorized content: application/json: example: error: unauthorized status: 401 components: parameters: perPageParam30to1000: in: query name: per_page required: false description: Page size (the number of items to return per page). The default maximum value can be overridden by "API_PER_PAGE_MAX" environment variable. schema: type: integer format: int32 minimum: 1 maximum: 1000 default: 30 pageParam: in: query name: page required: false description: Pagination page schema: type: integer format: int32 minimum: 1 default: 1 perPageParam30to1000_2: in: query name: per_page required: false description: Page size (the number of items to return per page). The default maximum value can be overridden by "API_PER_PAGE_MAX" environment variable. schema: type: integer format: int32 minimum: 1 maximum: 1000 default: 30 pageParam_2: in: query name: page required: false description: Pagination page schema: type: integer format: int32 minimum: 1 default: 1 schemas: SharedOrganization: description: The organization the resource belongs to type: object properties: name: type: string username: type: string slug: type: string profile_image: description: Profile image (640x640) type: string format: url profile_image_90: description: Profile image (90x90) type: string format: url ArticleIndex: description: Representation of an article or post returned in a list type: object properties: type_of: type: string id: type: integer format: int32 title: type: string description: type: string cover_image: type: - string - 'null' format: url readable_publish_date: type: string social_image: type: string format: url tag_list: type: array items: type: string tags: type: string slug: type: string path: type: string format: path url: type: string format: url canonical_url: type: string format: url positive_reactions_count: type: integer format: int32 public_reactions_count: type: integer format: int32 created_at: type: string format: date-time edited_at: type: - string - 'null' format: date-time crossposted_at: type: - string - 'null' format: date-time published_at: type: string format: date-time last_comment_at: type: string format: date-time published_timestamp: description: Crossposting or published date time type: string format: date-time reading_time_minutes: description: Reading time, in minutes type: integer format: int32 user: $ref: '#/components/schemas/SharedUser' flare_tag: $ref: '#/components/schemas/ArticleFlareTag' organization: $ref: '#/components/schemas/SharedOrganization' required: - type_of - id - title - description - cover_image - readable_publish_date - social_image - tag_list - tags - slug - path - url - canonical_url - comments_count - positive_reactions_count - public_reactions_count - created_at - edited_at - crossposted_at - published_at - last_comment_at - published_timestamp - user - reading_time_minutes SharedUser: description: The resource creator type: object properties: name: type: string username: type: string twitter_username: type: - string - 'null' github_username: type: - string - 'null' website_url: type: - string - 'null' format: url profile_image: description: Profile image (640x640) type: string profile_image_90: description: Profile image (90x90) type: string ArticleFlareTag: description: Flare tag of the article type: object properties: name: type: string bg_color_hex: description: Background color (hexadecimal) type: - string - 'null' text_color_hex: description: Text color (hexadecimal) type: - string - 'null' Organization: type: object description: An organization on the DEV platform that can publish articles and have members. properties: name: type: string description: The display name of the organization. username: type: string description: The unique username (slug) of the organization. slug: type: string description: The URL slug of the organization. profile_image: type: string format: uri description: The URL of the organization's profile image. profile_image_90: type: string format: uri description: The URL of the 90px profile image. User: type: object description: A user account on the DEV platform. properties: name: type: string description: The display name of the user. username: type: string description: The unique username of the user. twitter_username: type: string nullable: true description: The user's Twitter username. github_username: type: string nullable: true description: The user's GitHub username. user_id: type: integer description: The unique numeric ID of the user. website_url: type: string format: uri nullable: true description: The user's website URL. location: type: string nullable: true description: The user's location. summary: type: string nullable: true description: A brief bio or summary of the user. profile_image: type: string format: uri description: The URL of the user's profile image. profile_image_90: type: string format: uri description: The URL of the 90px profile image. joined_at: type: string format: date-time description: The ISO 8601 timestamp when the user joined. ArticleIndex_2: description: Representation of an article or post returned in a list type: object properties: type_of: type: string id: type: integer format: int32 title: type: string description: type: string cover_image: type: - string - 'null' format: url readable_publish_date: type: string social_image: type: string format: url tag_list: type: array items: type: string tags: type: string slug: type: string path: type: string format: path url: type: string format: url canonical_url: type: string format: url positive_reactions_count: type: integer format: int32 public_reactions_count: type: integer format: int32 created_at: type: string format: date-time edited_at: type: - string - 'null' format: date-time crossposted_at: type: - string - 'null' format: date-time published_at: type: string format: date-time last_comment_at: type: string format: date-time published_timestamp: description: Crossposting or published date time type: string format: date-time reading_time_minutes: description: Reading time, in minutes type: integer format: int32 ai_disclosure_level: type: string enum: - not_disclosed - no_ai - some_ai - fully_autonomous description: Level of AI tooling usage disclosure ai_disclosure_label: type: string description: Human-readable label of AI disclosure user: $ref: '#/components/schemas/SharedUser' flare_tag: $ref: '#/components/schemas/ArticleFlareTag' organization: $ref: '#/components/schemas/SharedOrganization' required: - type_of - id - title - description - cover_image - readable_publish_date - social_image - tag_list - tags - slug - path - url - canonical_url - comments_count - positive_reactions_count - public_reactions_count - created_at - edited_at - crossposted_at - published_at - last_comment_at - published_timestamp - user - reading_time_minutes securitySchemes: api-key: type: apiKey name: api-key in: header description: "API Key authentication.\n\nAuthentication for some endpoints, like write operations on the\nArticles API require a DEV API key.\n\nAll authenticated endpoints are CORS disabled, the API key is intended for non-browser scripts.\n\n### Getting an API key\n\nTo obtain one, please follow these steps:\n\n - visit https://dev.to/settings/extensions\n - in the \"DEV API Keys\" section create a new key by adding a\n description and clicking on \"Generate API Key\"\n\n ![obtain a DEV API Key](https://user-images.githubusercontent.com/37842/172718105-bd93664e-76e0-477d-99c4-265dda0b06c5.png)\n\n - You'll see the newly generated key in the same view\n ![generated DEV API Key](https://user-images.githubusercontent.com/37842/172718151-e7fe26a0-9937-42e8-96c6-333acdab9e49.png)" apiKey: type: apiKey in: header name: api-key description: API key obtained from the DEV.to settings page. Pass in the api-key header for authenticated requests. bearer_auth: type: http scheme: bearer bearerFormat: JWT description: Short-lived RS256 RFC 9068 access token issued by the configured delegation service and verified against its configured JWKS. The issuer authorizes the client and requested operation before minting the token; Forem validates the token and resolves its subject and owner to a local user. An invalid token returns 401; an unavailable trust dependency with no usable cached key returns 503. x-refined-from: - openapi.json - openapi.yaml