← back to Norma

agents/datasource-agent/lib/api-registry.js

58 lines

/**
 * API Registry — Known data API catalogs for nonprofit advocacy / education / consumer finance topics.
 *
 * Each entry describes a catalog endpoint to search for relevant datasets.
 * The discover-apis skill iterates through these to find new data sources.
 */

module.exports = [
  {
    name: 'Data.gov',
    type: 'ckan',
    url: 'https://catalog.data.gov/api/3/action/package_search',
    params: { q: 'nonprofit advocacy education policy', rows: 20 },
  },
  {
    name: 'Socrata',
    type: 'socrata',
    url: 'https://api.us.socrata.com/api/catalog/v1',
    params: { q: 'nonprofit advocacy', limit: 20 },
  },
  {
    name: 'ProPublica',
    type: 'propublica',
    url: 'https://projects.propublica.org/nonprofits/api/v2/search.json',
    params: { q: 'nonprofit advocacy' },
  },
  {
    name: 'Census',
    type: 'census',
    url: 'https://api.census.gov/data.json',
    params: {},
  },
  {
    name: 'BLS',
    type: 'bls',
    url: 'https://api.bls.gov/publicAPI/v2/timeseries/data/',
    params: {},
  },
  {
    name: 'FRED',
    type: 'fred',
    url: 'https://api.stlouisfed.org/fred/series/search',
    params: { search_text: 'nonprofit advocacy', api_key: 'demo', file_type: 'json' },
  },
  {
    name: 'OpenFEC',
    type: 'fec',
    url: 'https://api.open.fec.gov/v1/',
    params: {},
  },
  {
    name: 'CFPB Complaints',
    type: 'cfpb',
    url: 'https://www.consumerfinance.gov/data-research/consumer-complaints/search/api/v1/',
    params: { product: 'Consumer finance' },
  },
];