Back to overview

API reference

The Startup Opportunities API returns structured JSON for grants, competitions and events. Every endpoint is bearer-authenticated and paginates with an opaque cursor.


Authentication

Every request carries a bearer token in the Authorization header. Keys look like sgi_live_…. A missing key returns 401; a valid key without the required dataset scope returns 403.

Example — curl
curl -H "Authorization: Bearer sgi_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
     "https://www.startupgrantsindia.com/api/public/v1/grants?limit=5"

Don’t have a key? .


Base URL & versioning

Every endpoint lives under this base URL. Breaking changes ship as a new version prefix (e.g. /v2); the current version stays available for at least six months after a new one lands.

https://www.startupgrantsindia.com/api/public/v1

Pagination

List endpoints paginate with an opaque cursor. Each response has a next_cursor field; pass it back as ?cursor=… to fetch the next page. When the field is null, you’ve reached the end.

Response envelope
{
  "data": [ /* up to `limit` items */ ],
  "next_cursor": "MTIz"   // null when there are no more pages
}

Max limit is 50, default 20. Cursors are stable within a version — safe to store and resume from later.


Grants

Scope grants:read · ~2,300 programs

Time-bound government schemes, incubator cohorts, accelerator batches, CSR programs and rolling grants across India — with deadlines, funding ranges, eligibility summaries, application URLs and program-published documents.

GET/api/public/v1/grantsList (paginated)
GET/api/public/v1/grants/{slug}Detail
GET/api/public/v1/grants/facetsFacet counts

Query parameters

ParamTypeDescription
limit
e.g. 20
int (1–50)Page size. Defaults to 20.
cursorstringOpaque token from the previous response's next_cursor. Omit for the first page.
q
e.g. climate
stringFree-text search over title, summary, organizer and location.
status
e.g. active
enumOne of active | closed | upcoming | inactive. Defaults to active.
funding_type
e.g. grant,fellowship
CSVgrant | fellowship | equity | debt | subsidy | competition. Multiple values OR-matched.
program_formatstringExact match on the program format (e.g. accelerator).
badgestringExact match on the cohort badge (e.g. flagship, women, dpiit-only).
support_type
e.g. mentorship,workspace
CSVOverlap filter on the support_type array. Row matches if it lists ANY of the values.
offerings
e.g. cash,mentorship
CSVOverlap filter on offerings (cash, mentorship, lab access, …).
tags
e.g. climate,agritech
CSVOverlap filter on tags.
amount_min
e.g. 500000
int (INR)Keep grants whose maximum award is at least this much.
amount_max
e.g. 5000000
int (INR)Keep grants whose minimum ask fits under this budget ceiling.
deadline_before
e.g. 2026-12-31
ISO dateGrants whose deadline is on or before this date.
deadline_after
e.g. 2026-08-01
ISO dateGrants whose deadline is on or after this date.
is_rollingbooltrue to keep only rolling programs, false to exclude them.
is_competitionbool
is_equity_freebool
is_repayablebool
is_bootstrapped_friendlybool
is_csr_fundedbool
is_internationalbool
sourcestringilike match on the source name.

Sample response

GET /api/public/v1/grants
{
  "data": [
    {
      "id": 481,
      "slug": "startup-india-seed-fund-scheme",
      "title": "Startup India Seed Fund Scheme (SISFS)",
      "organizer": "DPIIT, Government of India",
      "short_description": "Up to ₹50 lakh grant + convertible debenture for DPIIT-registered startups via approved incubators.",
      "funding_type": "grant",
      "is_competition": false,
      "amount_min_inr": 500000,
      "amount_max_inr": 5000000,
      "status": "active",
      "deadline": null,
      "is_rolling": true,
      "apply_url": "https://seedfund.startupindia.gov.in/",
      "tags": ["dpiit", "seed", "flagship"],
      "url": "https://www.startupgrantsindia.com/startup-india-seed-fund-scheme"
    }
  ],
  "next_cursor": "NDgx"
}

Fields returned

  • title, slug, short_description, description
  • funding_type, is_competition, program_format, support_type, offerings
  • amount_min_inr, amount_max_inr, application_fee_inr, stipend_monthly_inr
  • status, deadline, is_rolling, cycle_opens_at
  • eligibility_summary, funding_benefits, application_stages, faq (detail only)
  • apply_url, apply_email, contact_name, contact_phone
  • program_documents (labels + download URLs)
  • source, source_url

Competitions

Scope competitions:read · ~100 active

Startup competitions and hackathons with cash prizes — registration deadlines, event dates, prize pool, team-size limits, themes and application links.

GET/api/public/v1/competitionsList (paginated)
GET/api/public/v1/competitions/{slug}Detail
GET/api/public/v1/competitions/facetsFacet counts

