Get Business Grants API Reference

Get Business Grants API Documentation

Last Updated: 12th November 2024

For further help email: support@xsortal.com

All API requests should send a Bearer Authentication header with your API Key.

For example:
Authorization: Bearer d445Ug1lk7

You can find your API key in the Grants API Subscription area of Get Business Grants.

Contact

API Support

[email protected]

API Endpoints
https://api.xsortal.com:4001
Version

2.0.3

Get Started

Your application should use the GraphQL endpoint at https://api.xsortal.com:4001

All API requests should send an Authorization header along with your API key:

Authorization: Bearer d445Ug1lk7

Your API limits won't start until you perform your first API request. To help you get setup you can use our test API key as seen below:

Authorization: Bearer 123456789abcdefg

The test API key is unlimited and allows you to test your setup before switching to your live key. The test key will not return real-life grant results and will always return the same two sample grant results no matter which of the 4 limited queries (see below) you request.

Grants API – 5 Minute Matcher

We have a minimal HTML/CSS/JS code example that creates a basic grants matcher in a few minutes. You can view the code here: Grants API – 5 Minute Matcher

API Limits

API limits are only applied on those queries which return grant results i.e.:

  • allPurposes
  • allGrants
  • purpose
  • grant
  • relatedGrants

The API imposes limits based on your level of subscription package. The limits are imposed based on two metrics:

Number of unique requests per month x Number of results returned per request

Definition of a unique request

A unique request is any unique combination of arguments passed to any of the API limited queries listed above. Should you request a query using a combination of arguments that you've already used in the last month then results will be returned as normal and there will be no impact on your API limit count.

The following arguments have no effect on your API limit: orderBy, orderByDirection, perPage, currentPage

Should you exceed your API limit then you will receive the below as a response:

{
  "data": {
      "apiError": "You have reached your monthly API limit"
  }
}

Monitoring your API limits

The below X-API Response Headers are sent with every response:

Name Description Example
x-api-max-monthly-requests How many unique requests your subscription alows per month 20
x-api-max-results-per-request The maximum number of results returned per unique request 20
x-api-total-unique-requests-this-month How many unique requests have been made this month 2
x-api-total-unique-requests-remaining-this-month How many unique requests are remaining this month 18
x-api-start-date When your first request was made Tue Mar 11 2022 07:38:14 GMT+0100
x-api-limit-start-date When your current API limit period started 11/02/2023, 07:38:14
x-api-limit-end-date When your current API limit period will end 11/03/2023, 07:38:14

Grant Overview

Our grants database contains thousands of grant. Each grant is broken down into various Funding Purposes. A single grant can have 1 or more Funding Purposes. A Funding Purpose is essentially the part of a grant that someone can apply to get money for.

It is recommended that your searches and results revolve around Funding Purposes rather than the overall encompassing grants as users apply for money at the Funding Purpose level.

Structure of a Grant

Some examples of Funding Purposes are:

  • Business Growth
  • Job Creation
  • Staff Development
  • Working Capital

The full list of Funding Purposes can be obtained through the allFundingPurposes GraphQL query.

The main query you use to return a set of Funding Purpose results is allPurposes

The main query you use to return a single Funding Purpose result is purpose

List of available fields returned for a Grant or Purpose

Grant specific fields

Field Type Description Example
id integer Unique number to identify the grant 62
url string The URL of the grants home page https://www.cofundni.com
title string The title of the grant Co-Fund NI Business Investment
open_or_closed enum Is the grant Open, Opening, Closed or Closing Opening
currency enum The currency the grant amount is in ('£', '€', '$') £
total_fund_size integer The size of the overall pot of money available across the grant's purposes - unformatted 50000000
total_fund_size_formatted string The size of the overall pot of money available across the grant's purposes - formatted 5,000,000
provider_1 string The main provider of the grant Invest Northern Ireland
provider_2 string The secondary provider of the grant Clarendon Fund Managers
provider_3 string The tertiary provider of the grant European Commission
funding_types array The types of funding provided Equity Finance
purposes array The available purposes for the grant. See below for the Purpose specific fields Business Growth
date_added integer The timestamp of when the grant was added into our database 1678705244

Funding Purpose specific fields

