OpenOrganizations API
Public JSON for organizations, programs and proposals. No API key required.
| GET endpoint | Contents | Response keys |
|---|---|---|
/api/v1/organizations.json | All organizations | meta, organizations |
/api/v1/programs.json | Program registry and coverage | meta, programs |
/api/v1/proposals.json | Proposal links and source archives | meta, sources, proposals |
/api/v1/organizations/3dtk.json | One organization, by slug | meta, organization, proposals |
Quick start
const response = await fetch('https://openorganizations.site/api/v1/organizations.json');
if (!response.ok) throw new Error('API request failed');
const { organizations } = await response.json();
const gsoc = organizations.filter(org =>
org.participations.some(p => p.program === 'gsoc')
);How it works
These are static snapshots, updated with website deployments. Filter the response in your code; query parameters do not filter these endpoints. Reuse a downloaded snapshot instead of requesting it for every result. Cross-origin browser requests are supported.
Each organization includes its slug, description, website, technologies, topics and participation records. Each participation identifies its program, year, cohort, projects and source. Use an organization’s slug in /api/v1/organizations/SLUG.json. Unknown slugs return 404.
Coverage and attribution
The API uses the same directory cutoff as the website: at least one indexed participation from 2016 onward. Earlier history for retained organizations remains available. Proposal outcomes are reported by archive maintainers. Preserve source URLs, attribution and license fields when reusing data; see sources and coverage.