Eclipse Projects API

REST API exposing Eclipse Foundation project metadata, releases, committers, and project lifecycle data.

Operations 12

GET /api/projects Fetch Projects #
GET /api/projects/{project_id} Retrieve a Project #
GET /api/projects/{project_id}/releases Fetch Releases for a Project #
GET /api/projects/{project_id}/reviews Fetch Reviews for a Project #
GET /api/proposals Fetch Proposals #
GET /api/proposals/{nid} Retrieve a Proposal #
GET /api/interest-groups Fetch Interest Groups #
GET /api/interest-groups/{nid} Retrieve an Interest Group #
GET /api/github Fetch GitHub Repositories for all Projects #
GET /api/github/{project_id} Fetch GitHub Repositories for a Project #
GET /api/simultaneous_release Fetch all Simultaneous Releases #
GET /api/simultaneous_release/{simrel} Retrieve a Simultaneous Release #

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/projects-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

eclipse-projects-pmi-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Eclipse Project Management Infrastructure (PMI) RESTful API
  description: |
    This describes the resources that make up the Eclipse Project Management Infrastructure (PMI) REST API.
    You can contribute to this document via our [git repository](https://gitlab.eclipse.org/eclipsefdn/it/websites/projects.eclipse.org).
    If you have any problems or requests please submit an [issue](https://gitlab.eclipse.org/eclipsefdn/it/websites/projects.eclipse.org/-/issues).

    ### Rate Limit
    This API currently limits users to 1000 authenticated requests and 1000 anonymous requests an hour.
    ### Pagination
    Information about pagination is provided in the Link header of an API call. For example, let's make a curl request to the eclipse_profile API, to find out how many org_eclipse_oomph records exist for the user:
    ```
    curl -I \"https://projects.eclipse.org/api/projects?page=1&pagesize=20\"
    ```
    The -I parameter indicates that we only care about the headers, not the content. In examining the result, you'll notice some information in the Link header that looks like this:
    ```
    <https://projects.eclipse.org/api/projects?page=2&amp;pagesize=2>; rel="next",
    <https://projects.eclipse.org/api/projects?page=27&amp;pagesize=2>; rel="last",
    <https://projects.eclipse.org/api/projects?page=1&amp;pagesize=2>; rel="first",
    <https://projects.eclipse.org/api/projects?page=1&amp;pagesize=2>; rel="self"
    ```
    Let's break that down. rel=\"next\" says that the next page is page=2. This makes sense, since by default, all paginated queries start at page 1. rel=\"last\" provides some more information, stating that the last page of results is on page 27.
    Keep in mind that you should always rely on these link relations provided to you. Don't try to guess or construct your own URL.

    ### Error States
    The common [HTTP Response Status Codes](https://github.com/for-GET/know-your-http-well/blob/master/status-codes.md) are used.
  contact: {}
  version: '1.0'
servers:
- url: https://projects.eclipse.org
  description: The production API server
paths:
  /api/projects:
    get:
      tags:
      - Projects
      summary: Fetch Projects
      description: |-
        ### Overview

        Retrieve metadata for all projects.
      operationId: FetchProjects
      parameters:
      - name: github_only
        in: query
        description: Select only the projects that have GitHub repositories or a GitHub organisation defined.
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: gitlab_only
        in: query
        description: Select only the projects that have GitLab repositories defined.
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: spec_project
        in: query
        description: Filter to specification projects only. Set to any non-zero integer to enable the filter.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: spec_project_working_group
        in: query
        description: Filter projects by their specification project working group ID (e.g. `jakarta-ee`).
        style: form
        explode: true
        schema:
          type: string
      - name: working_group
        in: query
        description: Filter projects by their associated working group ID.
        style: form
        explode: true
        schema:
          type: string
      - name: industry_collaboration
        in: query
        description: Filter projects by their associated industry collaboration (working group) ID.
        style: form
        explode: true
        schema:
          type: string
      - name: technology_types
        in: query
        description: Filter projects by technology type name.
        style: form
        explode: true
        schema:
          type: string
      - name: state
        in: query
        description: 'Filter projects by state. Accepted values: `Regular`, `Archived`, `Incubating` (case-insensitive). Multiple
          values may be passed as a comma-separated list, e.g. `state=Regular,Incubating`. Values outside the allowed set
          are silently ignored.'
        style: form
        explode: true
        schema:
          type: string
      - name: page
        in: query
        description: The index of the page to retrieve, defaults to 1.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 1
          minimum: 1
      - name: pagesize
        in: query
        description: The number of records to get per page, defaults to 20. Maximum value is 100.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 20
          minimum: 1
          maximum: 100
      - name: order_by
        in: query
        description: 'The order in which results are returned. Defaults to `ASC`. Accepted values: `ASC`, `DESC`, `RANDOM`.
          When `RANDOM` is used the response is cached for 5 hours.'
        style: form
        explode: true
        schema:
          type: string
          default: ASC
      responses:
        '200':
          description: Array of projects matching the query.
          headers:
            Link:
              schema:
                type: string
              example: <https://projects.eclipse.org/api/projects?page=2&pagesize=20>; rel="next", <https://projects.eclipse.org/api/projects?page=27&pagesize=20>;
                rel="last", <https://projects.eclipse.org/api/projects?page=1&pagesize=20>; rel="first", <https://projects.eclipse.org/api/projects?page=1&pagesize=20>;
                rel="self"
            X-Rate-Limit-Limit:
              schema:
                type: integer
                format: int32
              example: 1000
            X-Rate-Limit-Remaining:
              schema:
                type: integer
                format: int32
              example: 964
            X-Rate-Limit-Reset:
              schema:
                type: integer
                format: int32
              example: 3553
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FetchProjectsresponse'
                description: ''
              example:
              - nid: 123
                project_id: ee4j.batch
                short_project_id: batch
                name: Jakarta Batch
                summary: The Jakarta Batch project defines and maintains the Jakarta Batch specification.
                url: https://projects.eclipse.org/projects/ee4j.batch
                website_url: https://projects.eclipse.org/projects/ee4j.batch
                website_repo: ''
                logo: ''
                tags: []
                licenses:
                - name: Eclipse Public License 2.0
                  short_name: EPL-2.0
                  url: https://www.eclipse.org/legal/epl-2.0/
                github_repos:
                - url: https://github.com/eclipse-ee4j/batch-api
                - url: https://github.com/eclipse-ee4j/batch-tck
                github:
                  org: eclipse-ee4j
                  ignored_repos: []
                gitlab_repos: []
                gitlab:
                  project_group: ''
                  ignored_sub_groups: []
                gerrit_repos: []
                contributors: []
                committers:
                - username: acommitter
                  full_name: A Committer
                  url: https://api.eclipse.org/account/profile/acommitter
                project_leads:
                - username: aprojectlead
                  full_name: A Project Lead
                  url: https://api.eclipse.org/account/profile/aprojectlead
                working_groups:
                - name: Jakarta EE
                  id: jakarta-ee
                industry_collaborations:
                - name: Jakarta EE
                  id: jakarta-ee
                technology_types: []
                spec_project_working_group:
                  name: Jakarta EE
                  id: jakarta-ee
                state: Regular
                provisioned: true
                latest_release_name: '3.0'
                releases: https://projects.eclipse.org/api/projects/ee4j.batch/releases
                top_level_project: ee4j
                slsa:
                  build_level: ''
                dev_list:
                  name: ee4j-batch-dev
                  email: ee4j-batch-dev@eclipse.org
                  url: https://accounts.eclipse.org/mailing-list/ee4j-batch-dev
                mailing_lists: []
                reviews: https://projects.eclipse.org/api/projects/ee4j.batch/reviews
                documentation_url: ''
                gettingstarted_url: ''
                download_url: ''
                scope: |+
                  <p><strong>Project Scope:</strong> The Jakarta Batch project defines and maintains the Jakarta Batch specification and related artifacts.</p>

                security_team:
                  individual_members: []
                  groups:
                    include_committers: true
                    include_project_leads: false
  /api/projects/{project_id}:
    get:
      tags:
      - Projects
      summary: Retrieve a Project
      description: |-
        ### Overview

        Retrieve information for a specific project.

        **Note** that underscores in a project ID are treated as dots (e.g. `technology_dash` resolves to `technology.dash`). A `.json` suffix is also accepted and stripped.

        ### Examples:

        * https://projects.eclipse.org/api/projects/technology_dash
        * https://projects.eclipse.org/api/projects/ecd_che
      operationId: RetrieveAProject
      parameters:
      - name: project_id
        in: path
        description: ID of the project. Underscores are treated as dots (e.g. `technology_dash` → `technology.dash`). A `.json`
          suffix is accepted and stripped.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '200':
          description: An array containing the matching project (with full HTML description).
          headers:
            X-Rate-Limit-Limit:
              description: The rate limit ceiling for the requester.
              schema:
                type: integer
                format: int32
              example: 1000
            X-Rate-Limit-Remaining:
              description: The number of requests left in the current rate-limit window.
              schema:
                type: integer
                format: int32
              example: 964
            X-Rate-Limit-Reset:
              description: The number of seconds left until the rate-limit window resets.
              schema:
                type: integer
                format: int32
              example: 3553
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RetrieveaProjectresponse'
                description: ''
              example:
              - nid: 123
                project_id: ee4j.batch
                short_project_id: batch
                name: Jakarta Batch
                summary: The Jakarta Batch project defines and maintains the Jakarta Batch specification.
                description: |+
                  <p><strong>Project Scope:</strong> The Jakarta Batch project defines and maintains the Jakarta Batch specification and related artifacts.</p>

                url: https://projects.eclipse.org/projects/ee4j.batch
                website_url: https://projects.eclipse.org/projects/ee4j.batch
                website_repo: ''
                logo: ''
                tags: []
                licenses:
                - name: Eclipse Public License 2.0
                  short_name: EPL-2.0
                  url: https://www.eclipse.org/legal/epl-2.0/
                github_repos:
                - url: https://github.com/eclipse-ee4j/batch-api
                - url: https://github.com/eclipse-ee4j/batch-tck
                github:
                  org: eclipse-ee4j
                  ignored_repos: []
                gitlab_repos: []
                gitlab:
                  project_group: ''
                  ignored_sub_groups: []
                gerrit_repos: []
                contributors: []
                committers:
                - username: acommitter
                  full_name: A Committer
                  url: https://api.eclipse.org/account/profile/acommitter
                project_leads:
                - username: aprojectlead
                  full_name: A Project Lead
                  url: https://api.eclipse.org/account/profile/aprojectlead
                working_groups:
                - name: Jakarta EE
                  id: jakarta-ee
                industry_collaborations:
                - name: Jakarta EE
                  id: jakarta-ee
                technology_types: []
                spec_project_working_group:
                  name: Jakarta EE
                  id: jakarta-ee
                state: Regular
                provisioned: true
                latest_release_name: '3.0'
                releases: https://projects.eclipse.org/api/projects/ee4j.batch/releases
                top_level_project: ee4j
                slsa:
                  build_level: ''
                dev_list:
                  name: ee4j-batch-dev
                  email: ee4j-batch-dev@eclipse.org
                  url: https://accounts.eclipse.org/mailing-list/ee4j-batch-dev
                mailing_lists: []
                reviews: https://projects.eclipse.org/api/projects/ee4j.batch/reviews
                documentation_url: ''
                gettingstarted_url: ''
                download_url: ''
                scope: |+
                  <p><strong>Project Scope:</strong> The Jakarta Batch project defines and maintains the Jakarta Batch specification and related artifacts.</p>

                security_team:
                  individual_members: []
                  groups:
                    include_committers: true
                    include_project_leads: false
        '404':
          $ref: '#/components/responses/NotFound'
  /api/projects/{project_id}/releases:
    get:
      tags:
      - Projects
      summary: Fetch Releases for a Project
      description: |-
        ### Overview

        Retrieve a paginated list of releases associated with the given project.
      operationId: FetchProjectReleases
      parameters:
      - name: project_id
        in: path
        description: ID of the project. Underscores are treated as dots.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: page
        in: query
        description: The index of the page to retrieve, defaults to 1.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 1
          minimum: 1
      - name: pagesize
        in: query
        description: The number of records to get per page, defaults to 20. Maximum value is 100.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 20
          minimum: 1
          maximum: 100
      - name: order_by
        in: query
        description: 'The order in which results are returned. Defaults to `ASC`. Accepted values: `ASC`, `DESC`.'
        style: form
        explode: true
        schema:
          type: string
          default: ASC
      responses:
        '200':
          description: A wrapper object containing the paginated releases.
          headers:
            Link:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleasesResponse'
              example:
                releases:
                - name: '3.0'
                  url: https://projects.eclipse.org/projects/ee4j.batch/releases/3.0
                  date: '2022-05-31'
                  type: 1
                  downloads:
                    tracked: false
                    associated_files: []
        '404':
          $ref: '#/components/responses/NotFound'
  /api/projects/{project_id}/reviews:
    get:
      tags:
      - Projects
      summary: Fetch Reviews for a Project
      description: |-
        ### Overview

        Retrieve a paginated list of reviews associated with the given project.
      operationId: FetchProjectReviews
      parameters:
      - name: project_id
        in: path
        description: ID of the project. Underscores are treated as dots.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: page
        in: query
        description: The index of the page to retrieve, defaults to 1.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 1
          minimum: 1
      - name: pagesize
        in: query
        description: The number of records to get per page, defaults to 20. Maximum value is 100.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 20
          minimum: 1
          maximum: 100
      - name: order_by
        in: query
        description: 'The order in which results are returned. Defaults to `ASC`. Accepted values: `ASC`, `DESC`.'
        style: form
        explode: true
        schema:
          type: string
          default: ASC
      responses:
        '200':
          description: A wrapper object containing the paginated reviews.
          headers:
            Link:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewsResponse'
              example:
                reviews:
                - id: 456
                  slides_url: https://projects.eclipse.org/projects/ee4j.batch/reviews/release-review-3.0
                  review_date: '2022-04-13'
                  review_name: Release 3.0
                  status: success
                  date: '2022-04-13'
                  summary: The committer team proposes releasing Jakarta Batch 3.0.
        '404':
          $ref: '#/components/responses/NotFound'
  /api/proposals:
    get:
      tags:
      - Proposals
      summary: Fetch Proposals
      description: |-
        ### Overview

        Retrieve a paginated list of Eclipse project proposals.

        Unlike the projects index, pagination metadata is included in the response body alongside the `result` array, in addition to the `Link` header.
      operationId: FetchProposals
      parameters:
      - name: spec_project
        in: query
        description: Filter to specification projects only. Set to any non-zero integer to enable.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: spec_project_working_group
        in: query
        description: Filter by specification project working group ID.
        style: form
        explode: true
        schema:
          type: string
      - name: industry_collaboration
        in: query
        description: Filter by industry collaboration (working group) ID.
        style: form
        explode: true
        schema:
          type: string
      - name: state
        in: query
        description: Filter by proposal state (case-insensitive). Accepts a single value (`state=Active`) or an array (`state[]=Active&state[]=Draft`).
        style: form
        explode: true
        schema:
          type: string
      - name: page
        in: query
        description: The index of the page to retrieve, defaults to 1.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 1
          minimum: 1
      - name: pagesize
        in: query
        description: The number of records to get per page, defaults to 20. Maximum value is 100.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 20
          minimum: 1
          maximum: 100
      - name: order_by
        in: query
        description: 'The order in which results are returned. Defaults to `ASC`. Accepted values: `ASC`, `DESC`, `RANDOM`.'
        style: form
        explode: true
        schema:
          type: string
          default: ASC
      responses:
        '200':
          description: A paginated wrapper object containing the proposals and pagination metadata.
          headers:
            Link:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposalsIndexResponse'
              example:
                result:
                - id: 789
                  project_id: technology.new-project
                  name: New Eclipse Project Proposal
                  parent: technology
                  top_level_project: technology
                  industry_collaborations: []
                  state: Active
                  summary: A short plain-text summary of the proposal.
                  scope: ''
                  background: ''
                  date: '2023-06-01'
                  url: https://projects.eclipse.org/proposals/new-project
                  project_url: ''
                  spec_project: []
                  committers: []
                  project_leads: []
                  patent_license: ''
                  licenses:
                  - Eclipse Public License 2.0
                  repo_type: Git
                  repos:
                  - https://github.com/eclipse/new-project
                pagination:
                  page: 1
                  pagesize: 20
                  result_start: 1
                  result_end: 1
                  result_size: 1
                  total_result_size: 1
  /api/proposals/{nid}:
    get:
      tags:
      - Proposals
      summary: Retrieve a Proposal
      description: |-
        ### Overview

        Retrieve a single Eclipse project proposal by its Drupal node ID.
      operationId: RetrieveAProposal
      parameters:
      - name: nid
        in: path
        description: The Drupal node ID of the proposal.
        required: true
        style: simple
        explode: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: An array containing the matching proposal.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Proposal'
              example:
              - id: 789
                project_id: technology.new-project
                name: New Eclipse Project Proposal
                parent: technology
                top_level_project: technology
                industry_collaborations: []
                state: Active
                summary: A short plain-text summary of the proposal.
                scope: ''
                background: ''
                date: '2023-06-01'
                url: https://projects.eclipse.org/proposals/new-project
                project_url: ''
                spec_project: []
                committers: []
                project_leads: []
                patent_license: ''
                licenses:
                - Eclipse Public License 2.0
                repo_type: Git
                repos:
                - https://github.com/eclipse/new-project
        '404':
          $ref: '#/components/responses/NotFound'
  /api/interest-groups:
    get:
      tags:
      - Interest Groups
      summary: Fetch Interest Groups
      description: |-
        ### Overview

        Retrieve a paginated list of Eclipse Interest Groups.
      operationId: FetchInterestGroups
      parameters:
      - name: project_id
        in: query
        description: Filter interest groups by their Foundation DB project ID (the `field_ig_foundationdb_id` field value).
        style: form
        explode: true
        schema:
          type: string
      - name: page
        in: query
        description: The index of the page to retrieve, defaults to 1.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 1
          minimum: 1
      - name: pagesize
        in: query
        description: The number of records to get per page, defaults to 20. Maximum value is 100.
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 20
          minimum: 1
          maximum: 100
      - name: order_by
        in: query
        description: 'The order in which results are returned. Defaults to `ASC`. Accepted values: `ASC`, `DESC`.'
        style: form
        explode: true
        schema:
          type: string
          default: ASC
      responses:
        '200':
          description: Array of interest groups matching the query.
          headers:
            Link:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InterestGroup'
              example:
              - id: 1001
                title: Some Interest Group
                description:
                  summary: Short description.
                  full: <p>Full description.</p>
                logo: ''
                scope:
                  summary: ''
                  full: ''
                leads: []
                participants: []
                project_id: foundation-internal.ig.some-group
                short_project_id: some-group
                state: active
                gitlab:
                  project_group: eclipse-ig/some-group
                  ignored_sub_groups: []
                resources:
                  website: ''
                  members: ''
                mailing_list: ''
  /api/interest-groups/{nid}:
    get:
      tags:
      - Interest Groups
      summary: Retrieve an Interest Group
      description: |-
        ### Overview

        Retrieve a single Eclipse Interest Group by its Drupal node ID.
      operationId: RetrieveAnInterestGroup
      parameters:
      - name: nid
        in: path
        description: The Drupal node ID of the interest group.
        required: true
        style: simple
        explode: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: The matching interest group.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InterestGroup'
              example:
                id: 1001
                title: Some Interest Group
                description:
                  summary: Short description.
                  full: <p>Full description.</p>
                logo: ''
                scope:
                  summary: ''
                  full: ''
                leads: []
                participants: []
                project_id: foundation-internal.ig.some-group
                short_project_id: some-group
                state: active
                gitlab:
                  project_group: eclipse-ig/some-group
                  ignored_sub_groups: []
                resources:
                  website: ''
                  members: ''
                mailing_list: ''
        '404':
          $ref: '#/components/responses/NotFound'
  /api/github:
    get:
      tags:
      - GitHub
      summary: Fetch GitHub Repositories for all Projects
      description: |-
        ### Overview

        Returns a map of Eclipse project IDs to their associated GitHub repositories. Optionally filter by a specific repository name substring.
      operationId: FetchGithubRepos
      parameters:
      - name: repo
        in: query
        description: Filter by repository path (org/repo, e.g. `eclipse-ee4j/batch-api`). A `LIKE '%<value>'` pattern is applied,
          so a partial trailing match is sufficient.
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: A map of project IDs to their GitHub repository data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GithubIndexResponse'
              example:
                ee4j.batch:
                  repos:
                  - eclipse-ee4j/batch-api
                  - eclipse-ee4j/batch-tck
                  specification_project: true
  /api/github/{project_id}:
    get:
      tags:
      - GitHub
      summary: Fetch GitHub Repositories for a Project
      description: |-
        ### Overview

        Returns the GitHub repositories for a specific Eclipse project. Underscores in `project_id` are treated as dots.
      operationId: FetchGithubReposByProject
      parameters:
      - name: project_id
        in: path
        description: ID of the project. Underscores are treated as dots.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '200':
          description: A map containing the GitHub repositories for the given project (empty map if not found).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GithubIndexResponse'
              example:
                ee4j.batch:
                  repos:
                  - eclipse-ee4j/batch-api
                  - eclipse-ee4j/batch-tck
                  specification_project: true
  /api/simultaneous_release:
    get:
      tags:
      - Simultaneous Releases
      summary: Fetch all Simultaneous Releases
      description: |-
        ### Overview

        Returns a map of all simultaneous releases (Eclipse release trains), keyed by the release URL slug (e.g. `2023-12`).
      operationId: FetchSimultaneousReleases
      responses:
        '200':
          description: A map of simultaneous release slugs to their release data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimultaneousReleasesMap'
              example:
                2023-12:
                  release_date: 1701388800
                  previous_release:
                    release_name: 2023-09
                    release_url: https://projects.eclipse.org/api/simultaneous_release/2023-09
                  projects:
                    eclipse.platform:
                      project_name: Eclipse Platform
                      new_and_noteworthy_url: https://eclipse.dev/platform/noteworthy/4.29/
      deprecated: true
  /api/simultaneous_release/{simrel}:
    get:
      tags:
      - Simultaneous Releases
      summary: Retrieve a Simultaneous Release
      description: |-
        ### Overview

        Returns a specific simultaneous release (Eclipse release train) by its URL slug.
      operationId: RetrieveSimultaneousRelease
      parameters:
      - name: simrel
        in: path
        description: The URL slug of the simultaneous release (e.g. `2023-12`).
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '200':
          description: A map containing the requested simultaneous release.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimultaneousReleasesMap'
              example:
                2023-12:
                  release_date: 1701388800
                  previous_release:
                    release_name: 2023-09
                    release_url: https://projects.eclipse.org/api/simultaneous_release/2023-09
                  projects:
                    eclipse.platfor

# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eclipse/refs/heads/main/openapi/eclipse-projects-pmi-api-openapi.yml