Field Type Description Example
id integer Unique number to identify the purpose 204796
grant_id integer The id of the grant this purpose is attached to 62
funding_purpose string The type of funding purpose Business Growth
funding_purpose_definition string Definition of the funding purpose Business growth grants fund activities that help you increase sales or find new customers such as market research, marketing, website translation or the cost of launching a product.
purpose_title string The title of the purpose Co-Fund NI Business Investment
purpose_url string The URL of the purpose's home page http://www.cofundni.com
purpose_application_url string The URL of the purpose's application page https://www.cofundni.com/company-application-form.aspx
purpose_size_min integer The minimum amount available for this purpose - unformatted 150000
purpose_size_min_formatted integer The minimum amount available for this purpose - formatted 150,000
purpose_size_max integer The maximum amount available for this purpose - unformatted 1000000
purpose_size_max_formatted integer The minimum amount available for this purpose - formatted 1,000,000
purpose_description string Description of the purpose The Co-Fund NI programme aims to invest alongside private investors such as business angels or business angel syndicates into eligible SMEs.
purpose_dates string Contains the relevant date or dates of the purpose. Could also display, for example, Ongoing if there are no relevant dates Start Date for Applications: 9th January 2023
Application Deadline: 19th March 2023
purpose_region_is_uk integer Does this purpose cover the whole of the UK? 1=true 0=false 0
deadline_date integer Timestamp, if any, of the purpose's deadline date 1679184000
date_added integer The timestamp of when the purpose was added into our database 1678705244
regions array The regions this purpose applies to North West
South East
sectors array The sectors this purpose applies to. Can also show "All Sectors" if the purpose isn't sector specific Construction
Manufacturing
business_types array The business types this purposes applies to Small Business
Medium Business

Results ordering

When using the allPurposes query to fetch results there is a default ordering that takes place to ensure the results returned are the most relevant ones. The default ordering occurs under the following conditions:

  1. No orderBy specified but a sector argument is specified
  2. orderBy is '"sector"
  3. No orderBy specified but a location/region is specified
  4. orderBy is "region" or "location"

Sector ordering

Sector ordering occurs for the following examples:

query {
  allPurposes(sector: "Construction") {
    ...
  }
}
1st level ordering 2nd level ordering Comment
1. exact sector match DESC
2. sectors including the given sector DESC
3. All Sectors DESC
purpose_size_max DESC Results only assigned to the given sector(s) are returned first, followed by those results that are assigned to more than 1 sector(s) including the given sector, followed by those sectors assigned to no specific sector (All Sectors). Results within each sector result group are ordered by purpose_size_max DESC
query {
  allPurposes(
    funding_purpose: "Business Innovation"
    orderBy: "sector"
    ) {
    ...
  }
}

In this example, as no sector was specified but orderBy is "sector", results are returned in sector alphabetical order with those assigned to All Sectors coming after those with an assigned sector.

Location/Region ordering

Location or region ordering occurs for the following examples:

query {
  allPurposes(location: "Dudley") {
    ...
  }
}
1st level ordering 2nd level ordering Comment
region DESC purpose_size_max DESC Results are returned in location heirarchy order (Town -> City -> LGA -> County -> NUTS -> Country). In the example above results will be returned in the order where region matches Dudley -> Dudley District -> West Midlands -> England -> United Kingdom. Within each of those region levels results are ordered by purpose_size_max DESC
query {
  allPurposes(
    funding_purpose: "Business Innovation"
    orderBy: "location") {
    ...
  }
}

In this example, as no location was specified but orderBy is "location", results are returned in location heirarchy order (Town -> City -> LGA -> County -> NUTS -> Country) with those assigned to the whole of the UK coming at the end.

If you ONLY wanted the Dudley results returned, and not any results from the region heirarchy, you can use the locationOnly argument of the allPurposes query. When locationOnly is passed and set to 1, ONLY extact region matches are returned, in this example only results for Dudley would be returned.

Documentation Changelog

12th November 2024

  • Documented the new withinRangeOnly argument available for the allPurposes query and the PurposesWhereInput object argument to allGrants.

30th October 2024

  • Added 1 new query (allGrants) and 3 new result fields

  • New query - allGrants - Allows you to go in at the Grants level as opposed to the Purpose level (allPurposes). You can filter on Grants fields or Purpose fields using the purposesWhere filter

  • New result field - has_funding_rounds - Either 0 or 1. A 1 indicates that this grant has multiple funding rounds. Each new funding round gets added as a brand new grant.

  • New result field - scheme_manager_type - Indicates what type of provider the Scheme Manager is; possible values are: Angel Investment Network, Asset Finance Company, Bank, Chambers of Commerce, Charity, Crowdfunding Platform, Enterprise Support Agency, Government Department, Inward Investment Agency, Local Authority, Trade Association, Trade Finance Company, University, Venture Capital

  • New result field - last_checked - The date the grant was last checked for accuracy by Get Business Grants

Queries

allBusinessTypes

Description

Returns all the possible Business Types. The main use of this query would be in a UI to present, for example, a drop down list of possible Business Types for the user to select.

Response

Returns [BusinessType!]!

Example

Query
query allBusinessTypes {
  allBusinessTypes {
    business_type
    business_type_context
    funding_amount
    funding_amount_context
  }
}
Response
{
  "data": {
    "allBusinessTypes": [
      {
        "business_type": "Medium Business",
        "business_type_context": "xyz789",
        "funding_amount": "xyz789",
        "funding_amount_context": "xyz789"
      }
    ]
  }
}

allFundingAmounts

Description

Returns all the possible Funding Amount ranges. The main use of this query would be in a UI to present, for example, a drop down list of possible Funding Amount ranges for the user to select.

Response

