Eclipse RESTful API (1.0)

Download OpenAPI specification:Download

This describes the resources that make up the official Eclipse Foundation REST API. You can contribute to this document via our git repository. If you have any problems or requests please contact Christopher Guindon.

Althought they are not directly related to this API, the Eclipse forge proposes several other access points and APIs for specific tools and purposes. Please see the following resources for more details:

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://api.eclipse.org/api/blob/KJBNCEW08231nkJKCEW32898239?page=1&pagesize=2\"

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://api.eclipse.org/api/blob/KJBNCEW08231nkJKCEW32898239?page=2&amp;pagesize=2>; rel="next", 
<https://api.eclipse.org/api/blob/KJBNCEW08231nkJKCEW32898239?page=27&amp;pagesize=2>; rel="last", 
<https://api.eclipse.org/api/blob/KJBNCEW08231nkJKCEW32898239?page=1&amp;pagesize=2>; rel="first", 
<https://api.eclipse.org/api/blob/KJBNCEW08231nkJKCEW32898239?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.

Caching

Most responses return an ETag header. You can use the values of these headers to make subsequent requests to those resources using the If-None-Match or if-Match header. For example, if the resource has not changed on a GET, the server will return a 304 Not Modified. The Etag for a blob resource is predictable. This is how we are currently generating them:

function _generate_etag($value, $application_token, $key) {  
  $string = $value . $application_token . $key;  
  return  hash('sha256', $string, FALSE);
}

Error States

The common HTTP Response Status Codes are used.

Authentication

Eclipse Api RESTful API uses OAuth2 Authorization for protected resources.

User Profiles

User information is available trought this resource. Some private information, is included when authenticated through OAuth with the profile scope.

Current user

Retrieve profile information about current user.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve user

Retrieve profile information about a specified user.

path Parameters
name
required
string

A valid Eclipse username.

Responses

Response samples

Content type
application/json
{
  • "uid": 9,
  • "name": "cguindon",
  • "mail": "chris.guindon@eclipse-foundation.org",
  • "eca": {
    },
  • "is_committer": true,
  • "friends": {
    },
  • "first_name": "Christopher",
  • "last_name": "Guindon",
  • "twitter_handle": "chrisguindon",
  • "org": "Eclipse Foundation",
  • "job_title": "Lead Web Application Developper",
  • "country": {
    },
  • "bio": "Hello world! When I am not at a computer, which is rare, I spend my time playing the drums, watching hockey or at the top of a hill snowboarding. I am also very passionate about music and live concerts!",
  • "interests": [
    ]
}

Search for a user

Search for a user by uid, name or mail. The uid will be used first, then the name and if no user was found, the server will try to load a user by mail.

query Parameters
uid
integer <int32>

A valid User ID.

name
string

A valid username.

mail
string

A valid encoded mail.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Forum posts

This method returns forum post associated with a user.

path Parameters
name
required
string

A valid Eclipse username.

Responses

Response samples

Content type
application/json
{
  • "id": 125133,
  • "alias": "Christopher Guindon",
  • "avatar_loc": null,
  • "email": "chris.guindon@eclipse-foundation.org",
  • "posted_msg_count": 2,
  • "join_date": 1329944087,
  • "location": null,
  • "sig": null,
  • "last_visit": 1489180635,
  • "level_name": "Junior Member",
  • "level_img": null,
  • "posts": [
    ]
}

Project Relationship

This call returns a list of project affiliations for a particular user.

path Parameters
name
required
string

A valid Eclipse username.

Responses

Response samples

Content type
application/json
{
  • "technology.cbi": [
    ],
  • "technology.usssdk": [
    ],
  • "foundation-internal": [
    ]
}

Gerrit review count

This method returns gerrit review count for a user.

path Parameters
name
required
string

A valid Eclipse username.

Responses

Response samples

Content type
application/json
{
  • "merged_changes_count": 671
}

Mailing List Subscriptions

This method returns mailing list subscriptions for a user.

path Parameters
name
required
string

A valid Eclipse username.

Responses

Response samples

