# DEV Community integration

> Publish and manage articles, read the feed, comments, tags, reactions, followers and analytics on DEV (dev.to) through the Forem API v1.

- Authentication: apiKey

## Tools (61)

- **An organization (by id)**: This endpoint allows the client to retrieve a single organization by their id
- **An organization (by username)**: Retrieve public profile information for a single organization by its username. ### Integration Tip: - Bypasses authentication.
- **Articles in a Trend**: Retrieve a list of published articles belonging to a trend. ### Article Ordering & Proximity: - Articles are mapped to trends based on their embedding distance to the trend's centroid.
- **Articles with a video**: Retrieve a list of articles that contain uploaded videos. ### Videos Overview: - Bypasses authentication (can be accessed publicly). - Returns articles that are published and include a video asset.
- **A Trend**: Retrieve details of a single trend using either its numeric ID or unique slug.
- **A User**: This endpoint allows the client to retrieve a single user, either by id or by the user's username. ### Path Parameter Options: - **id**: Can be either the user's unique numerical ID (e.g. `123`) OR the user's string username (e.g. `ben`).
- **A Users or organizations profile image**: Retrieve the profile image URL and configuration for a user or organization by username. ### Integration Details: - Bypasses authentication.
- **Check app health**: Basic application liveness check. ### Usage Guidance: - Verifies that the Rails application process is running and responding to requests. - Does not check database or cache connectivity.
- **Check cache connection**: Cache connection health check. ### Usage Guidance: - Verifies that the application can successfully ping the Redis cache instance.
- **Check database connection**: Database connection health check. ### Usage Guidance: - Verifies that the application can successfully query the primary PostgreSQL database.
- **Comment by id**: This endpoint allows the client to retrieve a specific comment and all of its nested descendant replies.
- **Comments**: Retrieve all comments belonging to an article or podcast episode as threaded conversations.
- **Followed Tags**: Retrieve the list of tags followed by the authenticated user. ### Integration & Personalization Guidance: - Requires authentication. - Returns tags in ascending/popularity order based on user interactions.
- **Followers**: This endpoint allows the client to retrieve a list of the followers they have. ### Integration & Pagination Guidance: - "Followers" are other users registered on the platform who follow the authenticated user.
- **Follow users or organizations**: Follow users or organizations in bulk on behalf of the authenticated user. ### Bulk Update Behavior: - Accepts arrays of `user_ids` and `organization_ids` in the request body. - Performs follow actions for all provided identifiers.
- **Generate an image with AI**: Generate an image from a text prompt and get back a URL hosted by this Forem. The image follows this Forem's cover image style and, unless `aspect_ratio` is given, is sized for its cover images.
- **List the authenticated user's agent sessions**: Retrieve a list of the authenticated user's agent sessions. ### Agent Sessions Overview: - Agent sessions represent coding conversation transcripts uploaded from CLI tools (like Claude Code).
- **Organizations**: This endpoint allows the client to retrieve a list of Dev organizations. It supports pagination, each page will contain 10 tags by default.
- **Organization's Articles**: Retrieve a list of articles published by the organization. ### Path Parameter Options: - **organization_id_or_username**: Supports either the organization's unique numerical ID OR its string username (slug).
- **Organization's users**: Retrieve a list of public user profiles associated with the organization. ### Path Parameter Options: - **organization_id_or_username**: Supports either the organization's unique numerical ID OR its string username (slug).
- **Perform a semantic fuzzy search on articles**: Allows authenticated clients to search articles using Forem's semantic embeddings database.
- **Perform a semantic fuzzy search on concepts**: Allows authenticated clients to search concepts using Forem's semantic embeddings database.
- **Podcast Episodes**: Retrieve a list of podcast episodes published on the platform. ### Integration Guidance: - Bypasses authentication (can be accessed publicly). - Only returns active episodes belonging to published/reachable podcasts.
- **Publish article**: This endpoint allows the client to create a new article. "Articles" are all the posts that users create on DEV/Forem that typically show up in the feed. They can be a blog post, a discussion question, a help thread etc.
- **Published article by id**: This endpoint allows the client to retrieve a single published article given its unique numerical `id`. ### Integration Tip: - Returns the complete serialized article object including its HTML/markdown representation, tags, and author profile details.
- **Published article by path**: This endpoint allows the client to retrieve a single published article given its `username` and `slug` (the URL-friendly path identifier).
- **Published articles**: This endpoint allows the client to retrieve a list of articles. "Articles" are all the posts that users create on DEV/Forem that typically show up in the feed. They can be a blog post, a discussion question, a help thread etc.
- **Published articles sorted by published date**: This endpoint allows the client to retrieve a list of articles ordered strictly by descending publication date. ### Usage Tips: - Bypasses all Forem/DEV feed personalization and popularity algorithms.
- **Readinglist**: Retrieve the list of articles saved to the authenticated user's reading list. ### Integration Guidance: - Requires authentication. - Under the hood, this endpoint retrieves articles that the user has reacted to with the `"save"` reaction category.
- **Request a presigned S3 GET URL to download the raw session transcript**: Retrieve a temporary presigned GET URL to download the original raw transcript file from S3.
- **Request a presigned URL to upload raw session transcript to S3**: Generate an S3 presigned PUT URL and object key for uploading raw session transcripts directly to S3.
- **Retrieve all accessible concepts**: Retrieve all accessible concepts in the system. ### Concepts Overview: - Concepts are semantic tags generated automatically by analyzing article text using ML embeddings (`gemini-embedding-2`), rather than explicit user tags.
- **Retrieve all discoverable subforems**: Retrieve a list of all discoverable subforems/communities. ### Subforems Overview: - Subforems represent distinct sub-communities or specialized sections hosted within the Forem instance. - Bypasses authentication (can be accessed publicly).
- **Retrieve analytics for the past day**: Retrieve real-time hourly analytics statistics for the last 24 hours. Used for live graphs.
- **Retrieve analytics totals**: Retrieve aggregated lifetime stats (views, reactions, comments) for articles. ### Scope Control: - Specify `article_id` to query a single post's metrics.
- **Retrieve an event**: Retrieve a single event by ID.
- **Retrieve articles mapped to a concept**: Retrieve articles classified under this concept. ### Parameter Guidelines: - **sort**: Set to `score` to sort articles by article popularity score descending.
- **Retrieve dashboard analytics bundle**: Retrieve a complete bundled metrics package (totals, history, top posts) for rendering dashboard landing pages.
- **Retrieve details of a concept**: Retrieve details, settings, and popularity metrics of a single concept by ID. ### Integration Tip: - Includes the semantic description, similarity thresholds, parent concept mappings, and scores.
- **Retrieve events**: Retrieve a list of events on the platform. ### Query Parameters: - **type_of**: Filter events by their type (`live_stream`, `takeover`, `other`, `challenge`).
- **Retrieve follower engagement analytics**: Retrieve stats detailing new follower growth and engagement over time.
- **Retrieve heatmap activity**: Retrieve user activity heatmap metrics (commits, posts, reactions) grouped by weekdays and hours.
- **Retrieve historical analytics**: Retrieve historical analytics data graphed over a time range. ### Time Range Formats: - **start**: Start date (e.g. `2024-01-01`). Required. - **end**: End date (e.g. `2024-01-31`).
- **Retrieve instance configuration details**: Retrieve configuration details for the current Forem instance. ### Instance Metadata: - Bypasses authentication.
- **Retrieve referrer analytics**: Retrieve traffic referring domains and URL source tracking metrics for articles.
- **Retrieve top contributors analytics**: Retrieve top organization contributors ordered by article engagement scores.
- **Search for articles**: This endpoint allows the client to search for articles. ### Search Guidance: - **q**: The search query term. Matches against article titles, tags, and body content. - **top**: Restricts search results to articles published within the last `N` days.
- **Show details for all pages**: Retrieve details for all Page objects in the system. ### Pages Overview: - Pages are custom static or dynamic views hosted on the Forem instance. - Publicly visible unless restricted.
- **Show details for an agent session**: Retrieve details for a single agent session by unique slug or ID.
- **Show details for a page**: Retrieve details for a single Page object specified by ID.
- **Supported tags**: Retrieve every tag supported on the platform (or current subforem), ordered by popularity. ### Integration Tips: - Bypasses authentication (can be accessed publicly). - Not paginated: returns the complete list of supported tags in a single response.
- **Tags**: Retrieve a list of tags used on the platform, ordered by popularity. ### Integration Tips: - Bypasses authentication (can be accessed publicly). - Ordered by overall popularity/usage metrics on the platform.
- **The authenticated user**: Retrieve the profile of the user that owns the API key.
- **Trends**: Retrieve a list of active trends. ### Trends Overview & Score Calculation: - Trends represent hot topics or semantic themes currently being heavily discussed in the community.
- **Update an article by id**: This endpoint allows the client to update an existing article by its unique numerical `id`. ### Authorization Constraints: - The API key provided must belong to the author of the article.
- **Upload a new agent session**: Upload a new agent session. ### S3 Upload Workflow: 1. Call the S3 presign endpoint to obtain a direct upload URL for the raw session transcript file. 2. Upload the raw transcript to S3. 3.
- **Upload an image**: Upload an image and get back a URL hosted by this Forem. ### Using the URL: - Embed it in an article's `body_markdown`, e.g. `![A description](URL)`. - Set it as an article's cover image by passing it as `main_image` when creating or updating an article.
- **User's all articles**: This endpoint allows the client to retrieve a list of all articles on behalf of an authenticated user. "Articles" are all the posts that users create on DEV that typically show up in the feed. They can be a blog post, a discussion question, a help thread etc.
- **User's articles**: This endpoint allows the client to retrieve a list of published articles on behalf of an authenticated user. "Articles" are all the posts that users create on DEV that typically show up in the feed.
- **User's published articles**: This endpoint allows the client to retrieve a list of published articles on behalf of an authenticated user. "Articles" are all the posts that users create on DEV that typically show up in the feed.
- **User's unpublished articles**: This endpoint allows the client to retrieve a list of unpublished articles on behalf of an authenticated user. "Articles" are all the posts that users create on DEV that typically show up in the feed.

Connect DEV Community in General Input: https://www.generalinput.com/apps/dev-to