Returns [FundingAmount!]!

Example

Query
query allFundingAmounts {
  allFundingAmounts {
    id
    text
    min
    max
  }
}
Response
{
  "data": {
    "allFundingAmounts": [
      {"id": 5, "text": "£100,000 - £149,999", "min": 123, "max": 987}
    ]
  }
}

allFundingPurposes

Description

Returns all the possible funding purposes. The main use of this query would be in a UI to present, for example, a drop down list of possible funding purposes for the user to select.

Response

Returns [FundingPurpose!]!

Example

Query
query allFundingPurposes {
  allFundingPurposes {
    fundingpurpose
  }
}
Response
{"data": {"allFundingPurposes": [{"fundingpurpose": "Business Innovation"}]}}

allFundingTypes

Description

Returns all the possible Funding Types. The main use of this query would be in a UI to present, for example, a drop down list of possible Funding Types for the user to select.

Response

Returns [FundingType!]!

Example

Query
query allFundingTypes {
  allFundingTypes {
    fundingtype
  }
}
Response
{"data": {"allFundingTypes": [{"fundingtype": "Funding for Project Costs"}]}}

allGrants

Description

Returns all grants matching the given arguments. Note: This refers to grants as opposed to purposes (A grant is made up of 1 or more purposes).
When using the test API key this will always return the same grants regardless of the ID you pass in.

Response

Returns a GrantList

Arguments
Name Description
id - Int The internal ID of the grant
perPage - Int The number of results to return. This must be less than, or equal, to your subscription API total number of results per request (also returned in the x-api-max-results-per-request response header). If you are on an unlimted subscription then you can set this to a number less than or equal to the default of 25
currentPage - Int Which page of results to return. For limited API subscriptions this field has no effect and will always default to 1.
funding_type - [String] One of the funding types available in the allFundingTypes response e.g. Business Grants, Interest Free Loan, Equity Finance
orderByDirection - String Results are currently ordered by the date they were added into the database (newest to oldest), we'll be adding more ordering options soon. The orderBy direction, either ASC (default) or DESC.
purposesWhere - PurposesWhereInput Purpose filters. Allows you to go in at the Grant level but also filter on specific Purpose fields. You can currently filter on the following Purpose fields: funding_purposes, funding_amount_min, funding_amount_max, funding_amount, sector, location, region and business_type.

Example

Query
query allGrants(
  $id: Int,
  $perPage: Int,
  $currentPage: Int,
  $funding_type: [String],
  $orderByDirection: String,
  $purposesWhere: PurposesWhereInput
) {
  allGrants(
    id: $id,
    perPage: $perPage,
    currentPage: $currentPage,
    funding_type: $funding_type,
    orderByDirection: $orderByDirection,
    purposesWhere: $purposesWhere
  ) {
    totalResults
    totalResultsPerPage
    totalPages
    currentPage
    nextPage
    results {
      ...GrantFragment
    }
  }
}
Variables
{
  "id": 51,
  "perPage": 10,
  "currentPage": 5,
  "funding_type": "Business Grants",
  "orderByDirection": "DESC",
  "purposesWhere": {
    "funding_purposes": ["Business Growth", "Business Innovation"],
    "sector": ["Construction"]
  }
}
Response
{
  "data": {
    "allGrants": {
      "totalResults": 987,
      "totalResultsPerPage": 987,
      "totalPages": 987,
      "currentPage": 123,
      "nextPage": 123,
      "results": [Grant]
    }
  }
}

allLocations

Description

Returns all the possible locations down to town level. You should use this query instead of allRegions if you want a more complete list of UK places down to town level. The main use of this query would be in a UI to present, for example, a drop down list of possible locations for the user to select.

Response

Returns [Region!]!

Example

Query
query allLocations {
  allLocations {
    region
    region_type
    display_region
  }
}
Response
{
  "data": {
    "allLocations": [
      {
        "region": "East Midlands",
        "region_type": "nuts",
        "display_region": "Derbyshire"
      }
    ]
  }
}

allPurposes

Response

Returns a PurposeList