Content type
application/json
{
  • "mailing_list_subscriptions": [
    ]
}

Eclipse USS

The Eclipse User Storage Service (USS) allows Eclipse projects to store user-specific project information on the Eclipse Foundation servers. The goal is to make it easy for our projects to offer a better user experience by storing relevant information in a central location.

The BLOB resource is a way for projects to store binary objects based off a application_token/key value pair.

The “value” is always the last element in this JSON structure. All other things must come before that so that the SDK implementation can parse and collect them into a Map and finally return a decoding InputStream to deliver the “value” content back to the caller/application. The blob value is available when the client retrieve a specific blob using an application_token and key.

We are using application_token and key to identify a blob. The Application token is a string that is assigned by the Eclipse Management Organization.The key string must respect the following validation rules:

  • 5-25 characters;

  • letters: lowercase and uppercase/numbers/underscores are valid;

  • each string should start with a letter.

Fetch Blobs

Retrieve a list of all the blobs for a user. Requires the uss_retrieve scope.

Authorizations:
oauth2
query Parameters
page
integer <int32>

The index of the page to get, defaults to 1.

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

header Parameters
Accept
required
string
Example: application/json
User-Agent
required
string
Example: USER_AGENT
Content-Type
required
string
Example: application/json

Responses

Response samples

Content type
application/json
[]

Search Blobs

Search specific user blob object. Requires the uss_retrieve scope.

Authorizations:
oauth2
path Parameters
application_token
required
string

Unique identifer of the project, e.g., eclipse.org.oomph.

blob_key
required
string

Unique identifier of the profile setting to save, e.g., install_xml.

query Parameters
page
integer <int32>

The index of the page to get, defaults to 1.

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

header Parameters
Accept
required
string
Example: application/json
User-Agent
required
string
Example: USER_AGENT
If-None-Match
required
string
Example: 54d66cdf0a31cf65bf3f6c9888fc3efdd51dd079f5da4200d7e6ccb399b25a61
Content-Type
required
string
Example: application/json
If-Modified-Since
required
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Responses

Response samples

Content type
application/json
{}

Delete Blobs

Delete a blob for a user. Requires the uss_update scope.

Authorizations:
oauth2
path Parameters
application_token
required
string

Unique identifer of the project, e.g., eclipse.org.oomph.

blob_key
required
string

Unique identifier of the profile setting to save, e.g., install_xml.

header Parameters
Accept
required
string
Example: application/json
User-Agent
required
string
Example: USER_AGENT
If-None-Match
required
string
Example: 54d66cdf0a31cf65bf3f6c9888fc3efdd51dd079f5da4200d7e6ccb399b25a61
Content-Type
required
string
Example: application/json

Responses

Update/Create Blobs

Delete a blob for a user. Requires the uss_update scope.

Authorizations:
oauth2
path Parameters
application_token
required
string

Unique identifer of the project, e.g., eclipse.org.oomph.

blob_key
required
string

Unique identifier of the profile setting to save, e.g., install_xml.

header Parameters
Accept
required
string
Example: application/json
User-Agent
required
string
Example: USER_AGENT
If-Match
required
string
Example: 54d66cdf0a31cf65bf3f6c9888fc3efdd51dd079f5da4200d7e6ccb399b25a61
Content-Type
required
string
Example: application/json

Responses

Response samples

Content type
application/json

Download

Download files and release information.

Retrieve File

Fetch download file information.

path Parameters
file_id
required
integer <int32>

The id of a download file.

Responses

Response samples

Content type
application/json
{
  • "file_id": 213,
  • "file_name": "/stats/releases/mars/org.eclipse.oomph.setup.sdk",
  • "download_count": 4499,
  • "size_disk_bytes": 0,
  • "timestamp_disk": 0,
  • "md5sum": "nofile",
  • "sha1sum": "nofile",
  • "sha512sum": "nofile"
}

Release

Fetch download file information.

path Parameters
release_type
required
string

Release type, e.g., eclipse_packages.

query Parameters
release_name
string

The name of the release, e.g., oxygen.

