Crowd.dev Member Identities API

Manage and verify member identities across platforms.

Operations 3

GET /members/{memberId}/identities List member identities #
POST /members/{memberId}/identities Add a new identity #
PATCH /members/{memberId}/identities/{identityId} Verify or reject an identity #

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/crowddev-member-identities-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

crowddev-member-identities-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CDP Public Member Identities API
  version: 1.0.0
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  description: "Public REST API for the Community Data Platform (CDP). Provides transactional endpoints for identity verification, work experience management, project affiliations, and contributor lookup.\n\nTwo authentication methods are supported depending on the endpoint:\n- **OAuth 2.0 Bearer (Auth0)** — used by LFX One for member, organization,\n  and affiliation management endpoints.\n\n- **Static API Key** — bearer token with scopes managed in the CDP database.\n"
servers:
- url: https://cm.lfx.dev/api/v1
  description: Production
- url: https://lf-staging.crowd.dev/api/v1
  description: Staging
security: []
tags:
- name: Member Identities
  description: Manage and verify member identities across platforms.
paths:
  /members/{memberId}/identities:
    get:
      operationId: getMemberIdentities
      summary: List member identities
      description: Retrieve all identities for a member profile.
      tags:
      - Member Identities
      security:
      - OAuth2Bearer:
        - read:member-identities
      parameters:
      - $ref: '#/components/parameters/MemberId'
      responses:
        '200':
          description: Identities retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                required:
                - identities
                properties:
                  identities:
                    type: array
                    items:
                      $ref: '#/components/schemas/MemberIdentity'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/MemberNotFound'
    post:
      operationId: createMemberIdentity
      summary: Add a new identity
      description: 'Add a new identity to a member profile. Returns 409 if the identity already exists on this member or is verified on another member.

        '
      tags:
      - Member Identities
      security:
      - OAuth2Bearer:
        - write:member-identities
      parameters:
      - $ref: '#/components/parameters/MemberId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - value
              - platform
              - type
              - source
              - verified
              properties:
                value:
                  type: string
                  minLength: 1
                  description: Identity value (e.g. username, email address).
                platform:
                  type: string
                  minLength: 1
                  description: Platform name (e.g. github, linkedin).
                type:
                  type: string
                  enum:
                  - username
                  - email
                  description: Identity type.
                source:
                  type: string
                  minLength: 1
                  description: Source system that created this identity.
                verified:
                  type: boolean
                  description: Whether the identity is verified.
                verifiedBy:
                  type: string
                  description: Required when `verified` is true. Identifier of who verified.
            example:
              value: johndoe
              platform: github
              type: username
              source: lfxOne
              verified: true
              verifiedBy: admin@lfx.dev
      responses:
        '201':
          description: Identity created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberIdentity'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/MemberNotFound'
        '409':
          description: Identity already exists on another member.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpError'
              example:
                error:
                  code: CONFLICT
                  message: Identity already exists on another member
  /members/{memberId}/identities/{identityId}:
    patch:
      operationId: verifyMemberIdentity
      summary: Verify or reject an identity
      description: 'Set an identity as verified or rejected. When rejected (`verified: false`), the identity is either soft-deleted (no linked activities) or unmerged to a new profile (has linked activities).

        '
      tags:
      - Member Identities
      security:
      - OAuth2Bearer:
        - write:member-identities
      parameters:
      - $ref: '#/components/parameters/MemberId'
      - name: identityId
        in: path
        required: true
        description: UUID of the identity to verify or reject.
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - verified
              - verifiedBy
              properties:
                verified:
                  type: boolean
                  description: '`true` to verify the identity, `false` to reject it.

                    '
                verifiedBy:
                  type: string
                  description: Identifier of who performed the verification.
            example:
              verified: true
              verifiedBy: admin@lfx.dev
      responses:
        '200':
          description: 'Identity updated. Returned when verifying, or when rejecting an identity that has linked activities (triggers unmerge).

            '
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/MemberIdentity'
                - type: object
                  properties:
                    unmergedToMemberId:
                      type: string
                      format: uuid
                      description: 'Present only when rejection triggered an unmerge. The new member profile ID that the identity was moved to.

                        '
        '204':
          description: 'Identity rejected and deleted (no linked activities). No response body.

            '
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: Member or identity not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpError'
        '409':
          description: Identity already exists on another member.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpError'
              example:
                error:
                  code: CONFLICT
                  message: Identity already exists on another member
components:
  responses:
    BadRequest:
      description: Invalid request body or query parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HttpError'
          example:
            error:
              code: BAD_REQUEST
              message: Validation failed
    MemberNotFound:
      description: No member found with the given ID.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HttpError'
          example:
            error:
              code: NOT_FOUND
              message: Member not found
    Forbidden:
      description: Authentication valid but insufficient scopes.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HttpError'
          example:
            error:
              code: INSUFFICIENT_SCOPE
              message: Insufficient scope for this operation
    Unauthorized:
      description: Missing or invalid authentication credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HttpError'
          example:
            error:
              code: UNAUTHORIZED
              message: Invalid or missing authentication
  schemas:
    HttpError:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
              description: Machine-readable error code.
            message:
              type: string
              description: Human-readable error description.
    MemberIdentity:
      type: object
      required:
      - id
      - value
      - platform
      - type
      - verified
      - verifiedBy
      - source
      - createdAt
      - updatedAt
      properties:
        id:
          type: string
          format: uuid
        value:
          type: string
          description: Identity value (username or email).
        platform:
          type: string
          description: Platform name (e.g. github, linkedin, lfid).
        type:
          type: string
          enum:
          - username
          - email
          description: Identity type.
        verified:
          type: boolean
        verifiedBy:
          type:
          - string
          - 'null'
          description: Identifier of who verified this identity, or null.
        source:
          type:
          - string
          - 'null'
          description: Source system that created this identity.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
  parameters:
    MemberId:
      name: memberId
      in: path
      required: true
      description: UUID of the member.
      schema:
        type: string
        format: uuid
  securitySchemes:
    OAuth2Bearer:
      type: oauth2
      description: 'OAuth 2.0 client credentials flow via Auth0. The consuming service obtains a JWT using its client ID and secret, then passes it as `Authorization: Bearer <token>`

        '
      flows:
        clientCredentials:
          tokenUrl: https://linuxfoundation.auth0.com/oauth/token
          scopes:
            read:members: Read member profiles
            write:members: Create member profiles
            read:member-identities: Read member identities
            write:member-identities: Create and verify member identities
            read:maintainer-roles: Read maintainer roles
            read:work-experiences: Read work experiences
            write:work-experiences: Create, update, verify, and delete work experiences
            read:project-affiliations: Read project affiliations
            write:project-affiliations: Override project affiliations
            read:organizations: Look up organizations
            write:organizations: Create organizations
    StaticApiKey:
      type: http
      scheme: bearer
      description: 'Static API key — pass as `Authorization: Bearer <token>`. Keys are managed in the CDP database with SHA-256 hashing, expiration, and revocation support.

        '