Skip to content

Grants API

The Grants API provides discovery, search, and filtering of EU and national carbon/sustainability grant opportunities. Most grant endpoints are public (no authentication required), except for the company matching preview which requires tenant context.


Endpoints

GET /grants

List all grants with pagination, filtering, and sorting.

Authentication: Not required

{
  "items": [
    {
      "id": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
      "title": "Horizon Europe - Clean Energy Transition",
      "description": "Funding for clean energy research and innovation...",
      "source": "cordis",
      "funding_amount_min": 500000,
      "funding_amount_max": 5000000,
      "currency": "EUR",
      "deadline": "2025-06-30T23:59:59Z",
      "countries": ["DE", "FR", "IT", "ES"],
      "nace_codes": ["D35", "M72"],
      "company_sizes": ["small", "medium"],
      "status": "active",
      "is_open": true,
      "days_until_deadline": 45,
      "is_carbon_focused": true,
      "carbon_categories": ["renewable_energy", "clean_technology"],
      "eu_taxonomy_aligned": true,
      "green_deal_aligned": true,
      "taxonomy_objectives": ["climate_mitigation"]
    }
  ],
  "total": 342,
  "page": 1,
  "page_size": 20,
  "pages": 18
}
curl -X GET "https://api.carbonconnect.io/api/v1/grants?country=DE&open_only=true&sort_by=deadline&page_size=10"

Query Parameters:

Parameter Type Default Description
page integer 1 Page number (>= 1)
page_size integer 20 Items per page (1-100)
country string -- Filter by eligible country (ISO code)
nace_code string -- Filter by industry NACE code
min_funding float -- Minimum funding amount (EUR)
max_funding float -- Maximum funding amount (EUR)
status string -- Grant status: active, closed, upcoming
company_size string -- Eligible company size: micro, small, medium, large
open_only boolean -- Only show grants with future deadlines
source string -- Data source: cordis, eu_portal, cohesion, innovate_uk
sort_by string -- Sort field: deadline, funding_amount, created_at
sort_order string asc Sort direction: asc or desc

Status Codes:

Code Description
200 Grant list returned

GET /grants/search

Full-text search with faceted filtering. Uses Meilisearch for sub-100ms latency when available, with automatic fallback to PostgreSQL ILIKE search.

Authentication: Not required

{
  "items": [
    {
      "id": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
      "title": "Horizon Europe - Clean Energy Transition",
      "source": "cordis",
      "is_carbon_focused": true,
      "carbon_categories": ["renewable_energy"]
    }
  ],
  "total": 15,
  "query": "renewable energy",
  "page": 1,
  "page_size": 20,
  "pages": 1,
  "processing_time_ms": 12,
  "facets": {
    "countries": {"DE": 5, "FR": 3, "IT": 2},
    "source": {"cordis": 8, "eu_portal": 7},
    "company_sizes": {"small": 10, "medium": 12},
    "status": {"active": 14, "upcoming": 1}
  },
  "used_meilisearch": true
}
curl -X GET "https://api.carbonconnect.io/api/v1/grants/search?q=renewable+energy&country=DE&open_only=true"

Query Parameters:

Parameter Type Default Description
q string -- Required. Search query (min 1 char)
page integer 1 Page number
page_size integer 20 Items per page (1-100)
country string -- Filter by eligible country
nace_code string -- Filter by NACE code
status string -- Grant status filter
company_size string -- Company size filter
source string -- Data source filter
min_funding float -- Minimum funding amount
max_funding float -- Maximum funding amount
open_only boolean false Only show open grants
sort_by string -- Sort field
sort_order string asc Sort direction

Response Fields (GrantFacetedSearchResponse):

Field Type Description
items array Array of GrantResponse objects
total integer Total matching results
query string The search query used
page integer Current page
page_size integer Page size
pages integer Total pages
processing_time_ms integer Search latency in milliseconds
facets object Facet counts for dynamic filtering (null in fallback)
used_meilisearch boolean true if Meilisearch was used, false for PostgreSQL

Faceted Filtering

When Meilisearch is available, the facets field provides counts for each filter value, enabling dynamic filter UIs that show how many results match each option.


GET /grants/search/simple

Simple PostgreSQL full-text search. Maintained for backward compatibility with existing clients.

Authentication: Not required

curl -X GET "https://api.carbonconnect.io/api/v1/grants/search/simple?q=hydrogen&country=DE"

Query Parameters:

Parameter Type Default Description
q string -- Required. Search query
page integer 1 Page number
page_size integer 20 Items per page (1-100)
country string -- Country filter
nace_code string -- NACE code filter
status string -- Status filter
company_size string -- Company size filter
source string -- Source filter

Response (GrantSearchResponse):

{
  "items": [...],
  "total": 8,
  "query": "hydrogen"
}

Prefer /grants/search

For new integrations, use /grants/search instead. It provides Meilisearch-powered search with facets and better performance.


GET /grants/stats

Get aggregate grant statistics including carbon-focused breakdowns.

Authentication: Not required