release_version
string

The version of the release, e.g., sr1, 0, 1.

Responses

Response samples

Content type
application/json
{}

Marketplace Favorites

The Eclipse MarketPlace is a place to discover, share, and install relevant Eclipse plugins and solutions. Think of it like an app store for Eclipse solutions.

Search Favorites

Retrieve all favorites or retrieve favorites for a specific user.

Authorizations:
oauth2
query Parameters
name
string

A valid Eclipse username.

page
integer <int32>

The index of the page to get, defaults to 1.

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

Responses

Response samples

Content type
application/json
{
  • "mpc_favorites": [
    ],
  • "result": {
    }
}

Retrieve Favorites

Fetch favorites for a specific listing on Eclipse MarketPlace.

Authorizations:
oauth2
path Parameters
content_id
required
string

Unique identifier of the listing, e.g., 123, 134.

query Parameters
name
string

A valid Eclipse username.

page
integer <int32>

The index of the page to get, defaults to 1.

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

Responses

Response samples

Content type
application/json
{}

Add Favorite

Add a listings from a user favorite list. Requires the mpc_update scope.

Authorizations:
oauth2
path Parameters
content_id
required
string

Unique identifier of the listing, e.g., 123, 134.

header Parameters
Content-Type
required
string
Example: application/json

Responses

Response samples

Content type
application/json
{}

Remove Favorite

Remove a listings from a user favorite list. Requires the mpc_update scope.

Authorizations:
oauth2
path Parameters
content_id
required
string

Unique identifier of the listing, e.g., 123, 134.

header Parameters
Content-Type
required
string
Example: application/json

Responses

Random Favorites

Fetch random favorites.

Authorizations:
oauth2
query Parameters
page
integer <int32>

The index of the page to get, defaults to 1.

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

Responses

Response samples

Content type
application/json
{}

Rename Favorite List

Create a custom name for the user favorite list.

Authorizations:
oauth2
query Parameters
content_id
required
string

Unique identifier of the listing, e.g., 123, 134.

Request Body schema: application/json
required
list_name
required
string

Responses

Request samples

Content type
application/json
{
  • "list_name": "New list name"
}

Forums

Eclipse Forums are available through this resource.

Fetch Categories

Overview

Retrieve information for all the categories from the Eclipse Forums website.

What is a category?

A category is a group of forums.

Forums are associated to a category by category id.

Result definition

  • id: id of the category

  • name: name of the category

  • description: description of the category

  • url: url that will return information of a specific category on the Eclipse Forums website (Note: the trailing slash is important)

  • forum_url: url that will return information for all the forums associated with a specific category id

query Parameters
page
integer <int32>

The index of the page to get, defaults to 1.

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

order_by
string

The order by ID in which the results will be returned. DESC by default

Responses

Response samples

Content type
application/json
{}

Retrieve Category

Overview

Retrieve information for a specific category from the Eclipse Forums website.

What is a category?

A category is a group of forums.

Forums are associated to a category by category id.

Result definition

  • id: id of the category

  • name: name of the category

  • description: description of the category

  • url: url that will return information of a specific category on the Eclipse Forums website (Note: the trailing slash is important)

  • forum_url: url that will return information for all the forums associated with a specific category id

path Parameters
category_id
required
integer <int32>

Unique identifier for category

Responses

Response samples

Content type
application/json
{}

Fetch Forums

Overview

Retrieve information for all the forums from the Eclipse Forums website.

Optionally, you can retrieve information for all the forums associated to a specific category by using the category_id parameter. You can also retrieve forums that have been created between dates using the since and until parameters.

What is a forum?

A forum is a group of topics.

Topics are associated to a forum by forum id.

Result definition

  • id: id of the forum

  • name: name of the forum

  • category_id: id of the category associated to this forum

  • url: url of a specific forum on the Eclipse Forums website (Note: the trailing slash is important)

  • description: description of the forum

  • created_date: date when the forum has been created (timestamp)

  • topic_count: number of topics in this forum

  • post_count: number of posts in this forum

  • last_post_id: id of the last post in this forum

  • category_url: url that will return information about a category

  • topics_url: url that will return all the topics associated with a specific forum id