Arguments
Name Description
id - Int The ID of a single funding purpose. Equivilent to using the purpose(id: Int!) query.
funding_purposes - [String] One or more of the funding purposes available in the allFundingPurposes response e.g. ["Buildings and Renovation", "Business Innovation"]. Choices defined in the funding_purposes field will override any choices made in the funding_purpose field (which will be deprectaed in the future).
funding_purpose - String Only one of the funding purposes available in the allFundingPurposes response e.g. Business Innovation. This field wil be deprected in the future. You should use the funding_purposes field, an array that allows one or more funding_purpopes to be requested.
region - String One of the regions available in the allRegions response e.g. North West, Scotland, Wales, South East
location - String Any UK location (country, region, city, town) e.g. England, North West, Glasgow, Dudley
locationOnly - Int If set to 1 then only grants that match the given location exactly will be returned, if 0 then those grants that also cover the given location will also be returned
sector - [String] One or more of the sectors available in the allSectors response e.g. Construction, Manufacturing
sectorOnly - Int If set to 1 then only grants that match the given sector exactly will be returned, if 0 then those grants that apply to All Sectors will also be returned
noEU - Int If set to 1 then European Commission grants will be removed from your results
business_type - String One of the business types available in the allBusinessTypes response e.g. Academic, Large Business, Medium Business, Start-ups
funding_amount - Int One of the ID numbers available in the allFundingAmounts response that aligns with a range of funding amounts e.g. 5 - which represents the range £100,000 - £149,999. You can define your own minimum, maximum or both (your own range) by using the funding_amount_min and funding_amount_max fields instead.
funding_amount_min - Int An integer representing the minimum funding amount - this, along with funding_amount_max, is an alternative to using the pre-defined funding ranges in the funding_amount field. If either funding_amount_min or funding_amount_max are specified then the funding_amount field will be ignored if that is also specified. You can specify just a minimum, just a maximum, or both to define your own range.
funding_amount_max - Int An integer representing the minimum funding amount - this, along with funding_amount_min, is an alternative to using the pre-defined funding ranges in the funding_amount field. If either funding_amount_min or funding_amount_max are specified then the funding_amount field will be ignored if that is also specified. You can specify just a minimum, just a maximum, or both to define your own range.
withinRangeOnly - Int If funding_amount_min and/or funding_amount_max is specified and this value is set to 1 then purposes without a defined purpose_size_min AND purpose_size_max (both values are NULL or unspecified) will not be returned. Only purposes that have either a defined purposes_size_min, a defined purposes_size_max or both defined, that fall within the defied range will be returned.
funding_type - [String] One of the funding types available in the allFundingTypes response e.g. Business Grants, Interest Free Loan, Equity Finance
open_or_closed - [String] Only return those schemes that are in the given open_or_closed status i.e. Open, Opening or Closed
orderBy - String How to order the results. It defaults to ordering by the purpose_size_max (the maximum amount available) DESC. You can also order by deadline_date, date_added, sector, region, location or funding_purpose
orderByDirection - String The orderBy direction, either ASC (default) or DESC
perPage - Int The number of results to return. This must be less than, or equal, to your subscription API total number of results per request (also returned in the x-api-max-results-per-request response header). If you are on an unlimted subscription then you can set this to a number less than or equal to the default of 25
currentPage - Int Which page of results to return. For limited API subscriptions this field has no effect and will always default to 1.
startDate - Int A Unix time stamp that when used in conjunction with endDate will only return grants added to the database within the given time frame
endDate - Int A Unix timestamp that when used in conjunction with startDate will only return grants added to the database within the given time frame
lastWeek - Boolean If set to true only grants added to the database in the last week, relative to the NOW() time, will be returned
deadlineStartDate - Int A Unix timestamp that when used in conjunction with deadlineEndDate will only return grants with a deadline_date between deadlineStartDate and deadlineEndDate. Cannot be used in conjunction with startDate and endDate
deadlineEndDate - Int A Unix timestamp that when used in conjunction with deadlineStartDate will only return grants with a deadline_date between deadlineStartDate and deadlineEndDate. Cannot be used in conjunction with startDate and endDate

Example

Query
query allPurposes(
  $id: Int,
  $funding_purposes: [String],
  $funding_purpose: String,
  $region: String,
  $location: String,
  $locationOnly: Int,
  $sector: [String],
  $sectorOnly: Int,
  $noEU: Int,
  $business_type: String,
  $funding_amount: Int,
  $funding_amount_min: Int,
  $funding_amount_max: Int,
  $withinRangeOnly: Int,
  $funding_type: [String],
  $open_or_closed: [String],
  $orderBy: String,
  $orderByDirection: String,
  $perPage: Int,
  $currentPage: Int,
  $startDate: Int,
  $endDate: Int,
  $lastWeek: Boolean,
  $deadlineStartDate: Int,
  $deadlineEndDate: Int
) {
  allPurposes(
    id: $id,
    funding_purposes: $funding_purposes,
    funding_purpose: $funding_purpose,
    region: $region,
    location: $location,
    locationOnly: $locationOnly,
    sector: $sector,
    sectorOnly: $sectorOnly,
    noEU: $noEU,
    business_type: $business_type,
    funding_amount: $funding_amount,
    funding_amount_min: $funding_amount_min,
    funding_amount_max: $funding_amount_max,
    withinRangeOnly: $withinRangeOnly,
    funding_type: $funding_type,
    open_or_closed: $open_or_closed,
    orderBy: $orderBy,
    orderByDirection: $orderByDirection,
    perPage: $perPage,
    currentPage: $currentPage,
    startDate: $startDate,
    endDate: $endDate,
    lastWeek: $lastWeek,
    deadlineStartDate: $deadlineStartDate,
    deadlineEndDate: $deadlineEndDate
  ) {
    totalResults
    totalResultsPerPage
    totalPages
    currentPage
    nextPage
    results {
      ...PurposeFragment
    }
  }
}
Variables
{
  "id": 28856,
  "funding_purposes": ["Business Innovation", "Research and Development"],
  "funding_purpose": "Research and Development",
  "region": "North West",
  "location": "Birmingham",
  "locationOnly": 1,
  "sector": "Construction",
  "sectorOnly": 1,
  "noEU": 1,
  "business_type": "Medium Business",
  "funding_amount": 5,
  "funding_amount_min": 5000,
  "funding_amount_max": 19000,
  "withinRangeOnly": 1,
  "funding_type": "Business Grants",
  "open_or_closed": "Opening",
  "orderBy": "deadline_date",
  "orderByDirection": "DESC",
  "perPage": 10,
  "currentPage": 5,
  "startDate": 1698815564,
  "endDate": 1701407564,
  "lastWeek": "false",
  "deadlineStartDate": 1698815564,
  "deadlineEndDate": 1701407564
}
Response
{
  "data": {
    "allPurposes": {
      "totalResults": 355,
      "totalResultsPerPage": 123,
      "totalPages": 35,
      "currentPage": 4,
      "nextPage": 5,
      "results": ["An array of Purpose objects"]
    }
  }
}

