RICS (Royal Institution of Chartered Surveyors) Regulation API
The Regulation API from RICS (Royal Institution of Chartered Surveyors) — 3 operation(s) for regulation.
The Regulation API from RICS (Royal Institution of Chartered Surveyors) — 3 operation(s) for regulation.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/rics-regulation-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: DigitalCommunity Regulation API
description: To use this API, you need to have been first been issued a username and password by RICS. These need to be sent in a JSON User object in the body of a POST request to the /token endpoint in order to receive back a secure bearer token. This token must then be sent with every subsequent request to an information endpoint (in the request's authorization header). Bearer tokens have a limited lifetime and will need to be refreshed by your client periodically. The mechanism by which this refresh occurs is a matter for your client software to address.
version: v1
security:
- Bearer: []
tags:
- name: Regulation
paths:
/api/Regulation/{schemeNumber}:
get:
tags:
- Regulation
parameters:
- name: schemeNumber
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RegulationScheme'
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/api/Regulation/Subscriptions:
get:
tags:
- Regulation
parameters:
- name: regulationSchemeId
in: query
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RegulationSubscriptions'
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/api/Regulation/PaymentInformation:
get:
tags:
- Regulation
parameters:
- name: regulationSchemeId
in: query
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentInformation'
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
components:
schemas:
PiiInsurer:
type: object
properties:
piiUnderwriterName:
type:
- string
- 'null'
piiUnderwriterId:
type: string
format: uuid
policyNumber:
type:
- string
- 'null'
piiInsuranceId:
type: string
format: uuid
regulatedSchemeId:
type: string
format: uuid
schemeName:
type:
- string
- 'null'
additionalProperties: false
QuoteStatus:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 200000000
- 647390000
type: integer
format: int32
RegulatoryType:
enum:
- 0
- 200000000
- 200000001
type: integer
format: int32
MemberPiiAndAdrRoute:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
type: integer
format: int32
SchemeLicenceStatus:
enum:
- 0
- 1
- 2
- 200000000
- 200000001
- 200000002
- 200000003
- 200000004
- 200000005
- 200000006
- 200000007
- 200000008
- 200000009
- 200000010
- 200000011
- 200000012
- 200000013
- 200000014
- 200000015
type: integer
format: int32
ProblemDetails:
type: object
properties:
type:
type:
- string
- 'null'
title:
type:
- string
- 'null'
status:
type:
- integer
- 'null'
format: int32
detail:
type:
- string
- 'null'
instance:
type:
- string
- 'null'
additionalProperties: {}
RegulationQuote:
type: object
properties:
quoteId:
type: string
format: uuid
quoteRef:
type:
- string
- 'null'
name:
type:
- string
- 'null'
description:
type:
- string
- 'null'
revisionNumber:
type: integer
format: int32
transactionCurrencyId:
type: string
format: uuid
isoCurrencyCode:
type:
- string
- 'null'
currencyName:
type:
- string
- 'null'
currencySymbol:
type:
- string
- 'null'
totalAmount:
type: number
format: double
taxAmount:
type: number
format: double
discountAmount:
type: number
format: double
priceListId:
type:
- string
- 'null'
format: uuid
paymentReceived:
type: boolean
status:
$ref: '#/components/schemas/QuoteStatus'
quoteLines:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RegulationQuoteLine'
dateCreated:
type: string
format: date-time
purchaseType:
$ref: '#/components/schemas/PurchaseType'
additionalProperties: false
RedressProvider:
type: object
properties:
id:
type: string
format: uuid
regulatedSchemeId:
type: string
format: uuid
regulatedSchemeName:
type:
- string
- 'null'
redressSchemeId:
type: string
format: uuid
redressSchemeName:
type:
- string
- 'null'
countryId:
type: string
format: uuid
countryName:
type:
- string
- 'null'
countryCode:
type:
- string
- 'null'
additionalProperties: false
RegulationScheme:
type: object
properties:
regulatedSchemeId:
type: string
format: uuid
regulatedSchemeNumber:
type:
- string
- 'null'
parentRegulatedSchemeId:
type:
- string
- 'null'
format: uuid
parentRegulatedSchemeName:
type:
- string
- 'null'
licencedContactId:
type:
- string
- 'null'
format: uuid
licencedContactName:
type:
- string
- 'null'
licencedContactNumber:
type:
- string
- 'null'
submittedByContactId:
type:
- string
- 'null'
format: uuid
submittedByContactNumber:
type:
- string
- 'null'
submittedByContact:
type:
- string
- 'null'
name:
type:
- string
- 'null'
regulatedEntityName:
type:
- string
- 'null'
regulatedSchemeTypeId:
type: string
format: uuid
regulatedSchemeTypeName:
type:
- string
- 'null'
regulatedSchemeTypeCode:
type:
- string
- 'null'
schemeLicenceType:
$ref: '#/components/schemas/SchemeLicenceType'
schemeLicenceTypeName:
type:
- string
- 'null'
masterAccount:
type:
- string
- 'null'
format: uuid
masterAccountName:
type:
- string
- 'null'
officeNumber:
type:
- string
- 'null'
firmNumber:
type:
- string
- 'null'
contactOfficer:
type:
- string
- 'null'
format: uuid
personalAddressOkay:
type: boolean
preferredAddressOkay:
type: boolean
localGroupOkay:
type: boolean
isSellable:
type: boolean
contactOfficerName:
type:
- string
- 'null'
contactOfficerNumber:
type:
- string
- 'null'
schemeLicenceStatus:
$ref: '#/components/schemas/SchemeLicenceStatus'
schemeLicenceStatusName:
type:
- string
- 'null'
schemeLicenceStatusReason:
$ref: '#/components/schemas/SchemeLicenceStatusReason'
schemeLicenceStatusReasonName:
type:
- string
- 'null'
approvalConditions:
type:
- string
- 'null'
submissionDate:
type:
- string
- 'null'
format: date-time
approvalDate:
type:
- string
- 'null'
format: date-time
licenceEndDate:
type:
- string
- 'null'
format: date-time
licenceEndReason:
$ref: '#/components/schemas/LicenceEndReason'
licenceEndReasonName:
type:
- string
- 'null'
inclusionReason:
$ref: '#/components/schemas/InclusionReason'
inclusionReasonName:
type:
- string
- 'null'
numDirectorPrincipals:
type:
- integer
- 'null'
format: int32
numMemberDirectorPrincipals:
type:
- integer
- 'null'
format: int32
regulatedOrganisationType:
$ref: '#/components/schemas/RegulatedOrganisationType'
regulatedOrganisationTypeName:
type:
- string
- 'null'
isSelfDeclaredAsVrsEligible:
type: boolean
vrsSponsorshipCode:
type:
- string
- 'null'
isMemberSignoffRequired:
type: boolean
signOffContactId:
type:
- string
- 'null'
format: uuid
signOffContactName:
type:
- string
- 'null'
signOffContactNumber:
type:
- string
- 'null'
dateSignedOff:
type:
- string
- 'null'
format: date-time
alternatePiiUnderwriters:
type:
- string
- 'null'
clientMoneyType:
type: integer
format: int32
clientMoneyTypeName:
type:
- string
- 'null'
gimaStatus:
$ref: '#/components/schemas/Gima'
gimaStatusName:
type:
- string
- 'null'
hasPii:
type:
- boolean
- 'null'
sponsorship:
type: boolean
statusChangeDate:
type:
- string
- 'null'
format: date-time
startDate:
type:
- string
- 'null'
format: date-time
renewalsDate:
type:
- string
- 'null'
format: date-time
responsiblePrincipalId:
type:
- string
- 'null'
format: uuid
responsiblePrincipalName:
type:
- string
- 'null'
responsiblePrincipalNumber:
type:
- string
- 'null'
isResponsiblePrincipalValid:
type: boolean
memberPiiAndAdrRoute:
$ref: '#/components/schemas/MemberPiiAndAdrRoute'
memberPiiAndAdrRouteName:
type:
- string
- 'null'
firmPiiAndAdrRoute:
$ref: '#/components/schemas/FirmRegsRoute'
firmPiiAndAdrRouteName:
type:
- string
- 'null'
regulationReturns:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RegulationReturn'
childSchemes:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RegulationScheme'
surveyingServices:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/SurveyingService'
piiInsurers:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PiiInsurer'
noPiiExplanation:
type:
- string
- 'null'
redressProviders:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RedressProvider'
offices:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Office'
memberDirectorPrincipals:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/MemberDirectorPrincipal'
createdOn:
type: string
format: date-time
modifiedOn:
type:
- string
- 'null'
format: date-time
countOfReturns:
type: integer
format: int32
countOfMemberDirectorPrincipals:
type: integer
format: int32
countOfSubscriptions:
type: integer
format: int32
additionalProperties: false
SubscriptionOwnerStatus:
enum:
- 0
- 1
- 2
- 200000000
- 200000002
- 200000003
- 200000004
- 200000005
- 200000006
- 200000007
type: integer
format: int32
RegulationQuoteLine:
type: object
properties:
quoteLineId:
type: string
format: uuid
catalogProductId:
type: string
format: uuid
quantity:
type: number
format: double
unitPrice:
type: number
format: double
baseAmount:
type: number
format: double
extendedAmount:
type: number
format: double
discountAmount:
type: number
format: double
productTypeCode:
type: integer
format: int32
productName:
type:
- string
- 'null'
productNumber:
type:
- string
- 'null'
sequenceNo:
type: integer
format: int32
isPriceOverridden:
type:
- boolean
- 'null'
subscriptionId:
type:
- string
- 'null'
format: uuid
startDate:
type:
- string
- 'null'
format: date-time
endDate:
type:
- string
- 'null'
format: date-time
additionalProperties: false
SubscriptionUser:
type: object
properties:
subscriptionUserId:
type: string
format: uuid
contactId:
type: string
format: uuid
contactNo:
type:
- string
- 'null'
contactName:
type:
- string
- 'null'
preferredEmailAddress:
type:
- string
- 'null'
sponsorshipCodeId:
type:
- string
- 'null'
format: uuid
subscriptionProductId:
type: string
format: uuid
subscriptionId:
type: string
format: uuid
status:
$ref: '#/components/schemas/SubscriptionUserStatus'
approvalStatus:
$ref: '#/components/schemas/SubscriptionUserApprovalStatus'
licenceKey:
type:
- string
- 'null'
endDate:
type:
- string
- 'null'
format: date-time
vrsSponsorshipApplicationId:
type:
- string
- 'null'
format: uuid
additionalProperties: false
Address:
type: object
properties:
ownerId:
type: string
format: uuid
subsOnlineUpdate:
type: boolean
addressType:
$ref: '#/components/schemas/AddressType'
organisation:
type:
- string
- 'null'
line1:
type:
- string
- 'null'
line2:
type:
- string
- 'null'
line3:
type:
- string
- 'null'
city:
type:
- string
- 'null'
county:
type:
- string
- 'null'
state:
type:
- string
- 'null'
postcode:
type:
- string
- 'null'
isoCountryCode:
type:
- string
- 'null'
countryName:
type:
- string
- 'null'
countryId:
type: string
format: uuid
longitude:
type: number
format: double
latitude:
type: number
format: double
telephone:
type:
- string
- 'null'
website:
type:
- string
- 'null'
emailAddress:
type:
- string
- 'null'
basedInChannelIslands:
type: boolean
additionalProperties: false
SubscriptionPaymentMethod:
enum:
- 0
- 200000000
- 200000002
- 200000003
- 200000004
- 200000006
type: integer
format: int32
PurchaseType:
enum:
- 0
- 200000000
- 200000001
type: integer
format: int32
SuspensionReason:
enum:
- 0
- 200000000
- 200000001
- 200000002
type: integer
format: int32
Office:
type: object
properties:
accountId:
type: string
format: uuid
firmNumber:
type:
- string
- 'null'
officeNumber:
type:
- string
- 'null'
publicationName:
type:
- string
- 'null'
registeredName:
type:
- string
- 'null'
tradingName:
type:
- string
- 'null'
primaryContact:
type:
- string
- 'null'
format: uuid
primaryContactName:
type:
- string
- 'null'
address:
$ref: '#/components/schemas/Address'
isoCountryCode:
type:
- string
- 'null'
vatRegNumber:
type:
- string
- 'null'
isHeadOffice:
type: boolean
isRegulated:
type: boolean
hasActiveRegistration:
type: boolean
additionalProperties: false
SubscriptionUserStatus:
enum:
- 0
- 1
- 2
type: integer
format: int32
MemberDirectorPrincipal:
type: object
properties:
contactId:
type:
- string
- 'null'
format: uuid
connectionId:
type:
- string
- 'null'
format: uuid
emailAddress:
type:
- string
- 'null'
emailAddress2:
type:
- string
- 'null'
emailAddress3:
type:
- string
- 'null'
contactNo:
type:
- string
- 'null'
fullName:
type:
- string
- 'null'
hasPreviousBadSchemeStatus:
type: boolean
notFoundInCrm:
type: boolean
isResponsiblePrincipal:
type: boolean
additionalProperties: false
SchemeLicenceStatusReason:
enum:
- 0
- 200000000
- 200000001
- 200000002
- 200000003
- 200000004
- 200000005
- 200000006
- 200000007
- 200000008
- 200000009
- 200000010
- 200000011
- 200000012
- 200000013
- 200000014
- 200000015
- 200000016
type: integer
format: int32
Subscription:
type: object
properties:
subscriptionId:
type: string
format: uuid
startDate:
type:
- string
- 'null'
format: date-time
endDate:
type:
- string
- 'null'
format: date-time
numberOfLicences:
type: integer
format: int32
poNumber:
type:
- string
- 'null'
createdDate:
type:
- string
- 'null'
format: date-time
salesOrders:
type:
- array
- 'null'
items:
type: string
format: uuid
quotes:
type:
- array
- 'null'
items:
type: string
format: uuid
additionalProperties: false
PaymentInformation:
type: object
properties:
quotes:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RegulationQuote'
salesOrders:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RegulationSalesOrder'
countOfQuotes:
type: integer
format: int32
countOfSalesOrders:
type: integer
format: int32
countOfSchemeAnnualReturns:
type: integer
format: int32
additionalProperties: false
InclusionReason:
enum:
- 0
- 200000000
- 200000001
type: integer
format: int32
RegulationSalesOrder:
type: object
properties:
orderId:
type: string
format: uuid
orderRef:
type:
- string
- 'null'
status:
$ref: '#/components/schemas/SalesOrderStatus'
totalAmount:
type: number
format: double
dateCreated:
type: string
format: date-time
isoCurrencyCode:
type:
- string
- 'null'
currencySymbol:
type:
- string
- 'null'
quoteNumber:
type:
- string
- 'null'
additionalProperties: false
ScoreResult:
enum:
- 0
- 1
- 2
type: integer
format: int32
AddressType:
enum:
- 0
- 1
- 2
type: integer
format: int32
EndDateChangeReason:
enum:
- 0
- 200000000
- 200000001
- 200000002
- 200000003
- 200000004
type: integer
format: int32
SubscriptionUserApprovalStatus:
enum:
- 0
- 200000000
- 200000001
type: integer
format: int32
CancellationReason:
enum:
- 0
- 200000000
- 200000001
- 200000002
- 200000003
- 200000004
- 200000005
type: integer
format: int32
SponsorshipCode:
type: object
properties:
sponsorshipCodeId:
type: string
format: uuid
code:
type:
- string
- 'null'
status:
$ref: '#/components/schemas/SponsorshipCodeStatus'
startDate:
type: string
format: date-time
endDate:
type: string
format: date-time
totalAllowance:
type: integer
format: int32
quantityAvailable:
type: integer
format: int32
quantityUsed:
type: integer
format: int32
createdOn:
type: string
format: date-time
modifiedOn:
type: string
format: date-time
additionalProperties: false
SalesOrderStatus:
enum:
- 0
- 1
- 2
- 3
- 4
- 100001
- 100002
- 100003
- 200000
- 200001
type: integer
format: int32
SurveyingService:
type: object
properties:
serviceId:
type: string
format: uuid
code:
type:
- string
- 'null'
service:
type:
- string
- 'null'
isValuationService:
type: boolean
countryId:
type: string
format: uuid
countryName:
type:
- string
- 'null'
countryCode:
type:
- string
- 'null'
additionalProperties: false
RegulationSubscriptions:
type: object
properties:
subscriptions:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RegulationSubscription'
countOfSubscriptions:
type: integer
format: int32
additionalProperties: false
RegulationReturn:
type: object
properties:
regulatoryReturnId:
type: string
format: uuid
returnTypeId:
type: string
format: uuid
returnTypeName:
type:
- string
- 'null'
name:
type:
- string
- 'null'
regulatoryType:
$ref: '#/components/schemas/RegulatoryType'
regulatoryTypeName:
type:
- string
- 'null'
regulatoryTypeCode:
type:
- string
- 'null'
regulatedMember:
type:
- string
- 'null'
format: uuid
regulatedMemberName:
type:
- string
- 'null'
regulatedFirm:
type:
- string
- 'null'
format: uuid
regulatedFirmName:
type:
- string
- 'null'
contactOfficer:
type:
- string
- 'null'
format: uuid
contactOfficerName:
type:
- string
- 'null'
statusCode:
$ref: '#/components/schemas/ReturnStatusCode'
status:
type:
- string
- 'null'
submitterId:
type:
- string
- 'null'
format: uuid
submitterName:
type:
- string
- 'null'
dateOfSubmission:
type:
- string
- 'null'
format: date-time
returnDueDate:
type:
- string
- 'null'
format: date-time
regulationCaseId:
type:
- string
- 'null'
format: uuid
regulationCaseName:
type:
- string
- 'null'
surveyResponseId:
type:
- string
- 'null'
format: uuid
surveyResponseName:
type:
- string
- 'null'
totalAnswersRequired:
type: integer
format: int32
totalAnswersProvided:
type: integer
format: int32
regulatedSchemeId:
type:
- string
- 'null'
format: uuid
regulatedSchemeName:
type:
- string
- 'null'
responsiblePrincipal:
type: string
format: uuid
responsiblePrincipalName:
type:
- string
- 'null'
result:
$ref: '#/components/schemas/ScoreResult'
score:
type: integer
format: int32
createdOn:
type: string
format: date-time
modifiedOn:
type:
- string
- 'null'
format: date-time
additionalProperties: false
Gima:
enum:
- 0
- 200000000
- 200000001
- 200000002
- 200000003
type: integer
format: int32
SchemeLicenceType:
enum:
- 0
- 200000000
- 200000001
type: integer
format: int32
ReturnStatusCode:
enum:
- 0
- 200000000
- 200000001
- 200000002
- 200000003
- 200000004
- 200000005
- 200000006
- 200000007
- 200000008
- 200000009
- 200000010
- 200000011
- 200000012
- 200000013
type: integer
format: int32
LicenceEndReason:
enum:
- 0
- 200000000
- 200000001
- 200000002
- 200000003
- 200000004
- 200000005
- 200000006
- 200000007
- 200000008
- 200000009
- 200000010
- 200000011
- 200000012
- 200000013
- 200000014
- 200000015
- 200000016
type: integer
format: int32
RegulatedOrganisationType:
enum:
- 0
- 200000000
- 200000001
- 200000002
- 200000003
- 200000004
- 200000005
type: integer
format: int32
FirmRegsRoute:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
type: integer
format: int32
SponsorshipCodeStatus:
enum:
- 0
- 1
- 2
- 200000000
- 200000001
type: integer
format: int32
RegulationSubscription:
type: object
properties:
ownerId:
type: string
format: uuid
ownerName:
type:
- string
- 'null'
subscriptionNumber:
type:
- string
- 'null'
subscriptionProductId:
type: string
format: uuid
subscriptionProductName:
type:
- string
- 'null'
contactId:
type: string
format: uuid
contactName:
type:
- string
- 'null'
preferredEmailAddress:
type:
- string
- 'null'
name:
type:
- string
- 'null'
numberOfLicences:
type: integer
format: int32
startDate:
type:
- string
- 'null'
format: date-time
endDate:
type:
- string
- 'null'
format: date-time
isOnBehalfOfAnAccount:
type: boolean
reasonForEndDateChange:
$ref: '#/components/schemas/EndDateChangeReason'
reasonForEndDateChangeName:
type:
- string
- 'null'
reasonForSuspension:
$ref: '#/components/schemas/SuspensionReason'
reasonForSuspensionName:
type:
- string
- 'null'
reasonForCancellation:
$ref: '#/components/schemas/CancellationReason'
reasonForCancellationName:
type:
- string
- 'null'
status:
$ref: '#/components/schemas/SubscriptionOwnerStatus'
subscriptions:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Subscription'
subscriptionUsers:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/SubscriptionUser'
sponsorshipCode:
$ref: '#/components/schemas/SponsorshipCode'
paymentMethod:
$ref: '#/components/schemas/SubscriptionPaymentMethod'
paymentMethodName:
type:
- string
- 'null'
renewalGuid:
type: string
format: uuid
regulatedScheme:
typ
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/rics/refs/heads/main/openapi/rics-regulation-api-openapi.yml