Download OpenAPI specification:Download
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. If you have any problems or requests please submit an issue.
This API currently limits users to 1000 authenticated requests and 1000 anonymous requests an hour.
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&pagesize=2>; rel="next",
<https://projects.eclipse.org/api/projects?page=27&pagesize=2>; rel="last",
<https://projects.eclipse.org/api/projects?page=1&pagesize=2>; rel="first",
<https://projects.eclipse.org/api/projects?page=1&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.
The common HTTP Response Status Codes are used.
Eclipse Projects are available through this resource. Note that it is available through the https://projects.eclipse.org domain.
Retrieve metadata for all projects.
| github_only | boolean Default: false Select only the projects that have GitHub repositories or a GitHub organisation defined. |
| gitlab_only | boolean Default: false Select only the projects that have GitLab repositories defined. |
| spec_project | integer <int32> Default: 0 Filter to specification projects only. Set to any non-zero integer to enable the filter. |
| spec_project_working_group | string Filter projects by their specification project working group ID (e.g. |
| working_group | string Filter projects by their associated working group ID. |
| industry_collaboration | string Filter projects by their associated industry collaboration (working group) ID. |
| technology_types | string Filter projects by technology type name. |
| state | string Filter projects by state. Accepted values: |
| page | integer <int32> >= 1 Default: 1 The index of the page to retrieve, defaults to 1. |
| pagesize | integer <int32> [ 1 .. 100 ] Default: 20 The number of records to get per page, defaults to 20. Maximum value is 100. |
| order_by | string Default: "ASC" The order in which results are returned. Defaults to |
[- {
- "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.",
- "website_repo": "",
- "logo": "",
- "tags": [ ],
- "licenses": [
- {
- "name": "Eclipse Public License 2.0",
- "short_name": "EPL-2.0",
}
], - "github_repos": [
], - "github": {
- "org": "eclipse-ee4j",
- "ignored_repos": [ ]
}, - "gitlab_repos": [ ],
- "gitlab": {
- "project_group": "",
- "ignored_sub_groups": [ ]
}, - "gerrit_repos": [ ],
- "contributors": [ ],
- "committers": [
- {
- "username": "acommitter",
- "full_name": "A Committer",
}
], - "project_leads": [
- {
- "username": "aprojectlead",
- "full_name": "A Project Lead",
}
], - "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",
- "top_level_project": "ee4j",
- "slsa": {
- "build_level": ""
}, - "dev_list": {
- "name": "ee4j-batch-dev",
- "email": "ee4j-batch-dev@eclipse.org",
}, - "mailing_lists": [ ],
- "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>\n\n",
- "security_team": {
- "individual_members": [ ],
- "groups": {
- "include_committers": true,
- "include_project_leads": false
}
}
}
]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.
| project_id required | string ID of the project. Underscores are treated as dots (e.g. |
[- {
- "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>\n\n",
- "website_repo": "",
- "logo": "",
- "tags": [ ],
- "licenses": [
- {
- "name": "Eclipse Public License 2.0",
- "short_name": "EPL-2.0",
}
], - "github_repos": [
], - "github": {
- "org": "eclipse-ee4j",
- "ignored_repos": [ ]
}, - "gitlab_repos": [ ],
- "gitlab": {
- "project_group": "",
- "ignored_sub_groups": [ ]
}, - "gerrit_repos": [ ],
- "contributors": [ ],
- "committers": [
- {
- "username": "acommitter",
- "full_name": "A Committer",
}
], - "project_leads": [
- {
- "username": "aprojectlead",
- "full_name": "A Project Lead",
}
], - "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",
- "top_level_project": "ee4j",
- "slsa": {
- "build_level": ""
}, - "dev_list": {
- "name": "ee4j-batch-dev",
- "email": "ee4j-batch-dev@eclipse.org",
}, - "mailing_lists": [ ],
- "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>\n\n",
- "security_team": {
- "individual_members": [ ],
- "groups": {
- "include_committers": true,
- "include_project_leads": false
}
}
}
]Retrieve a paginated list of releases associated with the given project.
| project_id required | string ID of the project. Underscores are treated as dots. |
| page | integer <int32> >= 1 Default: 1 The index of the page to retrieve, defaults to 1. |
| pagesize | integer <int32> [ 1 .. 100 ] Default: 20 The number of records to get per page, defaults to 20. Maximum value is 100. |
| order_by | string Default: "ASC" The order in which results are returned. Defaults to |
{- "releases": [
- {
- "name": "3.0",
- "date": "2022-05-31",
- "type": 1,
- "downloads": {
- "tracked": false,
- "associated_files": [ ]
}
}
]
}Retrieve a paginated list of reviews associated with the given project.
| project_id required | string ID of the project. Underscores are treated as dots. |
| page | integer <int32> >= 1 Default: 1 The index of the page to retrieve, defaults to 1. |
| pagesize | integer <int32> [ 1 .. 100 ] Default: 20 The number of records to get per page, defaults to 20. Maximum value is 100. |
| order_by | string Default: "ASC" The order in which results are returned. Defaults to |
{- "reviews": [
- {
- "id": 456,
- "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."
}
]
}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.
| spec_project | integer <int32> Default: 0 Filter to specification projects only. Set to any non-zero integer to enable. |
| spec_project_working_group | string Filter by specification project working group ID. |
| industry_collaboration | string Filter by industry collaboration (working group) ID. |
| state | string Filter by proposal state (case-insensitive). Accepts a single value ( |
| page | integer <int32> >= 1 Default: 1 The index of the page to retrieve, defaults to 1. |
| pagesize | integer <int32> [ 1 .. 100 ] Default: 20 The number of records to get per page, defaults to 20. Maximum value is 100. |
| order_by | string Default: "ASC" The order in which results are returned. Defaults to |
{- "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",
- "project_url": "",
- "spec_project": [ ],
- "committers": [ ],
- "project_leads": [ ],
- "patent_license": "",
- "licenses": [
- "Eclipse Public License 2.0"
], - "repo_type": "Git",
}
], - "pagination": {
- "page": 1,
- "pagesize": 20,
- "result_start": 1,
- "result_end": 1,
- "result_size": 1,
- "total_result_size": 1
}
}Retrieve a single Eclipse project proposal by its Drupal node ID.
| nid required | integer <int32> The Drupal node ID of the proposal. |
[- {
- "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",
- "project_url": "",
- "spec_project": [ ],
- "committers": [ ],
- "project_leads": [ ],
- "patent_license": "",
- "licenses": [
- "Eclipse Public License 2.0"
], - "repo_type": "Git",
}
]Retrieve a paginated list of Eclipse Interest Groups.
| project_id | string Filter interest groups by their Foundation DB project ID (the |
| page | integer <int32> >= 1 Default: 1 The index of the page to retrieve, defaults to 1. |
| pagesize | integer <int32> [ 1 .. 100 ] Default: 20 The number of records to get per page, defaults to 20. Maximum value is 100. |
| order_by | string Default: "ASC" The order in which results are returned. Defaults to |
[- {
- "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": ""
}
]Retrieve a single Eclipse Interest Group by its Drupal node ID.
| nid required | integer <int32> The Drupal node ID of the interest group. |
{- "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": ""
}Returns a map of Eclipse project IDs to their associated GitHub repositories. Optionally filter by a specific repository name substring.
| repo | string Filter by repository path (org/repo, e.g. |
{- "ee4j.batch": {
- "repos": [
- "eclipse-ee4j/batch-api",
- "eclipse-ee4j/batch-tck"
], - "specification_project": true
}
}Returns the GitHub repositories for a specific Eclipse project. Underscores in project_id are treated as dots.
| project_id required | string ID of the project. Underscores are treated as dots. |
{- "ee4j.batch": {
- "repos": [
- "eclipse-ee4j/batch-api",
- "eclipse-ee4j/batch-tck"
], - "specification_project": true
}
}Returns a map of all simultaneous releases (Eclipse release trains), keyed by the release URL slug (e.g. 2023-12).
{- "2023-12": {
- "release_date": 1701388800,
- "previous_release": {
- "release_name": "2023-09",
}, - "projects": {
- "eclipse.platform": {
- "project_name": "Eclipse Platform",
}
}
}
}Returns a specific simultaneous release (Eclipse release train) by its URL slug.
| simrel required | string The URL slug of the simultaneous release (e.g. |
{- "2023-12": {
- "release_date": 1701388800,
- "previous_release": {
- "release_name": "2023-09",
}, - "projects": {
- "eclipse.platform": {
- "project_name": "Eclipse Platform",
}
}
}
}