Eclipse Membership Application API

REST API backing the Eclipse Foundation membership application forms — form creation, contacts, organizations, working-group selections and submission.

Operations 29

GET /form Membership form list
POST /form Membership form create
GET /form/{id} Membership form
PUT /form/{id} Membership form update
DELETE /form/{id} Membership form delete
POST /form/{id}/complete Membership form submit
GET /form/{id}/{transactionId} Membership form validation
GET /form/{id}/contacts Contacts list
POST /form/{id}/contacts Contacts create
GET /form/{id}/contacts/{contactID} Contacts
PUT /form/{id}/contacts/{contactID} Contacts update
DELETE /form/{id}/contacts/{contactID} Contacts delete
GET /form/{id}/organizations Form Organizations list
POST /form/{id}/organizations Form Organizations create
PUT /form/{id}/organizations/{orgID} Form Organizations update
DELETE /form/{id}/organizations/{orgID} Form Organizations delete
GET /form/{id}/working_groups Form Working Groups list
POST /form/{id}/working_groups Form Working Groups create
GET /form/{id}/working_groups/{workingGroupID} Form Working Group
PUT /form/{id}/working_groups/{workingGroupID} Form Working Groups update
DELETE /form/{id}/working_groups/{workingGroupID} Form Working Groups delete
GET /form/state/{state} Membership form report
GET /working_groups/application Working Group Application list #
POST /working_groups/application Working Group Application create #
GET /working_groups/application/{id} Working Group Application single #
PUT /working_groups/application/{id} Working Group Application update #
POST /working_groups/application/{id}/complete Working Group Application complete #
GET /email/optout/{id}/{transactionId} Opt out an email
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-application-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-application-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 1.0.0
  title: Membership portal
  license:
    name: Eclipse Public License - 2.0
    url: https://www.eclipse.org/legal/epl-2.0/
servers:
- url: https://membership.eclipse.org/application_api
  description: Production endpoint for the membership portal data
tags:
- name: Membership form
  description: Definitions related to membership form data in the database
- name: Form Contacts
  description: Definitions related to membership form designated contacts
- name: Form Organizations
  description: Definitions related to membership form organizations
- name: Form Working Groups
  description: Definitions related to membership form working group targets
- name: Working Groups
  description: Definitions related to Eclipse Foundation working group entities
