Eclipse Membership Portal API

REST API for the Eclipse Foundation membership portal — member organisations, contacts, products, yearly activity, industry collaborations, project and working-group relations. The largest OIDC-protected surface the Foundation publishes.

Operations 37

GET /organizations Organizations List #
GET /organizations/slim Slim Organizations List #
GET /organizations/{organizationID} Organization #
POST /organizations/{organizationID} Organization Info update #
GET /organizations/{organizationID}/cbi Organization CBI #
GET /organizations/{organizationID}/contacts Organization #
GET /organizations/{organizationID}/contacts/{contactID} Organization #
DELETE /organizations/{organizationID}/contacts/{contactID} Request Organization contact removal #
POST /organizations/{organizationID}/logos Organization logo update #
GET /organizations/{organizationID}/contacts/{contactID}/{relation} Organization #
POST /organizations/{organizationID}/contacts/{contactID}/{relation} Organization #
DELETE /organizations/{organizationID}/contacts/{contactID}/{relation} Organization #
GET /organizations/{organizationID}/products Organization Products list #
POST /organizations/{organizationID}/products Organization Product create #
GET /organizations/{organizationID}/products/{productID} Organization Product #
PUT /organizations/{organizationID}/products/{productID} Organization Product create #
DELETE /organizations/{organizationID}/products/{productID} Organization Product delete #
GET /organizations/{organizationID}/projects Organization Projects #
GET /organizations/{organizationID}/committers Organization Committers #
GET /organizations/{organizationID}/committers/activity Organization Committers activity #
GET /organizations/{organizationID}/committers/yearly Organization Committers yearly activity #
GET /organizations/{organizationID}/contributors Organization Contributors #
GET /organizations/{organizationID}/representatives Organization #
GET /organizations/{organizationID}/activity Organization Activity #
GET /organizations/{organizationID}/working_groups Organization working groups #
GET /organizations/{organizationID}/working_group/representatives Organization Working Group representatives #
GET /organizations/{organizationID}/activity/overview Organization Activity overview #
GET /organizations/{organizationID}/activity/yearly Organization yearly activity #
GET /projects/{projectId}/organizations Project Organizations #
GET /working_groups Working Group List #
GET /working_groups/{documentID} Working Group #
GET /interest-groups/{id}/organizations Organizations for Interest Group #
GET /special-interest-groups/{id}/organizations Organizations for Special Interest Group #
GET /sys/relations List of relations by type #
GET /userinfo Info on currently logged in user #

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/membership-portal-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-membership-portal-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 1.0.0
  title: Membership portal
  description: API used for reading and updating information about member organizations and it's associated metadata.
  contact:
    name: Software Development Team
    url: https://gitlab.eclipse.org/eclipsefdn/software-dev
    email: software-dev@eclipse-foundation.org
  license:
    name: Eclipse Public License - 2.0
    url: https://www.eclipse.org/legal/epl-2.0/
servers:
- url: https://membership.eclipse.org/api
  description: Production endpoint for the membership portal data
tags:
- name: Organizations
  description: Definitions related to Eclipse Foundation organizations
- name: Organization Contacts
  description: Definitions related to Eclipse Foundation organization contacts
- name: Organization Products
  description: Definitions related to Eclipse Foundation organization products
- name: Organization Activity
  description: Definitions related to Eclipse Foundation organization committer/contributor activity
- name: Working Groups
  description: Definitions related to Eclipse Foundation working group entities
- name: Projects
  description: Definitions related to Eclipse Foundation projects entities in relation to organizations
- name: Slack Webhook
  description: Slack Webhook processing
- name: Industry Collaboration Organizations
  description: Definitions related to collaborations with regard to organizations
- name: System relations
  description: Definitions related to Eclipse Foundation relation code entities
- name: User Info
  description: Internal user info endpoints for logged in user
