SourceForge Blog API

Project blog post management

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sourceforge-blog-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sourceforge-blog-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: SourceForge Allura Admin Blog API
  description: The SourceForge REST API provides programmatic access to project management, wikis, issue trackers, discussions, blogs, and administrative functions. All endpoints are prefixed with /rest/ and follow the project tool path pattern. Supports OAuth 2.0 and OAuth 1.0 authentication.
  version: v1
  contact:
    name: SourceForge Support
    url: https://sourceforge.net/p/forge/documentation/API/
  license:
    name: Apache License 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://sourceforge.net
  description: SourceForge REST API
security:
- BearerAuth: []
tags:
- name: Blog
  description: Project blog post management
paths:
  /rest/p/{project}/{blog}:
    get:
      operationId: listBlogPosts
      summary: List Blog Posts
      description: List all blog posts for a project.
      tags:
      - Blog
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/BlogTool'
      responses:
        '200':
          description: List of blog posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogPostsResponse'
    post:
      operationId: createBlogPost
      summary: Create Blog Post
      description: Create a new blog post for the project.
      tags:
      - Blog
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/BlogTool'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BlogPostRequest'
      responses:
        '200':
          description: Blog post created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogPostResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
  /rest/p/{project}/{blog}/{year}/{month}/{title}:
    get:
      operationId: getBlogPost
      summary: Get Blog Post
      description: Retrieve a specific blog post.
      tags:
      - Blog
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/BlogTool'
      - name: year
        in: path
        required: true
        schema:
          type: integer
      - name: month
        in: path
        required: true
        schema:
          type: integer
      - name: title
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Blog post details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogPostResponse'
    post:
      operationId: updateBlogPost
      summary: Update Blog Post
      description: Update an existing blog post.
      tags:
      - Blog
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/BlogTool'
      - name: year
        in: path
        required: true
        schema:
          type: integer
      - name: month
        in: path
        required: true
        schema:
          type: integer
      - name: title
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BlogPostRequest'
      responses:
        '200':
          description: Blog post updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogPostResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
components:
  schemas:
    BlogPostRequest:
      type: object
      required:
      - title
      - text
      properties:
        title:
          type: string
        text:
          type: string
        labels:
          type: string
    BlogPostResponse:
      type: object
      properties:
        post:
          $ref: '#/components/schemas/BlogPost'
    BlogPostsResponse:
      type: object
      properties:
        posts:
          type: array
          items:
            $ref: '#/components/schemas/BlogPost'
    BlogPost:
      type: object
      properties:
        title:
          type: string
        text:
          type: string
        labels:
          type: array
          items:
            type: string
        timestamp:
          type: string
          format: date-time
        author:
          type: string
  parameters:
    BlogTool:
      name: blog
      in: path
      required: true
      description: Blog tool mount point (e.g., blog)
      schema:
        type: string
    ProjectId:
      name: project
      in: path
      required: true
      description: Project shortname/identifier
      schema:
        type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth2 Bearer token
    OAuth1:
      type: apiKey
      in: header
      name: Authorization
      description: OAuth 1.0 authorization header