paths:
  /form:
    get:
      tags:
      - Membership form
      summary: Membership form list
      description: Returns a list of tracked membership forms
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembershipForms'
        '500':
          description: Error while retrieving data
    post:
      tags:
      - Membership form
      summary: Membership form create
      description: Using the passed form object, updates or inserts are made to save the data.
      requestBody:
        description: The form to be updated or inserted into the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MembershipForm'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembershipForm'
        '403':
          description: Unauthorized
  /form/{id}:
    parameters:
    - name: id
      in: path
      description: Unique ID of the membership form entry
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    get:
      tags:
      - Membership form
      summary: Membership form
      description: Returns a membership form entry that has a matching ID
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembershipForm'
        '403':
          description: Unauthorized
        '404':
          description: Form not found
        '500':
          description: Error while retrieving data
    put:
      tags:
      - Membership form
      summary: Membership form update
      description: Using the passed form object, updates or inserts are made to save the data.
      requestBody:
        description: The form to be updated or inserted into the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MembershipForm'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MembershipForm'
        '403':
          description: Unauthorized
    delete:
      tags:
      - Membership form
      summary: Membership form delete
      description: Remove a membership form entry with the given ID
      responses:
        '204':
          description: Success
        '403':
          description: Unauthorized
  /form/{id}/complete:
    parameters:
    - name: id
      in: path
      description: Unique ID of the membership form entry
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    post:
      tags:
      - Membership form
      summary: Membership form submit
      description: Submit a finalized form to the membership team
      responses:
        '200':
          description: Success
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConstraintViolations'
        '403':
          description: Unauthorized
        '404':
          description: Form not found
        '500':
          description: Error while retrieving data
  /form/{id}/{transactionId}:
    parameters:
    - name: id
      in: path
      description: Unique ID of the membership form entry
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    - name: transactionId
      in: path
      description: Unique ID of the transaction entry
      required: true
      schema:
        type: number
    - name: token
      in: query
      description: Unique token of the transaction entry
      required: true
      schema:
        type: string
    - name: state
      in: query
      description: The validated state of the current form
      required: true
      schema:
        $ref: '#/components/schemas/FormState'
    get:
      tags:
      - Membership form
      summary: Membership form validation
      description: Validate the current form as CONFIRMED or REJECTED
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request - Missing query parameters
        '404':
          description: Transaction or Form Not Found
        '500':
          description: error while retrieving or updating data
  /form/{id}/contacts:
    parameters:
    - name: id
      in: path
      description: Unique ID of the membership form entry
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    get:
      tags:
      - Form Contacts
      summary: Contacts list
      description: Returns a list of tracked contacts
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contacts'
        '500':
          description: Error while retrieving data
    post:
      tags:
      - Form Contacts
      summary: Contacts create
      description: Using the passed contact object, updates or inserts are made to save the data.
      requestBody:
        description: The contact to be updated or inserted into the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contact'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        '403':
          description: Unauthorized
  /form/{id}/contacts/{contactID}:
    parameters:
    - name: id
      in: path
      description: Unique ID of the membership form entry
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    - name: contactID
      in: path
      description: Unique ID of the contact for the current form
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    get:
      tags:
      - Form Contacts
      summary: Contacts
      description: Returns a contact for the form given a form ID and contact ID
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        '403':
          description: Unauthorized
        '500':
          description: Error while retrieving data
    put:
      tags:
      - Form Contacts
      summary: Contacts update
      description: Using the passed contact object, updates or inserts are made to save the data.
      requestBody:
        description: The contact to be updated or inserted into the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contact'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        '403':
          description: Unauthorized
    delete:
      tags:
      - Form Contacts
      summary: Contacts delete
      description: Remove a contact entry with the given ID
      responses:
        '204':
          description: Success
        '403':
          description: Unauthorized
  /form/{id}/organizations:
    parameters:
    - name: id
      in: path
      description: Unique ID of the membership form entry
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    get:
      tags:
      - Form Organizations
      summary: Form Organizations list
      description: Returns a list of tracked organizationsfor the form
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormOrganizations'
        '500':
          description: Error while retrieving data
    post:
      tags:
      - Form Organizations
      summary: Form Organizations create
      description: Using the passed organization object, a new organization object is saved to the dataset.
      requestBody:
        description: The organization to be updated or inserted into the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FormOrganization'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormOrganization'
        '403':
          description: Unauthorized
  /form/{id}/organizations/{orgID}:
    parameters:
    - name: id
      in: path
      description: Unique ID of the membership form entry
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    - name: orgID
      in: path
      description: Unique ID of the organization for the form entry
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    put:
      tags:
      - Form Organizations
      summary: Form Organizations update
      description: Using the passed organization object, updates or inserts are made to save the data.
      requestBody:
        description: The organization to be updated or inserted into the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FormOrganization'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormOrganization'
        '403':
          description: Unauthorized
    delete:
      tags:
      - Form Organizations
      summary: Form Organizations delete
      description: Remove an organization for the form given a form ID
      responses:
        '204':
          description: Success
        '403':
          description: Unauthorized
  /form/{id}/working_groups:
    parameters:
    - name: id
      in: path
      description: Unique ID of the membership form entry
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    get:
      tags:
      - Form Working Groups
      summary: Form Working Groups list
      description: Returns a list of tracked Form Working Groups for membership form
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormWorkingGroups'
        '403':
          description: Unauthorized
        '500':
          description: Error while retrieving data
    post:
      tags:
      - Form Working Groups
      summary: Form Working Groups create
      description: Using the passed Form Working Groups object, creates a new object in the dataset.
      requestBody:
        description: The working group to be updated or inserted into the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FormWorkingGroup'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormWorkingGroup'
        '403':
          description: Unauthorized
  /form/{id}/working_groups/{workingGroupID}:
    parameters:
    - name: id
      in: path
      description: Unique ID of the membership form entry
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    - name: workingGroupID
      in: path
      description: Unique ID of the working group relationship within a form
      required: true
      schema:
        $ref: '#/components/schemas/ObjectID'
    get:
      tags:
      - Form Working Groups
      summary: Form Working Group
      description: Returns a working group entry that has a matching ID
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormWorkingGroup'
        '403':
          description: Unauthorized
        '500':
          description: Error while retrieving data
    put:
      tags:
      - Form Working Groups
      summary: Form Working Groups update
      description: Using the passed Form Working Groups object, updates or inserts are made to save the data.
      requestBody:
        description: The working group to be updated or inserted into the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FormWorkingGroup'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormWorkingGroup'
        '403':
          description: Unauthorized
    delete:
      tags:
      - Form Working Groups
      summary: Form Working Groups delete
      description: Remove a working group form entry with the given ID
      responses:
        '204':
          description: Success
        '403':
          description: Unauthorized
  /form/state/{state}:
    parameters:
    - name: state
      in: path
      description: Unique ID of the membership form entry
      required: true
      schema:
        $ref: '#/components/schemas/FormState'
    get:
      tags:
      - Membership forms
      summary: Membership form report
      description: Returns a CSV report of the current forms with the given state
      responses:
        '200':
          description: Success
          content:
            text/csv: {}
        '403':
          description: Unauthorized
        '500':
          description: Error while retrieving data
  /working_groups/application:
    get:
      tags:
      - Working Group Application
      summary: Working Group Application list
      description: Returns a list of working group applications
      operationId: getApplications
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkingGroupApplications'
        '500':
          description: Error while retrieving data
    post:
      tags:
      - Working Group Application
      summary: Working Group Application create
      description: Creates a new working group application
      operationId: createApplication
      requestBody:
        description: The working group to be updated or inserted into the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkingGroupApplication'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkingGroupApplication'
        '400':
          description: Bad data passed for initial state of the application
        '500':
          description: Error while creating the application
  /working_groups/application/{id}:
    parameters:
    - name: id
      in: path
      description: Unique ID of the working group application form
      required: true
      schema:
        type: int
    get:
      tags:
      - Working Group Application
      summary: Working Group Application single
      description: Returns a list of working group applications
      operationId: getSingleApplication
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkingGroupApplication'
        '500':
          description: Error while retrieving data
    put:
      tags:
      - Working Group Application
      summary: Working Group Application update
      description: Updates an existing working group application
      operationId: updateApplication
      requestBody:
        description: The working group to be updated in the data set.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkingGroupApplication'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkingGroupApplication'
        '400':
          description: Bad data passed for initial state of the application
        '500':
          description: Error while creating the application
  /working_groups/application/{id}/complete:
    parameters:
    - name: id
      in: path
      description: Unique ID of the working group application form
      required: true
      schema:
        type: int
    post:
      tags:
      - Working Group Application
      summary: Working Group Application complete
      description: Completes an existing working group application
      operationId: workingGroupApplicationComplete
      responses:
        '200':
          description: Success
        '400':
          description: Bad data passed for initial state of the application
        '404':
          description: No application found with the given ID
        '500':
          description: Error while creating the application
  /email/optout/{id}/{transactionId}:
    parameters:
    - name: id
      in: path
      description: Unique contact ID
      required: true
      schema:
        type: string
    - name: transactionId
      in: path
      description: Unique ID of the transaction entry
      required: true
      schema:
        type: number
    - name: token
      in: query
      description: Secure Transaction token for validation
      required: true
      schema:
        type: string
    - name: email
      in: query
      description: Contact email to be opted out from further emails
      required: true
      schema:
        type: string
    get:
      tags:
      - Email
      summary: Opt out an email
      description: Adds an email to our opt-out list to be excluded from further emails
      responses:
        '200':
          description: Success
        '400':
          description: Bad Request - Missing email or token param
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Transaction Not Found
        '500':
          description: Error while retrieving or updating data
  /userinfo:
    get:
      tags:
      - User Info
      summary: Info on currently logged in user
      description: returns information about the currently logged in user
      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.
    Contacts:
      type: array
      items:
        $ref: '#/components/schemas/Contact'
    Contact:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ObjectID'
        form_id:
          $ref: '#/components/schemas/ObjectID'
        first_name:
          type: string
          description: First name of the contact
        last_name:
          type: string
          description: Last name of the contact
        email:
          type: string
          description: Professional email address at which the individual can be reached at
        job_title:
          type: string
          description: Job title of the contact
        type:
          $ref: '#/components/schemas/ContactType'
    ContactType:
      type: string
      description: The type of contact that is being stored
      enum:
      - COMPANY
      - WORKING_GROUP
      - MARKETING
      - ACCOUNTING
      - SIGNING
    FormState:
      type: string
      description: the current form state
      enum:
      - SUBMITTED
      - INPROGRESS
      - COMPLETE
      - CONFIRMED
      - REJECTED
    FormOrganizations:
      type: array
      items:
        $ref: '#/components/schemas/FormOrganization'
    FormOrganization:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ObjectID'
        form_id:
          $ref: '#/components/schemas/ObjectID'
        legal_name:
          type: string
          description: Legal Name of the Organization
        organization_type:
          type: string
          description: The category of organization used for fee determination for current entity
          enum:
          - NON_PROFIT_OPEN_SOURCE
          - ACADEMIC
          - STANDARDS
          - GOVERNMENT_ORGANIZATION_AGENCY_NGO
          - MEDIA_ORGANIZATION
          - RESEARCH
          - OTHER
        twitter:
          type: string
          description: The Twitter handle of the organization
        aggregate_revenue:
          type: string
          description: The aggregate revenue of the organization and its affiliates
        employee_count:
          type: string
          description: The number of employees for the given organization
        address:
          type: object
          properties:
            address_line_"1":
              type: string
              description: Street address of the organization
            address_line_"2":
              type:
              - string
              - 'null'
              description: Additional information about the street address of the organization
            locality:
              type: string
              description: The city/township in which the organization is based
            administrative_area:
              type: string
              description: The province/state/area in which the organization is based
            country:
              type: string
              description: The country in which the organization is based
            postal_code:
              type: string
              description: The postal code of the physical address of the organization
    MembershipForms:
      type: array
      items:
        $ref: '#/components/schemas/MembershipForm'
    MembershipForm:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ObjectID'
        user_id:
          $ref: '#/components/schemas/ObjectID'
        membership_level:
          type: string
          description: The level of membership with the Eclipse Foundation that is being targeted.
        signing_authority:
          type: boolean
          description: Whether the currently submitting user has signing authority for membership contracts.
        purchase_order_required:
          type:
          - string
          - 'null'
          description: Indicator for whether a purchase order is required, either yes, no, or not applicable.
          enum:
          - 'yes'
          - 'no'
          - na
        vat_number:
          type:
          - string
          - 'null'
          description: The EU VAT registration number, if applicable
        registration_country:
          type:
          - string
          - 'null'
          description: The EU country the organization is registered under for VAT.
        updated_date:
          $ref: '#/components/schemas/DateTime'
    FormWorkingGroups:
      type: array
      items:
        $ref: '#/components/schemas/FormWorkingGroup'
    FormWorkingGroup:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ObjectID'
        form_id:
          $ref: '#/components/schemas/ObjectID'
        working_group:
          type: string
          description: The ID of the working group relationship to be formed
        participation_level:
          type: string
          description: The desired participation level desired within the new working group
        effective_date:
          $ref: '#/components/schemas/DateTime'
        contact:
          $ref: '#/components/schemas/Contact'
    WorkingGroups:
      type: array
      items:
        $ref: '#/components/schemas/WorkingGroup'
    WorkingGroup:
      type: object
      properties:
        alias:
          type: string
          description: internal alias for the working group
        title:
          type: string
          description: Public-facing or official name of the working group
        status:
          type: string
          description: Current status of the working group (e.g. incubating, active, archived)
        logo:
          type: string
          description: image link for the working groups logo
        description:
          type: string
          description: Short description of the working group
        resources:
          type: object
          properties:
            charter:
              type: string
              description: Link to the charter for the current working group
            contact_form:
              type: string
              description: URL link to the contact form
            members:
              type: string
              description: URL to the members list for the given working group
            participation_agreements:
              type: object
              properties:
                individual:
                  $ref: '#/components/schemas/WorkingGroupParticipationAgreement'
                organization:
                  $ref: '#/components/schemas/WorkingGroupParticipationAgreement'
            sponsorship:
              type: string
              description: link to the sponsorship agreement document
            website:
              type: string
              description: the URL for the homepage of this working group
        levels:
          type: array
          items:
            type: object
            description: Definition of the participation level for the working group, including its relation code
            properties:
              relation:
                type: string
                description: code representing the relation, used internally when using common relation types
              description:
                type: string
                description: the label for the participation level
    WorkingGroupParticipationAgreement:
      type: object
      properties:
        document_id:
          $ref: '#/components/schemas/ObjectID'
        pdf:
          type: string
          description: Link to the PDF version of the participation agreement
    WorkingGroupApplications:
      type: array
      items:
        $ref: '#/components/schemas/WorkingGroupApplication'
    WorkingGroupApplication:
      type: object
      properties:
        id:
          type:
          - integer
          - 'null'
          description: Unique ID for the working group application, can be ommitted for new applications.
        user:
          type: string
          description: Requesting user from the organization
        org_id:
          type: integer
          description: The organization associated with the request
        contacts:
          type:
          - array
          - 'null'
          items:
            type: object
            properties:
              user:
                type:
                - 'null'
                - string
                description: The username of the user if it already exists.
              first_name:
                type:
                - 'null'
                - string
                description: The first name of the user (only needed if the user does not yet exist).
              last_name:
                type:
                - 'null'
                - string
                description: The last name of the user (only needed if the user does not yet exist).
              job_title:
                type:
                - 'null'
                - string
                description: The job title of the user (only needed if the user does not yet exist).
              working_group_alias:
                type:
                - 'null'
                - string
                description: Alias of the working group to join
              working_group_level:
                type:
                - 'null'
                - string
                description: The relation code for the level the organization wishes to join the Working Group at.
              mail:
                type:
                - 'null'
                - string
                description: Professional email address at which the individual can be reached at  (only needed if the user
                  does not yet exist).
              is_signing_authority:
                type: boolean
                description: Whether the given user is the signing authority for the current application batch
        created:
          type: string
          description: The time the application was created
        updated:
          type: string
          description: The time the application was last updated
        state:
          type: string
          description: The current state of the application
          enum:
          - INPROGRESS
          - SUBMITTED
          - COMPLETE
    ConstraintViolations:
      type: array
      items:
        $ref: '#/components/schemas/ConstraintViolation'
    ConstraintViolation:
      type: object
      properties:
        root_id:
          $ref: '#/components/schemas/ObjectID'
          description: ID of the object that was validated.
        path:
          type: string
          description: path to the property that had an error.
        type:
          type: string
          description: name of the type of object that had errors (i.e, Contact, FormOrganization, MembershipForm etc.).
        value:
          type: object
          description: the bad value in question.
    Error:
      type: object
      properties:
        status_code:
          type: integer
          description: HTTP response code
        message:
          type: string
          description: Message containing error information
        url:
          type:
          - string
          - 'null'
          description: The URL
    InfoWrapper:
      type: object
      properties:
        name:
          type: string
          description: User name
        given_name:
          type: string
          description: First name of the user
        family_name:
          type: string
          description: Family name of the user
        email:
          type:
          - string
          - 'null'
          description: Email of the user.
        organizational_roles:
          description: A map containing the user's organizational roles
          properties:
            organization_id:
              type: integer
              description: the organization id
          additionalProperties:
            type: array
            items:
              type: string