Crowd.dev Stewardship API
Stewardship state — individual and batch.
Stewardship state — individual and batch.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/crowddev-stewardship-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: CDP Public API — Packages Stewardship API
version: 1.0.0
description: 'Read-only endpoints for the OSSPREY Self Serve program.
**Authentication:** OAuth 2.0 M2M bearer token. Package endpoints require `read:packages` or `read:stewardships`. The batch stewardship endpoint requires `read:stewardships` only.
**V1 constraints:** All stewardship rows are `unassigned`. Write endpoints and state transitions are deferred to v2.
'
servers:
- url: https://cm.lfx.dev/api/v1
description: Production
- url: https://lf-staging.crowd.dev/api/v1
description: Staging
tags:
- name: Stewardship
description: Stewardship state — individual and batch.
paths:
/packages:batch-stewardship:
post:
operationId: batchGetStewardship
summary: Batch stewardship state for a list of purls
description: 'Returns lean stewardship state for up to 100 purls in one request. Purls not found in CDP return `null`.
'
tags:
- Stewardship
security:
- M2MBearer:
- read:stewardships
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- purls
properties:
purls:
type: array
items:
type: string
minItems: 1
maxItems: 100
example:
- pkg:npm/lodash
- pkg:npm/express
- pkg:pypi/requests
responses:
'200':
description: 'Stewardship state keyed by purl. Unknown or invalid purls return `null`.
'
content:
application/json:
schema:
type: object
required:
- packages
properties:
packages:
type: object
additionalProperties:
oneOf:
- $ref: '#/components/schemas/StewardshipSummary'
- type: 'null'
example:
packages:
pkg:npm/lodash@4.17.21:
name: lodash
ecosystem: npm
lifecycle: declining
health:
score: 18
label: critical
impact: 71
openVulns:
low: 0
medium: 0
high: 1
critical: 0
stewardship: unassigned
stewards: null
lastActivityAt: null
lastActivityDescription: null
pkg:pypi/requests: null
'400':
description: Validation error (e.g. more than 100 purls).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Missing or invalid bearer token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Insufficient scopes.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Error:
type: object
required:
- error
properties:
error:
type: object
required:
- code
- message
properties:
code:
type: string
example: NOT_FOUND
message:
type: string
example: Package not found.
StewardshipStatus:
type: string
enum:
- unassigned
- open
- assessing
- active
- needs_attention
- escalated
- blocked
- inactive
OpenVulns:
type: object
description: Open vulnerability counts by severity from advisory_packages + advisories.
required:
- low
- medium
- high
- critical
properties:
low:
type: integer
example: 0
medium:
type: integer
example: 0
high:
type: integer
example: 1
critical:
type: integer
example: 0
StewardshipSummary:
type: object
description: Null if the purl is not found in CDP.
required:
- name
- ecosystem
- stewardship
- stewards
- openVulns
- lastActivityAt
- lastActivityDescription
properties:
name:
type: string
example: lodash
ecosystem:
type: string
example: npm
lifecycle:
type:
- string
- 'null'
enum:
- active
- stable
- declining
- abandoned
- archived
- null
health:
type:
- integer
- 'null'
example: 52
impact:
type:
- integer
- 'null'
example: 94
openVulns:
oneOf:
- $ref: '#/components/schemas/OpenVulns'
- type: 'null'
stewardship:
$ref: '#/components/schemas/StewardshipStatus'
stewards:
description: Assigned stewards or null. Empty in v1.
oneOf:
- type: array
items:
$ref: '#/components/schemas/Steward'
- type: 'null'
lastActivityAt:
type:
- string
- 'null'
format: date-time
description: Null in v1.
lastActivityDescription:
type:
- string
- 'null'
description: Null in v1.
Steward:
type: object
required:
- userId
- role
- assignedAt
properties:
userId:
type: string
description: Auth0 sub of the assigned steward.
example: abc123
username:
type:
- string
- 'null'
description: Username of the steward. Null if not available.
example: jrodriguez
displayName:
type:
- string
- 'null'
description: Display name of the steward. Null if not available.
example: Jonathan R.
role:
type: string
enum:
- lead
- co_steward
assignedAt:
type: string
format: date-time
securitySchemes:
M2MBearer:
type: http
scheme: bearer
bearerFormat: JWT