Query parameters

ParamTypeDescription
limit
e.g. 20
int (1–50)Page size. Defaults to 20.
cursorstringOpaque token from the previous response's next_cursor. Omit for the first page.
q
e.g. climate
stringFree-text search over title, summary, organizer and location.
type
e.g. hackathon,pitch
CSVCompetition type (hackathon, pitch, business-plan, …). Multiple OR-matched.
organizerstringilike match on the organizer name.
location
e.g. Bengaluru
stringilike match on the location string.
is_onlinebooltrue to keep only online competitions, false for on-site only.
prize_min_inr
e.g. 100000
int (INR)Keep competitions with a prize pool at least this large.
prize_max_inrint (INR)Keep competitions with a prize pool at most this large.
deadline_beforeISO dateregistration_deadline on or before this date.
deadline_afterISO dateregistration_deadline on or after this date.
event_start_beforeISO dateevent_start_date on or before this date.
event_start_afterISO dateevent_start_date on or after this date.
team_size_max
e.g. 4
int'I have a team of up to N' — keeps competitions whose lower team-size bound fits under this ceiling.
tagsCSVOverlap filter on tags.
themes
e.g. climate,healthtech
CSVOverlap filter on themes.

Sample response

GET /api/public/v1/competitions
{
  "data": [
    {
      "id": 128,
      "slug": "smart-india-hackathon-2026",
      "title": "Smart India Hackathon 2026",
      "type": "hackathon",
      "organizer": "AICTE, MoE",
      "location": "Pan-India",
      "is_online": false,
      "prize_pool": "₹1 crore total",
      "prize_pool_inr": 10000000,
      "registration_deadline": "2026-09-15",
      "event_start_date": "2026-12-05",
      "team_size_min": 6,
      "team_size_max": 6,
      "application_url": "https://sih.gov.in/",
      "url": "https://www.startupgrantsindia.com/competitions/smart-india-hackathon-2026"
    }
  ],
  "next_cursor": "MTI4"
}

Fields returned

  • title, slug, short_description, description, eligibility
  • type, organizer, organizer_url, location, is_online
  • prize_pool, prize_pool_inr
  • registration_deadline, event_start_date, event_end_date
  • tags, themes, team_size_min, team_size_max, participant_count
  • application_url, source, source_url

Events

Scope events:read · Continuously updated

Upcoming startup events across India — meetups, demo days, founder retreats, investor conferences. With dates, deadlines, organizer, location, category and price.

GET/api/public/v1/eventsList (paginated)
GET/api/public/v1/events/{slug}Detail
GET/api/public/v1/events/facetsFacet counts

Query parameters

ParamTypeDescription
limit
e.g. 20
int (1–50)Page size. Defaults to 20.
cursorstringOpaque token from the previous response's next_cursor. Omit for the first page.
q
e.g. climate
stringFree-text search over title, summary, organizer and location.
from
e.g. 2026-09-01
ISO dateEvents with start_date on or after this. Default: now.
toISO dateEvents with start_date on or before this.
category
e.g. meetup
stringilike match on the event category.
locationstringilike match on the location string.
organizerstringilike match on the organizer.
freebooltrue = keep only free events (price null or 0); false = paid only.
price_max_inrint (INR)Keep events priced at or below this. Free events (null price) always pass.
has_deadline_within_days
e.g. 7
int (1–365)Keep events whose registration deadline is within N days from now.
tagsCSVOverlap filter on tags.

Sample response

GET /api/public/v1/events
{
  "data": [
    {
      "id": "a3f1d0b6-9d0e-4c37-8e2b-1c4a2b5e6f01",
      "slug": "founders-meetup-bengaluru-sep-2026",
      "title": "Founders Meetup Bengaluru — September",
      "start_date": "2026-09-14T18:30:00+05:30",
      "category": "meetup",
      "location": "Bengaluru",
      "organizer": "SGI",
      "price_inr": 0,
      "tags": ["community", "meetup"],
      "url": "https://www.startupgrantsindia.com/events/founders-meetup-bengaluru-sep-2026"
    }
  ],
  "next_cursor": null
}

Fields returned

  • title, slug, description
  • start_date, end_date, deadline
  • category, location, organizer
  • price_inr, capacity, image_url, tags

Rate limits & errors

Every key defaults to 60 requests / minute(raiseable per customer). On overrun the API returns 429 with Retry-After and X-RateLimit-* headers.

StatusMeaning
400Invalid query parameter or cursor.
401Missing or malformed Authorization header, or unknown key.
403Key does not carry the required dataset scope.
404Unknown slug on a detail endpoint.
429Rate limit exceeded. Wait Retry-After seconds.
500Internal error — please retry, then contact us if it persists.

Something missing from the docs? and we’ll add it.