allRegions

Description

Returns all the possible UK regions (North West, South West, East Midlands etc). If you want a more detailed list of UK locations, down to the town level, then use the allLocations query instead. The main use of this query would be in a UI to present, for example, a drop down list of possible regions for the user to select.

Response

Returns [Region!]!

Example

Query
query allRegions {
  allRegions {
    region
    region_type
    display_region
  }
}
Response
{
  "data": {
    "allRegions": [
      {
        "region": "East Midlands",
        "region_type": "nuts",
        "display_region": "Derbyshire"
      }
    ]
  }
}

allSectorSICCodes

Response

Returns [SectorSICCode!]!

Arguments
Name Description
sic_code - String
sector - String
orderBy - SICCodeOrSector

Example

Query
query allSectorSICCodes(
  $sic_code: String,
  $sector: String,
  $orderBy: SICCodeOrSector
) {
  allSectorSICCodes(
    sic_code: $sic_code,
    sector: $sector,
    orderBy: $orderBy
  ) {
    sic_code
    sector
    sic_description
  }
}
Variables
{
  "sic_code": "abc123",
  "sector": "xyz789",
  "orderBy": "SIC_CODE"
}
Response
{
  "data": {
    "allSectorSICCodes": [
      {
        "sic_code": "abc123",
        "sector": "xyz789",
        "sic_description": "xyz789"
      }
    ]
  }
}

allSectors

Description

Returns the full list of available sectors. Each sector has a title and also a higher level 'top level' grouping. For example the Software sector has a top_level grouping of Information & Communication. The sector_or_top_level argument allows you to return either the list of sectors or the list of top level groupings, it defaults to the list of sectors.

Response

Returns [Sector!]!

Arguments
Name Description
sector_or_top_level - String Either the string 'sector' or 'top_level' depending on if you want the list of sectors or top level groupings returned. Defaults to 'sector'.

Example

Query
query allSectors($sector_or_top_level: String) {
  allSectors(sector_or_top_level: $sector_or_top_level) {
    sector
    top_level
  }
}
Variables
{"sector_or_top_level": "sector"}
Response
{
  "data": {
    "allSectors": [
      {"sector": "Advanced Manufacturing", "top_level": "Manufacturing"}
    ]
  }
}

grant

Description

Returns a single grant if an id is passed otherwise up to 25 grants if a title is passed. Note: This refers to grants as opposed to purposes (A grant is made up of 1 or more purposes).
When using the test API key this will always return the same grant regardless of the ID you pass in.

Response

Returns [Grant!]!

Arguments
Name Description
id - Int The internal ID of the grant
title - String The title of the grant. This is used to perform a wildcard search of grant titles. For example, if you pass 'energy' as the grant title then a search for '%energy%' will be performed.
limit - Int When performing a title search this defines how many results to return. It defaults to, and has a maximum of, 25 grant results.

Example

Query
query grant(
  $id: Int,
  $title: String,
  $limit: Int
) {
  grant(
    id: $id,
    title: $title,
    limit: $limit
  ) {
    id
    url
    title
    open_or_closed
    currency
    total_fund_size
    total_fund_size_formatted
    provider_1
    provider_2
    provider_3
    provider_4
    funding_types {
      ...FundingTypeFragment
    }
    purposes {
      ...PurposeFragment
    }
    date_added
    last_checked
    has_funding_rounds
    scheme_manager_type
  }
}
Variables
{"id": 123, "title": "abc123", "limit": 987}
Response
{
  "data": {
    "grant": [
      {
        "id": 987,
        "url": "abc123",
        "title": "xyz789",
        "open_or_closed": "xyz789",
        "currency": "xyz789",
        "total_fund_size": "xyz789",
        "total_fund_size_formatted": "abc123",
        "provider_1": "abc123",
        "provider_2": "xyz789",
        "provider_3": "abc123",
        "provider_4": "abc123",
        "funding_types": [FundingType],
        "purposes": [Purpose],
        "date_added": 123,
        "last_checked": 123,
        "has_funding_rounds": 123,
        "scheme_manager_type": "xyz789"
      }
    ]
  }
}

