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.
Terms of Service
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.
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:
- No orderBy specified but a sector argument is specified
- orderBy is '"sector"
- No orderBy specified but a location/region is specified
- 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.
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]
}
}
}
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
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
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
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 |
---|---|
|
|
|
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'.
Example
{"sector": "Advanced Manufacturing", "top_level": "Manufacturing"}
SectorSICCode
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"