Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/rawveg/skillsforge-marketplace --skill forem-api명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | forem-api |
| description | Forem API |
Comprehensive assistance with Forem API (v1) development. Forem is the platform that powers DEV.to and other online communities. This skill provides guidance on interacting with articles, users, comments, organizations, tags, and more through the Forem REST API.
This skill should be triggered when:
Set up authentication headers for Forem API v1 requests:
# Required headers for authenticated requests
curl -X GET "https://dev.to/api/articles/me" \
-H "api-key: YOUR_API_KEY" \
-H "accept: application/vnd.forem.api-v1+json"
Key points:
dev.to/settings/extensionsapi-key header (not Authorization)accept: application/vnd.forem.api-v1+json header# Retrieve current user's profile information
curl -X GET "https://dev.to/api/users/me" \
-H "api-key: YOUR_API_KEY" \
-H "accept: application/vnd.forem.api-v1+json"
Response:
{
"type_of": "user",
"id": 1431,
"username": "username480",
"name": "User Name",
"twitter_username": "twitter_handle",
"github_username": "github_handle",
"joined_at": "Apr 14, 2023",
"profile_image": "/uploads/user/profile_image/..."
}
// Create and publish an article with tags
const response = await fetch('https://dev.to/api/articles', {
method: 'POST',
headers: {
'api-key': 'YOUR_API_KEY',
'accept': 'application/vnd.forem.api-v1+json',
'content-type': 'application/json'
},
body: JSON.stringify({
article: {
title: "Getting Started with Forem API",
description: "Learn how to integrate with Forem",
body_markdown: "## Introduction\n\n**Forem** is amazing!",
published: true,
tags: ["webdev", "api", "tutorial"]
}
})
});
const data = await response.json();
console.log(data.url); // https://dev.to/username/getting-started-...
Returns: Article object with id, slug, path, url, and published_timestamp
import requests
# Get JavaScript articles from the last 7 days
params = {
'tag': 'javascript',
'top': 7,
'per_page': 10,
'page': 1
}
response = requests.get(
'https://dev.to/api/articles',
params=params,
headers={'accept': 'application/vnd.forem.api-v1+json'}
)
articles = response.json()
for article in articles:
print(f"{article['title']} by {article['user']['name']}")
Query parameters:
tag - Filter by single tagtags - Multiple tags (comma-separated)username - Filter by authortop - Days since publicationper_page - Results per page (30-1000)page - Page number for pagination# Retrieve your unpublished articles
curl -X GET "https://dev.to/api/articles/me/unpublished" \
-H "api-key: YOUR_API_KEY" \
-H "accept: application/vnd.forem.api-v1+json"
Other endpoints:
/articles/me - All your articles/articles/me/published - Published only/articles/me/unpublished - Drafts only/articles/me/all - Everything including hiddenPUT /articles/{id}
Content-Type: application/json
Headers: api-key, accept
{
"article": {
"title": "Updated Title",
"body_markdown": "Updated content with **bold** text",
"published": true
}
}
# Get comments by article ID
response = requests.get(
'https://dev.to/api/comments',
params={'a_id': 123456},
headers={'accept': 'application/vnd.forem.api-v1+json'}
)
comments = response.json()
for comment in comments:
print(f"{comment['user']['name']}: {comment['body_html']}")
Query parameters:
a_id - Article IDp_id - Podcast episode ID# Add a "like" reaction to an article
curl -X POST "https://dev.to/api/reactions" \
-H "api-key: YOUR_API_KEY" \
-H "accept: application/vnd.forem.api-v1+json" \
-H "content-type: application/json" \
-d '{
"category": "like",
"reactable_id": 123456,
"reactable_type": "Article"
}'
Categories: like, unicorn, readinglist, thinking
# Fetch organization information and articles
curl -X GET "https://dev.to/api/organizations/forem" \
-H "accept: application/vnd.forem.api-v1+json"
# Get organization's published articles
curl -X GET "https://dev.to/api/organizations/forem/articles" \
-H "accept: application/vnd.forem.api-v1+json"
// Fetch popular tags from the platform
const response = await fetch('https://dev.to/api/tags', {
headers: { 'accept': 'application/vnd.forem.api-v1+json' }
});
const tags = await response.json();
tags.forEach(tag => {
console.log(`${tag.name} - ${tag.bg_color_hex}`);
});
application/vnd.forem.api-v1+json)All responses use JSON format with consistent structure:
type_of - Resource type (article, user, comment, etc.)id - Unique identifierFollow best practices to avoid rate limits:
Most list endpoints support pagination:
page - Page number (starts at 1)per_page - Items per page (typically 30-1000, default 30)200 - Success (GET, PUT)201 - Created (POST)204 - No Content (DELETE, unpublish)401 - Unauthorized (invalid API key)404 - Not Found422 - Unprocessable Entity (validation errors)This skill includes comprehensive documentation in references/:
Use view or read the reference file directly when you need:
dev.to/settings/extensionsGET /articles or GET /users/{username} without authapi-key and accept headerspublished: false), review, then update to publishbody_markdown field with full Markdown syntaxPOST /articles - Publish new articleGET /articles - Get published articles (paginated)GET /articles/{id} - Get specific articlePUT /articles/{id} - Update articleGET /articles/me - Your articlesPUT /articles/{id}/unpublish - Unpublish articleGET /users/me - Current user infoGET /users/{id} - User by ID/usernameGET /comments - Get comments by article/episodeGET /comments/{id} - Specific comment with descendantsGET /organizations/{username} - Organization detailsGET /organizations/{username}/articles - Organization's articlesGET /organizations/{username}/users - Organization membersGET /tags - Available tagsGET /follows/tags - User's followed tagsGET /followers/users - User's followersPOST /reactions - Create reactionPOST /reactions/toggle - Toggle reactionGET /readinglist - User's reading listdev.to/settings/extensions or your Forem instance settingsapplication/vnd.forem.api-v1+json accept headerapi-key and accept)body_markdown for rich content