query Parameters
category_id
integer <int32>

Unique identifier for a category

page
integer <int32>

The index of the page to get, defaults to 1.

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

order_by
string

The order created date in which the results will be returned. DESC by default

since
integer <int32>

The results since a timestamp onward

until
integer <int32>

The results until a timestamp

Responses

Response samples

Content type
application/json
{}

Retrieve Forum

Overview

Retrieve information for a specific forum from the Eclipse Forums website.

What is a forum?

A forum is a group of topics.

Topics are associated to a forum by forum id.

Result definition

  • id: id of the forum

  • name: name of the forum

  • category_id: id of the category associated to this forum

  • url: url of a specific forum on the Eclipse Forums website (Note: the trailing slash is important)

  • description: description of the forum

  • created_date: date when the forum has been created (timestamp)

  • topic_count: number of topics in this forum

  • post_count: number of posts in this forum

  • last_post_id: id of the last post in this forum

  • category_url: url that will return information about a category

  • topics_url: url that will return all the topics associated with a specific forum id

path Parameters
forum_id
required
integer <int32>

Unique identifier for a forum

Responses

Response samples

Content type
application/json
{}

Fetch Topics

Overview

Retrieve information for all the topics from the Eclipse Forums website.

Optionally, you can retrieve information for all the topics associated to a specific forum by using the forum_id parameter. You can also retrieve topics that have been created between dates using the since and until parameters.

What is a topic?

A topic is a group of posts.

Posts are associated to a topic by topic id.

Result definition

  • id: id of the topic

  • forum_id: id of the forum associated to this topic

  • last_post_id: id of the last post in this forum

  • last_post_date: date of the last post in this topic (timestamp)

  • root_post_id: id of the root post of this topic

  • replies: number of replies for this topic

  • views: number of views for this topic

  • url: url of a specific topic on the Eclipse Forums website (Note: the trailing slash is important)

  • forum_url: url that will return information about the forum associated to this topic

  • posts_url: url that will return information about for all the posts associated with a specific topic id

query Parameters
forum_id
integer <int32>

Unique identifier for a forum

page
integer <int32>

The index of the page to get, defaults to 1.

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

order_by
string

The order created date in which the results will be returned. DESC by default

since
integer <int32>

The results since a timestamp onward

until
integer <int32>

The results until a timestamp

Responses

Response samples

Content type
application/json
{}

Retrieve Topic

Overview

Retrieve information for a specific topic from the Eclipse Forums website.

What is a topic?

A topic is a group of posts.

Posts are associated to a topic by topic id.

Result definition

  • id: id of the topic

  • forum_id: id of the forum associated to this topic

  • last_post_id: id of the last post in this forum

  • last_post_date: date of the last post in this topic (timestamp)

  • root_post_id: id of the root post of this topic

  • replies: number of replies for this topic

  • views: number of views for this topic

  • url: url of a specific topic on the Eclipse Forums website (Note: the trailing slash is important)

  • forum_url: url that will return information about the forum associated to this topic

  • posts_url: url that will return information about all the posts associated with a specific topic id

path Parameters
topic_id
required
integer <int32>

Unique identifier for a topic

Responses

Response samples

Content type
application/json
{}

Fetch Posts

Overview

Retrieve information for all the posts from the Eclipse Forums website.

Optionally, you can retrieve information for all the posts associated to a specific topic by using the topic_id parameter. You can also retrieve posts that have been created between dates using the since and until parameters.

What is a post?

A post is a message attached to a specific topic

Posts are associated to a topic by topic id.

Result definition

  • id: id of the post

  • subject: subject of the post

  • forum_id: id of the forum associated to this post

  • topic_id: id of the topic associated to this post

  • poster_id: id of the user that submitted this post

  • created_date: date that this post has been created (timestamp)

  • url: url of a specific post on the Eclipse Forums website

  • body: body content of this post

  • topic_url: url that will return information about the topic associated to this post

  • topic_posts_url: url that will return all the posts from the topic associated to this post

