openapi: 3.1.0 info: title: Dev.to Forem Articles DisplayAds API description: The Dev.to Forem API (v1) is a RESTful API that provides programmatic access to the Dev.to developer community platform, which is built on the open-source Forem framework. The API enables developers to create, read, update, and manage articles, comments, users, organizations, tags, followers, listings, podcast episodes, pages, display ads, reactions, reading lists, and webhooks. It uses API key authentication, requires an accept header of application/vnd.forem.api-v1+json, and returns JSON responses. Unauthenticated endpoints are CORS-enabled, making it possible to fetch public content directly from browser-based applications. version: 1.0.0 contact: name: Forem Support url: https://forem.com termsOfService: https://dev.to/terms servers: - url: https://dev.to/api description: Dev.to Production Server security: - apiKey: [] tags: - name: DisplayAds description: Endpoints for managing display advertisements on the platform. Requires admin-level API key. paths: /display_ads: get: operationId: getDisplayAds summary: Display ads description: Retrieves all display ads. Requires admin-level API key. tags: - DisplayAds responses: '200': description: A list of display ads content: application/json: schema: type: array items: $ref: '#/components/schemas/DisplayAd' '401': description: Unauthorized post: operationId: createDisplayAd summary: Create display ad description: Creates a new display ad. Requires admin-level API key. tags: - DisplayAds requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DisplayAd' responses: '201': description: Display ad created content: application/json: schema: $ref: '#/components/schemas/DisplayAd' '401': description: Unauthorized '422': description: Unprocessable Entity /display_ads/{id}: get: operationId: getDisplayAdById summary: Display ad description: Retrieves a single display ad by ID. Requires admin-level API key. tags: - DisplayAds parameters: - name: id in: path required: true schema: type: integer description: The ID of the display ad. responses: '200': description: The requested display ad content: application/json: schema: $ref: '#/components/schemas/DisplayAd' '401': description: Unauthorized '404': description: Display ad not found put: operationId: updateDisplayAd summary: Update display ad description: Updates an existing display ad. Requires admin-level API key. tags: - DisplayAds parameters: - name: id in: path required: true schema: type: integer description: The ID of the display ad. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DisplayAd' responses: '200': description: Display ad updated content: application/json: schema: $ref: '#/components/schemas/DisplayAd' '401': description: Unauthorized '404': description: Display ad not found '422': description: Unprocessable Entity /display_ads/{id}/unpublish: put: operationId: unpublishDisplayAd summary: Unpublish display ad description: Unpublishes a display ad by ID. Requires admin-level API key. tags: - DisplayAds parameters: - name: id in: path required: true schema: type: integer description: The ID of the display ad. responses: '204': description: Display ad unpublished '401': description: Unauthorized '404': description: Display ad not found components: schemas: DisplayAd: type: object description: A display advertisement on the platform. properties: id: type: integer description: The unique identifier of the display ad. name: type: string description: The name of the display ad. body_markdown: type: string description: The ad content in Markdown format. approved: type: boolean description: Whether the ad has been approved for display. published: type: boolean description: Whether the ad is currently published. organization_id: type: integer nullable: true description: The organization ID the ad belongs to. placement_area: type: string description: Where on the page the ad should be displayed. tag_list: type: string description: Comma-separated tags for targeting the ad. display_to: type: string enum: - all - logged_in - logged_out description: Who should see the ad. type_of: type: string description: The type of display ad (e.g. in_house, community, external). securitySchemes: 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. externalDocs: description: Forem API V1 Documentation url: https://developers.forem.com/api/v1