overallTotals

Description

Returns a response containing the overall totals of the database content. E.g. the total number of grants in the database, the total amount of funding available across the total grants, how many grants were added to the database in the last month.

Response

Returns an OverallTotals!

Example

Query
query overallTotals {
  overallTotals {
    total_schemes
    total_available_formatted
    total_funding_purposes
    total_added_last_month
  }
}
Response
{
  "data": {
    "overallTotals": {
      "total_schemes": "2613",
      "total_available_formatted": "£4.3bn",
      "total_funding_purposes": "10",
      "total_added_last_month": "214"
    }
  }
}

purpose

Description

Returns a single purpose as opposed to a frant. Note: A grant is made up of 1 or more purposes and a purpose is what a end-user would apply for. In most cases you would be presenting purpose(s) to an end-user rather than a grant.
When using the test API key this will always return the same purpose regardless of the ID you pass in.

Response

Returns a Purpose!

Arguments
Name Description
id - Int! The ID of the Purpose

Example

Query
query purpose($id: Int!) {
  purpose(id: $id) {
    id
    grant_id
    funding_purpose
    funding_purpose_definition
    purpose_title
    purpose_url
    purpose_application_url
    purpose_size_min
    purpose_size_min_formatted
    purpose_size_max
    purpose_size_max_formatted
    purpose_description
    purpose_dates
    purpose_region_is_uk
    deadline_date
    date_added
    grant {
      ...GrantFragment
    }
    sectors {
      ...SectorFragment
    }
    regions {
      ...RegionFragment
    }
    business_types {
      ...BusinessTypeFragment
    }
  }
}
Variables
{"id": 123}
Response
{
  "data": {
    "purpose": {
      "id": 987,
      "grant_id": 123,
      "funding_purpose": "abc123",
      "funding_purpose_definition": "xyz789",
      "purpose_title": "abc123",
      "purpose_url": "abc123",
      "purpose_application_url": "abc123",
      "purpose_size_min": 123,
      "purpose_size_min_formatted": "xyz789",
      "purpose_size_max": 123,
      "purpose_size_max_formatted": "abc123",
      "purpose_description": "abc123",
      "purpose_dates": "xyz789",
      "purpose_region_is_uk": 123,
      "deadline_date": 123,
      "date_added": 123,
      "grant": Grant,
      "sectors": [Sector],
      "regions": [Region],
      "business_types": [BusinessType]
    }
  }
}

relatedGrants

Description

Returns up to a maximum of 10 related purposes in random order. It first finds the grant matching the requested id or title, then returns related purposes by finding purposes that match the sectors and funding purposes of the original grants purposes.

Response

Returns [Purpose!]!

Arguments
Name Description
id - Int The id of the grant with which to find related grants
limit - Int

Example

Query
query relatedGrants(
  $id: Int,
  $limit: Int
) {
  relatedGrants(
    id: $id,
    limit: $limit
  ) {
    id
    grant_id
    funding_purpose
    funding_purpose_definition
    purpose_title
    purpose_url
    purpose_application_url
    purpose_size_min
    purpose_size_min_formatted
    purpose_size_max
    purpose_size_max_formatted
    purpose_description
    purpose_dates
    purpose_region_is_uk
    deadline_date
    date_added
    grant {
      ...GrantFragment
    }
    sectors {
      ...SectorFragment
    }
    regions {
      ...RegionFragment
    }
    business_types {
      ...BusinessTypeFragment
    }
  }
}
Variables
{"id": 123, "limit": 123}
Response
{
  "data": {
    "relatedGrants": [
      {
        "id": 987,
        "grant_id": 987,
        "funding_purpose": "xyz789",
        "funding_purpose_definition": "xyz789",
        "purpose_title": "abc123",
        "purpose_url": "xyz789",
        "purpose_application_url": "abc123",
        "purpose_size_min": 987,
        "purpose_size_min_formatted": "abc123",
        "purpose_size_max": 123,
        "purpose_size_max_formatted": "abc123",
        "purpose_description": "xyz789",
        "purpose_dates": "xyz789",
        "purpose_region_is_uk": 987,
        "deadline_date": 987,
        "date_added": 987,
        "grant": Grant,
        "sectors": [Sector],
        "regions": [Region],
        "business_types": [BusinessType]
      }
    ]
  }
}

Types

Boolean

Description

The Boolean scalar type represents true or false.

BusinessType

Description

The type of business. For example, Small Business, Medium Business, Large Business, Academic.