query Parameters
topic_id
integer <int32>

Unique identifier for a topic

page
integer <int32>

The index of the page to get, defaults to 1.

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

order_by
string

The order created date in which the results will be returned. DESC by default

since
integer <int32>

The results since a timestamp onward

until
integer <int32>

The results until a timestamp

Responses

Response samples

Content type
application/json
{}

Retrieve Post

Overview

Retrieve information for a specific post from the Eclipse Forums website.

What is a post?

A post is a message attached to a specific topic

Posts are associated to a topic by topic id.

Result definition

  • id: id of the post

  • subject: subject of the post

  • forum_id: id of the forum associated to this post

  • topic_id: id of the topic associated to this post

  • poster_id: id of the user that submitted this post

  • created_date: date that this post has been created (timestamp)

  • url: url of a specific post on the Eclipse Forums website

  • body: body content of this post

  • topic_url: url that will return information about the topic associated to this post

  • topic_posts_url: url that will return all the posts from the topic associated to this post

path Parameters
post_id
required
integer <int32>

Unique identifier for a post

Responses

Response samples

Content type
application/json
{}

Retrieve User

Overview

Retrieve information for a specific user from the Eclipse Forums website.

What is a user?

A user is the author of a post

Result definition

  • id: id of the user

  • alias: alias of the user

  • email: email of the user

  • posted_msg_count: number of posts the user created

  • join_date: timestamp of the date the user joined the Eclipse Forums

  • last_visit: timestamp of the date the user last visited the Eclipse Forums website

  • level_name: level of the user

  • url: url of the user on the Eclipse Forums website

  • account_url: url of the user's account on accounts.eclipse.org

path Parameters
user_id
required
integer <int32>

Unique identifier for a user

Responses

Response samples

Content type
application/json
{}

Mailing Lists

Eclipse Mailing Lists are available through this resource.

Fetch Mailing lists

Overview

Retrieve metadata for all the mailing lists.

Result definition

  • list_name: name of the mailing list

  • list_description: description of the mailing list

  • project_id: Id of the project related to the mailing list

  • list_short_description: short description of the mailing list

  • is_disabled: if the mailing list is disabled

  • is_deleted: if the mailing list is deleted

  • is_subscribable: if the mailing list is subscribable

  • create_date: the date the mailing list was created

  • url: url of the mailing list

  • email: email of the mailing list

query Parameters
search
string

A keyword to search for in a mailing list name

page
integer <int32>

The index of the page to get, defaults to 1.

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

order_by
string

The order by name in which the results will be returned. ASC by default

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve Mailing List

Overview

Retrieve information for a specific mailing list

Result definition

  • list_name: name of the mailing list

  • list_description: description of the mailing list

  • project_id: Id of the project related to the mailing list

  • list_short_description: short description of the mailing list

  • is_disabled: if the mailing list is disabled

  • is_deleted: if the mailing list is deleted

  • is_subscribable: if the mailing list is subscribable

  • create_date: the date the mailing list was created

  • url: url of the mailing list

  • email: email of the mailing list

path Parameters
mailing_list_id
required
string
query Parameters
name
required
integer <int32>

Name of the mailing list

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Projects

Eclipse Projects are available through this resource. Note that it is available through the https://projects.eclipse.org domain.

Fetch Projects

Overview

Retrieve metadata for all projects.

query Parameters
github_only
integer <int32>

Select only the projects that contain GitHub repos

spec_project
integer <int32>

TBD

spec_project_working_group
string

TBD

working_group
string

TBD

page
integer <int32>

TBD

pagesize
integer <int32>

The number of records to get per page, defaults to 20. Maximum value is 100.

order_by
string

The order by name in which the results will be returned. ASC by default

Responses

Response samples

Content type
application/json
[]

Retrieve a Project

Overview

Retrieve information for a specific project

Note that all dots in a project id need to be changed to an underscore

Examples:

path Parameters
project_id
required
string

ID of the project.

Responses

Response samples

Content type
application/json
[]