paths:
  /organizations:
    get:
      tags:
      - Organizations
      summary: Organizations List
      description: Returns a list of organizations from the Eclipse API
      operationId: listOrganizations
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organizations'
        '500':
          description: Error while retrieving data
  /organizations/slim:
    get:
      tags:
      - Organizations
      summary: Slim Organizations List
      description: Returns a list of paired down organizations from the Eclipse API, returning just critical data
      operationId: listOrganizationsSlim
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlimOrganizations'
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    get:
      tags:
      - Organizations
      summary: Organization
      description: Returns an organization that has a matching ID
      operationId: getOrganization
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '500':
          description: Error while retrieving data
    post:
      tags:
      - Organizations
      summary: Organization Info update
      description: Updates an organization information and returns the updated entity
      operationId: updateOrganization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationInfoUpdateRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Error while retrieving data
        '503':
          description: Error while retrieving data
  /organizations/{organizationID}/cbi:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    get:
      tags:
      - Organizations
      summary: Organization CBI
      description: Returns the CBI information for the current organization
      operationId: getOrganizationCBI
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationCBI'
        '404':
          description: No CBI information found for given organization
  /organizations/{organizationID}/contacts:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    get:
      security:
      - openId: []
      tags:
      - Organization Contacts
      summary: Organization
      description: Returns a list of contacts for the given organization with additional data such as name and email
      operationId: getOrganizationContacts
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnhancedPersons'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/contacts/{contactID}:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    - name: contactID
      in: path
      description: The contact ID/username of the contact to retrieve
      required: true
      schema:
        type: string
    get:
      security:
      - openId: []
      tags:
      - Organization Contacts
      summary: Organization
      description: Returns a list of contact relations for the given user in the passed organization
      operationId: getOrganizationContactRelations
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationContacts'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Error while retrieving data
    delete:
      security:
      - openId: []
      tags:
      - Organization Contacts
      summary: Request Organization contact removal
      description: Fires a request for a organization contact to be removed.
      operationId: requestOrganizationContactRemoval
      requestBody:
        description: The working group to be updated or inserted into the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactRemovalRequest'
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Error while sending request
  /organizations/{organizationID}/logos:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    post:
      security:
      - openId: []
      tags:
      - Organizations
      summary: Organization logo update
      description: Updates an organization logo and returns the updated entity
      operationId: updateOrganizationLogos
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OrganizationLogoUpdateRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Error while retrieving data
    delete:
      parameters:
      - name: type
        in: query
        description: The type of logo format to remove, e.g. WEB or PRINT. Defaults to WEB when not provided
        schema:
          type: string
      security:
      - openId: []
      tags:
      - Organizations
      summary: Organization logo delete
      description: Removes an organization logo if one exists
      operationId: deleteOrganizationLogo
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OrganizationLogoUpdateRequest'
      responses:
        '204':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/contacts/{contactID}/{relation}:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    - name: contactID
      in: path
      description: The contact ID/username of the contact to retrieve
      required: true
      schema:
        type: string
    - name: relation
      in: path
      description: The relation code of the relation type to retrieve/check for/update.
      required: true
      schema:
        type: string
    get:
      security:
      - openId: []
      tags:
      - Organization Contacts
      summary: Organization
      description: Returns a contact relations for the given user and relation/position in the passed organization if it exists
      operationId: getOrganizationContactRelation
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationContact'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Error while retrieving data
    post:
      security:
      - openId: []
      tags:
      - Organization Contacts
      summary: Organization
      description: Updates an organization contact and returns the updated entity
      operationId: updateOrganizationContactRelation
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationContact'
        '400':
          description: Bad Request - Invalid relation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Error while retrieving data
    delete:
      security:
      - openId: []
      tags:
      - Organization Contacts
      summary: Organization
      description: Removes a single organization contact relation. Works for all relations except EMPLY and CR, which must
        be done manually through the membership team.
      operationId: removeOrganizationContactRelation
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request - Invalid relation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/products:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    get:
      security:
      - openId: []
      tags:
      - Organization Products
      summary: Organization Products list
      description: Returns a contact relations for the given user and relation/position in the passed organization if it exists
      operationId: getOrganizationProducts
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationProducts'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Error while retrieving data
    post:
      security:
      - openId: []
      tags:
      - Organization Products
      summary: Organization Product create
      description: Creates an organization product/link using the body
      operationId: createOrganizationProduct
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/products/{productID}:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization product to retrieve
      required: true
      schema:
        type: number
    - name: productID
      in: path
      description: The product ID for the organization product to retrieve
      required: true
      schema:
        type: number
    get:
      security:
      - openId: []
      tags:
      - Organization Products
      summary: Organization Product
      description: Returns a organization product/link if it exists
      operationId: getOrganizationProduct
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationProduct'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Error while retrieving data
    put:
      security:
      - openId: []
      tags:
      - Organization Products
      summary: Organization Product create
      description: Updates an organization product/link using the body
      operationId: updateOrganizationProduct
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationProduct'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Error while retrieving data
    delete:
      security:
      - openId: []
      tags:
      - Organization Products
      summary: Organization Product delete
      description: Remove the organization product that matches the given path parameters
      operationId: deleteOrganizationProduct
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/projects:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the associated entities to retrieve
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    get:
      tags:
      - Organizations
      summary: Organization Projects
      description: Returns projects associated with the organization
      operationId: getOrganizationProjects
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Projects'
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/committers:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the associated entities to retrieve
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    get:
      security:
      - openId: []
      tags:
      - Organizations
      summary: Organization Committers
      description: Returns committers associated with the organization
      operationId: getOrganizationCommitters
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnhancedPersons'
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/committers/activity:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the associated entities to retrieve
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    - name: period
      in: query
      description: The period of activity
      required: false
      schema:
        type: string
    - name: from_period
      in: query
      description: The starting period of activity
      required: false
      schema:
        type: string
    get:
      security:
      - openId: []
      tags:
      - Organization Activity
      summary: Organization Committers activity
      description: Returns activity of an organizations commiters
      operationId: getOrganizationCommitterActivity
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationActivity'
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/committers/yearly:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the associated entities to retrieve
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    - name: period
      in: query
      description: The period of activity
      required: false
      schema:
        type: string
    - name: from_period
      in: query
      description: The starting period of activity
      required: false
      schema:
        type: string
    get:
      security:
      - openId: []
      tags:
      - Organization Activity
      summary: Organization Committers yearly activity
      description: Returns yearly activity of an organizations commiters
      operationId: getOrganizationCommitterActivityForYear
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationActivity'
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/contributors:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the associated entities to retrieve
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    get:
      security:
      - openId: []
      tags:
      - Organizations
      summary: Organization Contributors
      description: Returns contributors associated with the organization
      operationId: getOrganizationContributors
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnhancedPersons'
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/representatives:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    get:
      security:
      - openId: []
      tags:
      - Organization Contacts
      summary: Organization
      description: Returns a list of contacts with elevated roles for the given organization with their name.
      operationId: getOrganizationRepresentatives
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnhancedPersonData'
        '404':
          description: Not found
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/activity:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    - name: period
      in: query
      description: The period of activity
      required: false
      schema:
        type: string
    - name: from_period
      in: query
      description: The starting period of activity
      required: false
      schema:
        type: string
    get:
      tags:
      - Organization Activity
      summary: Organization Activity
      description: Gets the organization activity for a given period
      operationId: getOrganizationActivity
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationActivity'
        '404':
          description: Activity not found
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/web-logo:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    get:
      tags:
      - Organizations
      summary: Organization web-logo
      description: Generic URL for fetching the web logo of an organization via redirect
      operationId: getOrganizationWebLogo
      responses:
        '302':
          description: Success, redirect to web logo
        '404':
          description: No logo found
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/working_groups:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    get:
      tags:
      - Organizations
      summary: Organization working groups
      description: Gets working groups the organization is member to
      operationId: getOrganizationWorkingGroups
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkingGroups'
        '404':
          description: No organization found
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/working_group/representatives:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve representatives for
      required: true
      schema:
        type: number
    get:
      tags:
      - Working Groups
      summary: Organization Working Group representatives
      description: Gets working group representatives grouped by the alias of the Working Group they are part of
      operationId: getOrganizationWorkingGroupRepresentatives
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationWorkingGroupRepresentatives'
        '404':
          description: No organization found
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/activity/overview:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    - name: period
      in: query
      description: The period of activity
      required: false
      schema:
        type: string
    - name: from_period
      in: query
      description: The starting period of activity
      required: false
      schema:
        type: string
    get:
      tags:
      - Organization Activity
      summary: Organization Activity overview
      description: Gets the organization activity overview for a given period
      operationId: getOrganizationActivityOverview
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationActivity'
        '500':
          description: Error while retrieving data
  /organizations/{organizationID}/activity/yearly:
    parameters:
    - name: organizationID
      in: path
      description: The organization ID for the organization to retrieve
      required: true
      schema:
        type: number
    get:
      tags:
      - Organization Activity
      summary: Organization yearly activity
      description: Gets the organization activity for a year
      operationId: getOrganizationActivityForYear
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationYearlyActivity'
        '500':
          description: Error while retrieving data
  /projects/{projectId}/organizations:
    parameters:
    - name: projectId
      in: path
      description: The project ID to retrieve active projects for
      required: true
      schema:
        type: string
    get:
      tags:
      - Projects
      summary: Project Organizations
      description: Returns a list of active and participating organizations from the Eclipse API for the given project
      operationId: getProjectOrganizations
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organizations'
        '404':
          description: No project with ID found
        '500':
          description: Error while retrieving data
  /working_groups:
    get:
      deprecated: true
      tags:
      - Working Groups
      summary: Working Group List
      description: Returns a working group entry that has a matching ID
      operationId: getWorkingGroups
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkingGroups'
        '500':
          description: Error while retrieving data
  /working_groups/{documentID}:
    parameters:
    - name: documentID
      in: path
      description: The document ID for the working group to retrieve
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    get:
      deprecated: true
      tags:
      - Working Groups
      summary: Working Group
      description: Returns a working group entry that has a matching ID
      operationId: getWorkingGroup
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkingGroup'
        '500':
          description: Error while retrieving data
  /interest-groups/{id}/organizations:
    parameters:
    - name: id
      in: path
      description: ID of the interest group to retrieve associated organizations for
      required: true
      schema:
        type: number
    get:
      tags:
      - Industry Collaboration Organizations
      summary: Organizations for Interest Group
      description: returns list of organizations with participants for the given Interest Group
      operationId: getInterestGroupOrganizations
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organizations'
        '404':
          description: No Interest Group found for given ID
        '500':
          description: Error while retrieving data
  /special-interest-groups/{id}/organizations:
    parameters:
    - name: id
      in: path
      description: alias of the special interest group to retrieve associated organizations for
      required: true
      schema:
        type: string
    get:
      tags:
      - Industry Collaboration Organizations
      summary: Organizations for Special Interest Group
      description: returns list of organizations with participants for the given Special Interest Group
      operationId: getSpecialInterestGroupOrganizations
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organizations'
        '404':
          description: No Special Interest Group found for given ID
        '500':
          description: Error while retrieving data
  /sys/relations:
    parameters:
    - name: type
      in: query
      description: The type of relation
      required: false
      schema:
        type: string
    get:
      tags:
      - System relations
      summary: List of relations by type
      description: Returns a list of system relations by the given type
      operationId: getRelations
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SysRelations'
  /userinfo:
    get:
      tags:
      - User Info
      summary: Info on currently logged in user
      description: Returns information about the currently logged in user
      operationId: getLoggedInUser
      parameters:
      - name: organization_id
        in: query
        description: The id of the organization to impersonate.
        required: false
        schema:
          type: integer
      - name: role
        in: query
        description: The organizational role to impersonate.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InfoWrapper'
        '204':
          description: No Content - anonymous user
        '500':
          description: Error while retrieving data
components:
  securitySchemes:
    openId:
      type: openIdConnect
      openIdConnectUrl: https://auth.eclipse.org/auth/realms/foundation/.well-known/openid-configuration
  schemas:
    ObjectID:
      description: Unique identifier for an addressable object in the API. Can be null when posting or updating objects in
        the API if part of the root element or is a new entity. Should always be set in responses.
      type:
      - string
      - 'null'
      minimum: 1
    DateTime:
      type: string
      format: datetime
      description: |
        Date string in the RFC 3339 format. Example, `1990-12-31T"15":"59":60-"08":00`.

        More on this standard can be read at https://tools.ietf.org/html/rfc3339.
    Organizations:
      type: array
      items:
        $ref: '#/components/schemas/Organization'
    Organization:
      type: object
      additionalProperties: false
      required:
      - organization_id
      - name
      - description
      - website
      - logos
      - levels
      - wgpas
      - member_since
      - renewal_date
      - is_active_member
      properties:
        organization_id:
          type: integer
        name:
          type: string
        renewal_date:
          type: string
        member_since:
          type: string
        is_active_member:
          type: boolean
          description: True if the organization is an active member
        levels:
          type: array
          items:
            type: object
            properties:
              level:
                type: string
              description:
                type: string
        description:
          type

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