Fields
Field Name Description
business_type - String! The type of business
business_type_context - String The context for the business_type. For example, if the business_type is 'Start-ups' then the context could be 'Within their first year of trading'.
funding_amount - String Any specific funding amount percentage related to the business type
funding_amount_context - String The context of the funding_amount. For example, if the funding_amount is'55' then the context could be 'Specified %' meaning the business type can get 55% of the money. The possible values are 'Not Specified','Specified %','Up to','Less than' or blank if there are no specific contexts.
Example
{
  "business_type": "Medium Business",
  "business_type_context": "xyz789",
  "funding_amount": "xyz789",
  "funding_amount_context": "xyz789"
}

FundingAmount

Description

A funding amount represented by an id and a textual representation of the range. For example, id:4 text:£50,000 - £99,999

Fields
Field Name Description
id - Int! The id of the funding amount
text - String! The textual representation of the funding amount range
min - Int! The integer value of the minimum amount for this range
max - Int! The integer value of the maximum amount for this range
Example
{"id": 5, "text": "£100,000 - £149,999", "min": 987, "max": 987}

FundingPurpose

Description

A funding purpose is the purpose the available money can be used for.

Fields
Field Name Description
fundingpurpose - String! The funding purpose. For example, Business Growth, Business Innovation, Starting a Business
Example
{"fundingpurpose": "Business Innovation"}

FundingType

Description

The type of funding being offered. For example, Interest Free Loan, Funding for Project Costs, Equity Finance, Business Grants.

Fields
Field Name Description
fundingtype - String! A string containing the funding type
Example
{"fundingtype": "Funding for Project Costs"}

Grant

Description

The Grant type represents a single grant (as opposed to a purpose - grants are broken down into 1 or more purposes).

Fields
Field Name Description
id - Int! The internal ID number of the grant
url - String! The URL of the grant page. This may or may not be the same as the application URL that apprears in the Purpose type below
title - String! The title of the grant
open_or_closed - String! The status of the grant - can be open, opening or closing.
currency - String The currency of the all the various funding amount fields in both the grant and it's purposes. For example, £, $, €
total_fund_size - String The total amount of money available. This may be split across the grants various purposes. For example, 10000000
total_fund_size_formatted - String The total_fund_size above number formatted. For example, 10,000,000
provider_1 - String! The main provider of this grant. For example, Innovate UK
provider_2 - String Quite often a grant has multiple providers. Providers _2, _3 and _4 below list those. For example, Gwynedd Council.
provider_3 - String
provider_4 - String
funding_types - [FundingType] A list of the FundingTypes available. For example, Business Grants, Interest Free Loan.
purposes - [Purpose] A list of 1 or more Purposes (click here to view the Purpose definition). A user applies for the money at the purpose level.
date_added - Int! A unix timestamp of the date the grant was added to the grants database
last_checked - Int! A unix timestamp of the date the grant was last checked
has_funding_rounds - Int! Does this grant have funding rounds? 1=Yes, 0=No
scheme_manager_type - String! The Scheme Manager type. For example, Government Department, Trade Associations, Banks.
Example
{
  "id": 123,
  "url": "abc123",
  "title": "abc123",
  "open_or_closed": "abc123",
  "currency": "abc123",
  "total_fund_size": "abc123",
  "total_fund_size_formatted": "xyz789",
  "provider_1": "abc123",
  "provider_2": "abc123",
  "provider_3": "xyz789",
  "provider_4": "xyz789",
  "funding_types": [FundingType],
  "purposes": [Purpose],
  "date_added": 123,
  "last_checked": 987,
  "has_funding_rounds": 987,
  "scheme_manager_type": "xyz789"
}

GrantList

Fields
Field Name Description
totalResults - Int!
totalResultsPerPage - Int!
totalPages - Int!
currentPage - Int!
nextPage - Int!
results - [Grant!]!
Example
{
  "totalResults": 123,
  "totalResultsPerPage": 123,
  "totalPages": 987,
  "currentPage": 987,
  "nextPage": 987,
  "results": [Grant]
}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

OverallTotals

Description

Returns the overall database totals

Fields
Field Name Description
total_schemes - Int! Total number of Schemes in the result set
total_available_formatted - String! The total amount of funding available as a formatted string
total_funding_purposes - Int! The total number of funding purposes
total_added_last_month - Int! The total number of schemes added in the last month
Example
{
  "total_schemes": "2613",
  "total_available_formatted": "£4.3bn",
  "total_funding_purposes": "10",
  "total_added_last_month": "214"
}

Purpose