{
  "total_grants": 1250,
  "active_grants": 890,
  "closed_grants": 310,
  "upcoming_grants": 50,
  "by_source": {
    "cordis": 520,
    "eu_portal": 380,
    "cohesion": 200,
    "innovate_uk": 150
  },
  "by_country": {
    "DE": 320,
    "FR": 280,
    "IT": 190
  },
  "carbon_focused_grants": 445,
  "by_carbon_category": {
    "energy_efficiency": 180,
    "renewable_energy": 150,
    "clean_technology": 85,
    "circular_economy": 30
  }
}
curl -X GET https://api.carbonconnect.io/api/v1/grants/stats

GET /grants/sources

Get the list of grant data sources with counts.

Authentication: Not required

[
  {"source": "cordis", "count": 520},
  {"source": "eu_portal", "count": 380},
  {"source": "cohesion", "count": 200},
  {"source": "innovate_uk", "count": 150}
]
curl -X GET https://api.carbonconnect.io/api/v1/grants/sources

GET /grants/deadlines

Get grants with upcoming deadlines, sorted by soonest first.

Authentication: Not required

[
  {
    "id": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
    "title": "Green Innovation Fund - Round 3",
    "deadline": "2025-02-15T23:59:59Z",
    "days_until_deadline": 7,
    "funding_amount_max": 250000,
    "is_carbon_focused": true
  }
]
curl -X GET "https://api.carbonconnect.io/api/v1/grants/deadlines?days=60&limit=20"

Query Parameters:

Parameter Type Default Description
days integer 30 Look-ahead window in days (1-365)
limit integer 10 Maximum results (1-50)

GET /grants/{grant_id}

Get full details for a specific grant.

Authentication: Not required

curl -X GET https://api.carbonconnect.io/api/v1/grants/b1c2d3e4-f5a6-7890-bcde-f12345678901

Path Parameters:

Parameter Type Description
grant_id UUID Grant ID

Status Codes:

Code Description
200 Grant returned
404 Grant not found

GET /grants/{grant_id}/similar

Find grants similar to the specified grant based on country, NACE codes, and funding range.

Authentication: Not required

[
  {
    "id": "c2d3e4f5-a6b7-8901-cdef-234567890123",
    "title": "European Innovation Council - Clean Energy",
    "source": "eu_portal",
    "countries": ["DE", "FR"],
    "nace_codes": ["D35"],
    "is_carbon_focused": true
  }
]
curl -X GET "https://api.carbonconnect.io/api/v1/grants/b1c2d3e4-f5a6-7890-bcde-f12345678901/similar?limit=5"

Query Parameters:

Parameter Type Default Description
limit integer 5 Maximum similar grants (1-20)

Status Codes:

Code Description
200 Similar grants returned
404 Source grant not found

GET /grants/matching/{company_id}

Preview grants matching a company's profile using basic rule-based criteria. For full AI-powered matching with scores, use the Matches API.

Authentication: Required

{
  "items": [
    {
      "id": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
      "title": "Green Innovation Fund",
      "countries": ["DE"],
      "nace_codes": ["M71"],
      "is_carbon_focused": true
    }
  ],
  "company_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "total_matches": 12
}
curl -X GET "https://api.carbonconnect.io/api/v1/grants/matching/a1b2c3d4-e5f6-7890-abcd-ef1234567890?page=1&page_size=10" \
  -H "Authorization: Bearer <token>"

Path Parameters:

Parameter Type Description
company_id UUID Company ID

Query Parameters:

Parameter Type Default Description
page integer 1 Page number
page_size integer 20 Items per page (1-100)

Status Codes:

Code Description
200 Matching grants returned
401 Not authenticated
404 Company not found or wrong tenant

Grant Response Schema

The full GrantResponse object includes the following fields:

Core Fields

Field Type Description
id UUID Grant ID
title string Grant title
description string Full description
summary string Short summary
source string Data source identifier
source_url string Original URL
external_id string ID in the source system

Funding Information

Field Type Description
funding_amount_min float Minimum funding amount (EUR)
funding_amount_max float Maximum funding amount (EUR)
funding_rate_min float Minimum co-funding rate (0-1)
funding_rate_max float Maximum co-funding rate (0-1)
currency string Currency code (default: EUR)

Dates

Field Type Description
deadline string Application deadline
publication_date string Publication date
start_date string Project start date
end_date string Project end date

Carbon Classification

Field Type Description
is_carbon_focused boolean Whether grant targets carbon reduction
carbon_categories string[] Carbon category tags
min_emission_reduction_percent float Required emission reduction (%)
eligible_scopes string[] Eligible emission scopes
eu_taxonomy_aligned boolean EU Taxonomy alignment
green_deal_aligned boolean European Green Deal alignment
fit_for_55_relevant boolean Fit for 55 package relevance
supports_csrd_compliance boolean CSRD reporting support
supports_sbti_alignment boolean Science Based Targets support
taxonomy_objectives string[] EU Taxonomy environmental objectives

Carbon Categories

Valid values for carbon_categories:

Category Description
energy_efficiency Energy efficiency improvements
renewable_energy Renewable energy installations
clean_technology Clean technology adoption
circular_economy Circular economy initiatives
sustainable_transport Sustainable transport solutions
green_buildings Green building projects
carbon_capture Carbon capture and storage
hydrogen Hydrogen economy projects
industrial_decarbonization Industrial process decarbonization
sustainable_agriculture Sustainable agriculture practices
biodiversity Biodiversity protection
water_management Water management improvements
waste_reduction Waste reduction initiatives
climate_adaptation Climate adaptation measures