Fields
Field Name Description
id - Int!
grant_id - Int!
funding_purpose - String!
funding_purpose_definition - String
purpose_title - String!
purpose_url - String
purpose_application_url - String
purpose_size_min - Int
purpose_size_min_formatted - String
purpose_size_max - Int
purpose_size_max_formatted - String
purpose_description - String
purpose_dates - String
purpose_region_is_uk - Int
deadline_date - Int
date_added - Int
grant - Grant!
sectors - [Sector!]!
regions - [Region!]!
business_types - [BusinessType!]!
Example
{
  "id": 123,
  "grant_id": 987,
  "funding_purpose": "abc123",
  "funding_purpose_definition": "abc123",
  "purpose_title": "xyz789",
  "purpose_url": "abc123",
  "purpose_application_url": "abc123",
  "purpose_size_min": 123,
  "purpose_size_min_formatted": "xyz789",
  "purpose_size_max": 123,
  "purpose_size_max_formatted": "abc123",
  "purpose_description": "abc123",
  "purpose_dates": "xyz789",
  "purpose_region_is_uk": 123,
  "deadline_date": 987,
  "date_added": 987,
  "grant": Grant,
  "sectors": [Sector],
  "regions": [Region],
  "business_types": [BusinessType]
}

PurposeList

Fields
Field Name Description
totalResults - Int!
totalResultsPerPage - Int!
totalPages - Int!
currentPage - Int!
nextPage - Int!
results - [Purpose!]!
Example
{
  "totalResults": 355,
  "totalResultsPerPage": 123,
  "totalPages": 35,
  "currentPage": 4,
  "nextPage": 5,
  "results": ["An array of Purpose objects"]
}

PurposesWhereInput

Fields
Input Field Description
funding_purposes - [String] Only return those Grants that have at least one Purpose with the given funding purpose(s)
funding_type - [String] One of the funding types available in the allFundingTypes response e.g. Business Grants, Interest Free Loan, Equity Finance
funding_amount_min - Int An integer representing the minimum funding amount - this, along with funding_amount_max, is an alternative to using the pre-defined funding ranges in the funding_amount field. If either funding_amount_min or funding_amount_max are specified then the funding_amount field will be ignored if that is also specified. You can specify just a minimum, just a maximum, or both to define your own range.
funding_amount_max - Int An integer representing the minimum funding amount - this, along with funding_amount_min, is an alternative to using the pre-defined funding ranges in the funding_amount field. If either funding_amount_min or funding_amount_max are specified then the funding_amount field will be ignored if that is also specified. You can specify just a minimum, just a maximum, or both to define your own range.
withinRangeOnly - Int If funding_amount_min and/or funding_amount_max is specified and this value is set to 1 then purposes without a defined purpose_size_min AND purpose_size_max (both values are NULL or unspecified) will not be returned. Only purposes that have either a defined purposes_size_min, a defined purposes_size_max or both defined, that fall within the defied range will be returned.
funding_amount - Int One of the ID numbers available in the allFundingAmounts response that aligns with a range of funding amounts e.g. 5 - which represents the range £100,000 - £149,999. You can define your own minimum, maximum or both (your own range) by using the funding_amount_min and funding_amount_max fields instead.
sector - [String] One or more of the sectors available in the allSectors response e.g. Construction, Manufacturing
location - String Any UK location (country, region, city, town) e.g. England, North West, Glasgow, Dudley
region - String One of the regions available in the allRegions response e.g. North West, Scotland, Wales, South East
business_type - String One of the business types available in the allBusinessTypes response e.g. Academic, Large Business, Medium Business, Start-ups
locationOnly - Int If set to 1 then only grants that match the given location exactly will be returned, if 0 then those grants that also cover the given location will also be returned
Example
{
  "funding_purposes": ["Business Innovation", "Business Growth"],
  "funding_type": ["xyz789"],
  "funding_amount_min": 50000,
  "funding_amount_max": 200000,
  "withinRangeOnly": 1,
  "funding_amount": 4,
  "sector": ["Construction", "Manufacturing"],
  "location": "Warrington",
  "region": "North West",
  "business_type": "Small Business",
  "locationOnly": 1
}

Region

Description

Each region is additionally assigned to it's parent regions using the hierarchy of UK places. For example, when we assign a grant to the Oldham District it will also be automatically assigned to Greater Manchester, North West and England so this grant will also be returned when a user searches for grants in the North West. You can determine the grants original region assignment, in this example Oldham District, as the region will equal the display_region.

Fields
Field Name Description
region - String! The title of the region. Some of these regions will have been automatically assigned using the hierarchy of UK places.
region_type - String! The type of region. For example, country, county, city, nuts, lga or town.
display_region - String! The region string that should be displayed to the end user.
Example
{
  "region": "East Midlands",
  "region_type": "nuts",
  "display_region": "Derbyshire"
}

SICCodeOrSector

Values
Enum Value Description

SIC_CODE

SECTOR

Example
"SIC_CODE"

Sector

Description

Returns a single Sector. Each Sector has a title and a higher level 'top level' assignment. For example, the 'Food' sector is assigned to the top_level grouping of 'Manufacturing'.

Fields
Field Name Description
sector - String The title of the sector
top_level - String The higher level sector grouping
Example
{"sector": "Advanced Manufacturing", "top_level": "Manufacturing"}

SectorSICCode

Fields
Field Name Description
sic_code - String
sector - String
sic_description - String
Example
{
  "sic_code": "xyz789",
  "sector": "abc123",
  "sic_description": "abc123"
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"