Download OpenAPI specification:
This API Specification gives an overview of what SGDex is and serves as a guide to help you integrate your application with SGDex.
Note - This specification is subject to changes based on the evolution of the APIs.
SGDex (Singapore Data Exchange) is a data exchange layer platform that supports multiple data exchanges.
SGDex is organised around REST and returns JSON-encoded responses with standard HTTP response codes.
SGDex API gateway supports accessing of APIs via HTTP over TLS (Transport Layer Security) version 1.2 standards.
The list of supported Cipher Suites are as follows:
Data Exchange clients (e.g. SGTraDex) must authenticate to SGDex for every request. SGDex uses JWT (specified in RFC 7523) provided in the Authorization header as a bearer token (specified in RFC 6750) for client authentication.
Briefly, an unencrypted, signed JWT consists of three parts:
The header may include information about the key and algorithm used to sign the payload. This is needed unless the receiver has obtained this information through other means. As an example, a JWT used for client authentication may have a header and payload like this:
{
"alg": "ES256",
"typ": "JWT",
"kid": "7229075d-972f-4b21-8a0c-38db3a7f2a98"
}
ES256
RS256
The associated payload may look like this:
{
"aud": "https://api.sgdex.gov.sg",
"iss": "client-one",
"sub": "client-one",
"nbf": 1535806905,
"exp": 1535810505,
"iat": 1535806905,
"jti": "id123456"
}
JWT parameters include the following:
Parameter Name | Parameter Value | |
---|---|---|
REQUIRED | aud |
SGDex domain e.g. https://api.staging-sgdex.gov.sg for staging environment |
REQUIRED | iss |
application_id issued by SGDex during onboarding |
REQUIRED | sub |
application_id issued by SGDex during onboarding |
REQUIRED | exp |
expiration time of token in epoch format - maximum of 5 minutes from time JWT is generated |
REQUIRED | iat |
issued at - the time at which the JWT was issued |
OPTIONAL | nbf |
not before - the time before which the token MUST NOT be accepted for processing |
REQUIRED | jti |
JWT ID - unique identifier for the token |
The JWT sent to the SGDex should be a Bearer
token in the Authorization
header, as described in RFC 6750.
A sample request is shown below:
GET /{dex}/{usecase}/{api} HTTP/1.1
Host: stg.api.sgdex.gov.sg
Authorization: Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL3N0Zy5hcGkuc2dkZXguZ292LnNnIiwiaXNzIjoiY2xpZW50LW9uZSIsInN1YiI6ImNsaWVudC1vbmUiLCJuYmYiOjE1MzU4MDY5MDUsImV4cCI6MTUzNTgxMDUwNSwiaWF0IjoxNTM1ODA2OTA1LCJqdGkiOiJpZDEyMzQ1NiJ9.1ba2xgaRfxiu18SBPauA4ibe21uqI1lymtFoYXrFpMysQVADei98guL4QKHqgwD6UwHBOkC_L5W6TR19g1fuoQ
The Partner's application is required to generate client assertions to be attached to server-to-server calls to prove authenticity (Refer to https://datatracker.ietf.org/doc/html/rfc7521). The partner's private key signs the assertion metadata, and SGDex will use the partner's onboarded JWKS endpoint to obtain the public key for verification. Below is a sample of the JWT header and payload of the client assertion:
{
"typ": "JWT",
"alg": "ES256",
"kid": "x0zDLIC9yNRIXu3gW8nTQDOMNe7sKMAjQnZj3AWTW2U",
} . {
"sub": "STG2-APIM-SELF-TEST",
"jti": "jNDZuyLw66gkTjmCNMawzrTJNlhS8wdjpU0DHTzo",
"aud": "https://api.staging-sgdex.gov.sg/sgfindex/fpdata/77e0ff15-88be-474a-84ab-5b24ac2fb9d6",
"iss": "STG2-APIM-SELF-TEST",
"iat": 1662365106,
"exp": 1662365406,
"htm": "POST"
}
{typ}
Type - value "JWT"{alg}
Algorithm - value "ES256"{kid}
Key ID - The unique identifier for the key.{sub}
Subject - client_id issued by SGDex upon onboarding{jti}
JWT ID - random unique identifier{aud}
Audience - URL that partner's application is calling{iss}
Issuer - client_id issued by SGDex upon onboarding{iat}
Issued At (Payload) - current timestamp{exp}
Expiry (Payload) - expiry timestamp{htm}
HTTP Method (Payload) - HTTP method for the request to which the JWT is attachedWhen onboarding to SGDex, every Participant is required to provide JWKS (JSON Web Key Set) endpoint.
The JWKS endpoint which hosts the JWK (JSON Web Key) must meet the following requirements.
A JWKS endpoint can host multiple JWKs, using a key ID kid
to distinguish between each JWK.
The JWK will be used in the following scenarios:
The signature JWK will be used to verify the client assertion JWT presented in request, thereby authenticating the client.
The signature JWK should have the following attributes:
Must contain a key use use
field of value sig, refer to rfc7517#section-4.2.
Must contain a key ID kid
field, refer to rfc7517#section-4.5.
Must contain key type kty
of either EC or RSA.
For key type kty
of value EC, with algorithm alg
of value ES256 and curve crv
of value P-256.
For key type kty
of value RSA, with algorithm alg
of value RS256.
Example:
// EC Signature Key
{
"kty": "EC",
"use": "sig",
"kid": "sig-2021-01-15T12:09:06Z",
"alg": "ES256",
"crv": "P-256",
"x": "Tjm2thouQXSUJSrKDyMfVGe6ZQRWqCr0UgeSbNKiNi8",
"y": "8BuGGu519a5xczbArHq1_iVJjGGBSlV5m_FGBJmiFtE"
}
// RSA Signature Key
{
"kty": "RSA",
"kid": "sig-2023-06-15T14:31:42Z",
"use": "sig",
"alg": "RS256",
"e": "AQAB",
"n": "z7HAG7BFZu-VkvcMceXFH4Jt0y2ZZTgD10Y_GuD8iXi_c6SeAreF6KEXpq3mC_bpspf75hCW--mibqiXxJhxOAAOfQ0WAU-W2tWWlv--tDKsLlKUFF5ebWyZHjWPqPEjRIyc8nkqvlGqAjLp7oefcpOgvbZwMcSc7hrh7NX2nSBDJzyBCVRx-CLKe5q3_9bZzbfudK2RHo9o9p6pC6QCE6url2fEpsPC4M3j4T283ksJFpqOxsbmwp5ns_tmHBkN099NHfgrcda5GLrv8DYKW1vcPQ1RlDThlP3EiWefXx76AiTMby1CkArwafD20zurqdngcSjHuJ80_hxou1WCfw"
}
Key rotation for signature key
To rotate the signature keys with zero downtime, the client must:
kid
to the original key.The encryption JWK will be used to encrypt data requested.
The encryption JWK must have the following attributes:
Must contain a key use use
field of value enc, refer to rfc7517#section-4.2.
Must contain a key ID kid
field, refer to rfc7517#section-4.5.
Must contain key type kty
of either EC or RSA.
For key type kty
of value EC, with algorithm alg
of value ECDH-ES+A256KW and curve crv
of value P-256.
For key type kty
of value RSA, with algorithm alg
of value RSA-OAEP.
If there are multiple keys that meets requirements, the first EC or RSA key will be used.
If encryptionKid is provided as parameter during data pull, encryptionKid will be used to filter the keys in the JWKS. Criteria of keys listed above applies.
Example:
// EC Encryption Key
{
"kty": "EC",
"use": "enc",
"kid": "enc-2021-01-15T12:09:06Z",
"crv": "P-256",
"x": "xom6kD54yfXRPvMFVYFlVjUKzmNhz7wf0DP_2h9kXtY",
"y": "lrh8C9c8-SBJTm1FcfqLkj2AnHtaxpnB1qsN6PiFFJE",
"alg": "ECDH-ES+A256KW"
}
// RSA Encryption Key
{
"kty": "RSA",
"kid": "enc-2023-06-15T14:31:42Z",
"use": "enc",
"alg": "RSA-OAEP",
"e": "AQAB",
"n": "-fbCIK-zGdvVjoOJ78M-7l-Avu80MsSPvOCn1IKUACRS31G-H2Z64vvjz6o-h5dEldwhpFCRPmdTl0TEvj4AIcw6CcWLUmL7QttLSW_kaZ3FVV_UaUzjGSP5G9MrEfC67zwl7b1td3N93szrPA47YYXjgmLq9t2MswFyIYQ6pkBhO4_9joTmrz9LcPnOQrqZx2_X9GUIsQAA52Su3ZdxCuCLhUdSe9_AwMdxuhtBCfTdwJEArwcj-3jDxAlZL_Vr1OImBtsgQ2dnCMDE_weaA2NQp2dIQ5zj7a_zaZ8l3G5L2TGKXeCEo8rDuGjvuYQ4fLxjyiJqLydzosCaeB7N7w"
}
Key rotation for encryption key
To rotate the encryption key with zero downtime, the client must:
kid
in JWE.Before user data is returned to a Consumer, the response payload for the Person/Corporate Data API is first signed, then encrypted by SGDex:
In order to read the response payload, a Consumer has to perform the following steps in this order:
After completing the steps above, the Consumer will be able to extract the payload in JSON format.
ES256
.iat
(epoch time when the signature is generated) is included in the JWS header.SGDex uses standard HTTP response codes to indicate the success or failure of each API request. For successful requests, our APIs return 2XX codes. Generally, our HTTP error codes have the following implication:
The general format of our error responses are as follows:
{
"code": "integer (int32), this is our custom error code.",
"message": "string"
}
List of HTTP Response Codes:
Code | Possible Reasons |
---|---|
400 Bad Request | |
401 Unauthorised | |
403 Forbidden | |
404 Not Found | |
500 Server Error | |
Refer to the individual API definitions for the error codes you might encounter for each API.
This environment allows you to test your application with production-level security requirements, without needing to test your application directly in production.
The following are some essential information that you might need to test your applications with:
The environment where your application will be integrated with SGDex in production.
The following are some essential information that you might need to test your applications with:
1.2.2-release (10 Jun 2025)
1.2.1-release (24 Jul 2024)
1.2.0-release (27 Jun 2024)
1.1.0-release (6 Nov 2023)
1.0.0-release (20 Jun 2022)
0.1.1 (13 Jan 2022)
0.1.0 (12 August 2021)
SGDex's RESTful API adopts Semantic Versioning 2.0.0 for releases with the following format:
{MAJOR}.{MINOR}.{PATCH}
The table below lists the possible changes to the release version numbers and what they imply.
{MAJOR} increments | {MINOR} increments | {PATCH} increments |
---|---|---|
Introduces incompatible API changes with the previous {MAJOR} version | Introduces new functionalities or information that are backward compatible | Introduces bug fixes and remains backward compatible |
e.g. v1.2.1 --> v2.0.0 | e.g. v1.2.1 --> v1.3.0 | e.g. v1.2.1 --> v1.2.2 |
Scope Name | Description |
---|---|
uinfin | NRIC/FIN |
partial_uinfin | Partial NRIC/FIN |
name | Principal Name |
alias_name | Alias Name |
hanyu_pinyin_name | Hanyu Pinyin Name |
hanyu_pinyin_alias_name | Hanyu Pinyin Alias Name |
married_name | Married Name |
sex | Sex |
race | Race |
secondary_race | Secondary Race |
dialect | Dialect |
date_of_birth | Date of Birth |
residential_status | Residential Status |
nationality | Nationality/Citizenship |
country_of_birth | Country/Place of Birth |
passport_number | Passport Number |
passport_expiry_date | Passport Expiry Date |
pass_type | Pass Type |
pass_status | Pass Status |
pass_expiry_date | Pass Expiry Date |
employment_sector | Employment Sector |
mobile_number | Mobile Number |
Email Address | |
registered_address | Registered Address |
hdb_type | Type of HDB |
housing_type | Type of Housing |
cpf_balances.ordinary_account | CPF Balances - Ordinary Account |
cpf_balances.medisave_account | CPF Balances - Medisave Account |
cpf_balances.retirement_account | CPF Balances - Retirement Account |
cpf_balances.special_account | CPF Balances - Special Account |
cpf_contributions | CPF Contribution History (up to 15 months) |
cpf_housing_withdrawal | CPF Housing Withdrawal |
cpf_investment_scheme.account | CPF Investment Scheme - Account |
cpf_investment_scheme.number_of_discounted_singtel_shares | CPF Investment Scheme - Number of Discounted Singtel Shares |
cpf_investment_scheme.saq_participation_status | CPF Investment Scheme - Self-Awareness Questionnaire (SAQ) Participation Status |
notice_of_assessment_basic | Notice of Assessment (Basic, Latest Year) |
notice_of_assessment_history_basic | Notice of Assessment (Basic, Last 2 Years) |
notice_of_assessment | Notice of Assessment (Detailed, Latest Year) |
notice_of_assessment_history | Notice of Assessment (Detailed, Last 2 Years) |
ownership_of_private_property_indicator | Ownership of Private Residential Property |
driving_licence.com_status | Driving Licence - Certificate of Merit Status |
driving_licence.total_demerit_points | Driving Licence - Total Demerit Points |
driving_licence.suspension.start_date | Driving Licence - Suspension Start Date |
driving_licence.suspension.end_date | Driving Licence - Suspension End Date |
driving_licence.disqualification.start_date | Driving Licence - Disqualification Start Date |
driving_licence.disqualification.end_date | Driving Licence - Disqualification End Date |
driving_licence.revocation.start_date | Driving Licence - Revocation Start Date |
driving_licence.revocation.end_date | Driving Licence - Revocation End Date |
driving_licence.provisional_driving_licence.validity | Driving Licence - Provisional Driving Licence Validity |
driving_licence.provisional_driving_licence.expiry_date | Driving Licence - Provisional Driving Licence Expiry Date |
driving_licence.provisional_driving_licence.classes | Driving Licence - Provisional Driving Licence Class |
driving_licence.qualified_driving_licence.validity | Driving Licence - Qualified Driving Licence Validity |
driving_licence.qualified_driving_licence.expiry_date | Driving Licence - Qualified Driving Licence Expiry Date |
driving_licence.qualified_driving_licence.classes | Driving Licence - Qualified Driving Licence Class |
driving_licence.photo_card_serial_number | Driving Licence - Photo Card Serial Number |
vehicles.vehicle_number | Vehicles - Vehicle Number |
vehicles.type | Vehicles - Vehicle Type |
vehicles.iu_label_number | Vehicles - IU Label Number |
vehicles.make | Vehicles - Vehicle Make |
vehicles.model | Vehicles - Vehicle Model |
vehicles.chassis_number | Vehicles - Chassis Number |
vehicles.engine_number | Vehicles - Engine Number |
vehicles.motor_number | Vehicles - Motor Number |
vehicles.year_of_manufacture | Vehicles - Year of Manufacture |
vehicles.first_registration_date | Vehicles - First Registration Date |
vehicles.original_registration_date | Vehicles - Original Registration Date |
vehicles.coe_category | Vehicles - COE Category |
vehicles.coe_expiry_date | Vehicles - COE Expiry Date |
vehicles.road_tax_expiry_date | Vehicles - Road Tax Expiry Date |
vehicles.quota_premium | Vehicles - Quota Premium |
vehicles.open_market_value | Vehicles - Open Market Value |
vehicles.co2_emission | Vehicles - CO2 Emission Rate |
vehicles.status | Vehicles - Vehicle Status |
vehicles.primary_colour | Vehicles - Primary Colour |
vehicles.secondary_colour | Vehicles - Secondary Colour |
vehicles.attachment_1 | Vehicles - Attachment 1 |
vehicles.attachment_2 | Vehicles - Attachment 2 |
vehicles.attachment_3 | Vehicles - Attachment 3 |
vehicles.scheme | Vehicles - Vehicle Scheme |
vehicles.thc_emission | Vehicles - THC Emission Rate |
vehicles.co_emission | Vehicles - CO Emission Rate |
vehicles.nox_emission | Vehicles - NOx Emission Rate |
vehicles.pm_emission | Vehicles - PM Emission Rate |
vehicles.engine_capacity | Vehicles - Engine Capacity |
vehicles.power_rate | Vehicles - Power Rate |
vehicles.effective_ownership | Vehicles - Effective Date/Time of Ownership |
vehicles.propellant | Vehicles - Propellant |
vehicles.maximum_unladen_weight | Vehicles - Max Unladen Weight |
vehicles.maximum_laden_weight | Vehicles - Max Laden Weight |
vehicles.minimum_parf_benefit | Vehicles - Minimum PARF Benefit |
vehicles.number_of_transfers | Vehicles - No. of Transfers |
vehicles.vpc | Vehicles - Vehicle Parking Certificate |
marital | Marital Status |
marriage_date | Marriage Date |
divorce_date | Divorce Date |
marriage_cert_number | Marriage Certificate Number |
country_of_marriage | Country/Place of Marriage |
children_birth_records.birth_certificate_number | Children Birth Records - Birth Cert Number |
children_birth_records.name | Children Birth Records - Name |
children_birth_records.alias_name | Children Birth Records - Alias Name |
children_birth_records.hanyu_pinyin_name | Children Birth Records - Hanyu Pinyin Name |
children_birth_records.hanyu_pinyin_alias_name | Children Birth Records - Hanyu Pinyin Alias Name |
children_birth_records.married_name | Children Birth Records - Married Name |
children_birth_records.sex | Children Birth Records - Sex |
children_birth_records.race | Children Birth Records - Race |
children_birth_records.secondary_race | Children Birth Records - Secondary Race |
children_birth_records.date_of_birth | Children Birth Records - Date of Birth |
children_birth_records.time_of_birth | Children Birth Records - Time of Birth |
children_birth_records.dialect | Children Birth Records - Dialect |
children_birth_records.life_status | Children Birth Records - Life Status |
children_birth_records.vaccination_requirements | Children Birth Records - Child Vaccination |
children_birth_records.singapore_citizen_at_birth_indicator | Children Birth Records - Singapore Citizen at Birth Indicator |
sponsored_children_records.nric | Sponsored Children Records - NRIC / FIN |
sponsored_children_records.name | Sponsored Children Records - Name |
sponsored_children_records.alias_name | Sponsored Children Records - Alias Name |
sponsored_children_records.hanyu_pinyin_name | Sponsored Children Records - Hanyu Pinyin Name |
sponsored_children_records.hanyu_pinyin_alias_name | Sponsored Children Records - Hanyu Pinyin Alias Name |
sponsored_children_records.married_name | Sponsored Children Records - Married Name |
sponsored_children_records.sex | Sponsored Children Records - Sex |
sponsored_children_records.race | Sponsored Children Records - Race |
sponsored_children_records.secondary_race | Sponsored Children Records - Secondary Race |
sponsored_children_records.dialect | Sponsored Children Records - Dialect |
sponsored_children_records.date_of_birth | Sponsored Children Records - Date of Birth |
sponsored_children_records.birth_country | Sponsored Children Records - Country/Place of Birth |
sponsored_children_records.life_status | Sponsored Children Records - Life Status |
sponsored_children_records.residential_status | Sponsored Children Records - Residential Status |
sponsored_children_records.nationality | Sponsored Children Records - Nationality/Citizenship |
sponsored_children_records.grant_date | Sponsored Children Records - SC / PR / LTVP Grant Date |
sponsored_children_records.vaccination_requirements | Sponsored Children Records - Child Vaccination |
employment | Name of Employer |
occupation | Occupation |
cpf_employers | CPF Employers |
academic_qualifications.transcripts | Singapore-Cambridge Examination |
academic_qualifications.certificates | Singapore-Cambridge Examination (OpenCert) |
lta_vocational_licences.tdvl.licence_name | LTA Vocational Licences - TDVL Licence Name |
lta_vocational_licences.tdvl.vocational_licence_number | LTA Vocational Licences - TDVL Vocational Licence Number |
lta_vocational_licences.tdvl.expiry_date | LTA Vocational Licences - TDVL Expiry Date |
lta_vocational_licences.tdvl.status | LTA Vocational Licences - TDVL Status |
lta_vocational_licences.pdvl.licence_name | LTA Vocational Licences - PDVL Licence Name |
lta_vocational_licences.pdvl.vocational_licence_number | LTA Vocational Licences - PDVL Vocational Licence Number |
lta_vocational_licences.pdvl.expiry_date | LTA Vocational Licences - PDVL Expiry Date |
lta_vocational_licences.pdvl.status | LTA Vocational Licences - PDVL Status |
lta_vocational_licences.bavl.licence_name | LTA Vocational Licences - BAVL Licence Name |
lta_vocational_licences.bavl.vocational_licence_number | LTA Vocational Licences - BAVL Vocational Licence Number |
lta_vocational_licences.bavl.expiry_date | LTA Vocational Licences - BAVL Expiry Date |
lta_vocational_licences.bavl.status | LTA Vocational Licences - BAVL Status |
lta_vocational_licences.bdvl.licence_name | LTA Vocational Licences - BDVL Licence Name |
lta_vocational_licences.bdvl.vocational_licence_number | LTA Vocational Licences - BDVL Vocational Licence Number |
lta_vocational_licences.bdvl.expiry_date | LTA Vocational Licences - BDVL Expiry Date |
lta_vocational_licences.bdvl.status | LTA Vocational Licences - BDVL Status |
lta_vocational_licences.odvl.licence_name | LTA Vocational Licences - ODVL Licence Name |
lta_vocational_licences.odvl.vocational_licence_number | LTA Vocational Licences - ODVL Vocational Licence Number |
lta_vocational_licences.odvl.expiry_date | LTA Vocational Licences - ODVL Expiry Date |
lta_vocational_licences.odvl.status | LTA Vocational Licences - ODVL Status |
hdb_ownership.number_of_owners | HDB Ownership - Number of Owners |
hdb_ownership.address | HDB Ownership - Address |
hdb_ownership.hdb_type | HDB Ownership - Type of HDB Dwelling |
hdb_ownership.lease_commencement_date | HDB Ownership - Lease Commencement Date |
hdb_ownership.term_of_lease | HDB Ownership - Term of Lease |
hdb_ownership.date_of_purchase | HDB Ownership - Date of Purchase |
hdb_ownership.date_of_ownership_transfer | HDB Ownership - Date of Transfer of Ownership |
hdb_ownership.loan_granted | HDB Ownership - Loan Granted |
hdb_ownership.original_loan_repayment | HDB Ownership - Original Loan Repayment Period |
hdb_ownership.balance_loan_repayment | HDB Ownership - Balance Loan Repayment Period |
hdb_ownership.outstanding_loan_balance | HDB Ownership - Outstanding HDB Loan Balance |
hdb_ownership.monthly_loan_instalment | HDB Ownership - Monthly Loan Instalment |
hdb_ownership.purchase_price | HDB Ownership - Purchase Price |
hdb_ownership.outstanding_instalment | HDB Ownership - Outstanding Instalment |
pioneer_generation.eligibility | Pioneer Generation Eligibility |
merdeka_generation.eligibility | Merdeka Generation Eligibility |
Scope Name | Description |
---|---|
entity_profile | Entity Profile |
previous_names | Previous Names |
previous_uens | Previous UENs |
address | Addresses |
financials | Financials |
capital | Capitals |
appointments | Appointments |
shareholders | Shareholders |
grants | Grants |
builders | Builders |
contractors | Contractors |
gov_contracts | Government contracts |
licences | Licences |
gas_consumption | Gas Consumption |
electricity_consumption | Electricity Consumption |
water_consumption | Water Consumption |
Please contact the SGDex team at support@sgdex.gov.sg for support.
This API will return the updated SGDex's public key information by default. With passing kid (the unique identifier for the key) in the path parameter, this API will return the specified public key information.
kid | string The unique identifier for the key. NOTE: If this parameter is not provided, the result will show an array of keys that are available. |
{- "keys": [
- {
- "kty": "string",
- "n": "string",
- "e": "string",
- "alg": "string",
- "kid": "string",
- "use": "string"
}
]
}
This API allows admin to create a Usecase.
dex required | string A unique name tag for the specific data exchange. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
usecase_id required | string Unique ID of the Usecase you want to create. The usecase_id is a case-sensitive alphanumeric string that does not allow for spaces or special characters with the exception of '-' and '_'. |
name required | string The name of the Usecase you want to create. |
description required | string The description of the Usecase you want to create |
{- "usecase_id": "sample_usecase_id",
- "name": "Sample Usecase",
- "description": "This is a sample Usecase."
}
{- "usecase_id": "sample_usecase_id"
}
This API allows admin to get a Usecase or get a list of Usecases.
usecase_id
is specified, then this API will return a list with a single Usecase.
usecase_id
is not specified, then this API will return a list of all Usecases in the Dex.
dex required | string A unique name tag for the specific data exchange. |
usecase_id | string The unique id of the Usecase you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "usecase_id": "sample_usecase_id",
- "name": "Sample Usecase",
- "description": "This is a sample Usecase.",
- "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "admin",
- "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "admin"
}
]
This API allows admin to update a Usecase.
dex required | string A unique name tag for the specific data exchange. |
usecase_id required | string The unique id of the Usecase you want to update. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
usecase_name required | string The name of the Usecase. |
description required | string The description of the Usecase. |
{- "usecase_name": "Sample Usecase 2",
- "description": "This is a sample Usecase."
}
{- "code": 0,
- "message": "string"
}
This API allows admin to delete a Usecase.
dex required | string A unique name tag for the specific data exchange. |
usecase_id required | string The unique id of the Usecase you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
{- "code": 0,
- "message": "string"
}
This API allows admin to create a Usecase API.
dex required | string A unique name tag for the specific data exchange. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
name required | string The name of the Usecase API you want to create. |
description required | string The description of the Usecase API you want to create. |
version required | integer The version number of the Usecase API you want to create. It has to be a positive integer. |
http_method required | string The HTTP method that this Usecase API will use. |
api_type required | string The type of this Usecase API. Value can only be |
object This object only needs to be defined for oauth2 Usecase APIs | |
softlink | Array of strings An array of strings that specify the Usecases that this Usecase API is related to. |
{- "name": "sample_api",
- "version": 1,
- "http_method": "GET",
- "description": "This is a sample Usecase API.",
- "api_type": "SYNC",
- "oauth2": {
- "scope": [
- "scope1",
- "scope2",
- "scope3"
]
}, - "softlink": [
- "sample_usecase_id"
]
}
{- "usecase_api_id": "f727a5a9-5d30-49f8-8dd7-5b315cab5f4b"
}
This API allows admin to get a Usecase API or get a list of Usecase APIs that satisfy the attributes you specify.
usecase_api_id
is specified, then this API will return a list with a single Usecase API.
usecase_api_id
is not specified and other criteria are specified, then this API will return a list of all Usecase APIs that satisfy those criteria.
dex required | string A unique name tag for the specific data exchange. |
usecase_api_id | string The unique id of the Usecase API you are interested in. If this is specified, no query string parameters should be specified. |
name | string Example: name=sample_name The name of the Usecase API you are interested in. If this is specified, usecase_api_id must not be specified. This field must be specified if usecase_api_id is not specified. |
http_method | string Example: http_method=GET The HTTP method of the Usecase API you are interested in. This is an optional field when the name is specified. |
version | integer Example: version=1 The version of the Usecase API you are interested in. This is an optional field when the name is specified. |
published | boolean Example: published=true The published status of the Usecase API you are interested in. This is an optional field when the name is specified. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "name": "sample_api",
- "version": 1,
- "http_method": "GET",
- "description": "This is a sample Usecase API.",
- "api_type": "SYNC",
- "oauth2": {
- "scope": [
- "scope1"
]
}, - "softlink": [
- "sample_usecase_id"
], - "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "admin",
- "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "admin"
}
]
This API allows admin to update a Usecase API.
dex required | string A unique name tag for the specific data exchange. |
usecase_api_id required | string The unique id of the Usecase API you want to update. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
name required | string The name of the Usecase API. |
description required | string The description of the Usecase API. |
version required | integer The version number of the Usecase API. It has to be a positive integer. |
http_method required | string The HTTP method that this Usecase API will use. |
api_type required | string The type of this Usecase API. Value can only be |
object This object only needs to be defined for oauth2 Usecase APIs | |
softlink | Array of strings An array of strings that specify the Usecases that this Usecase API is related to. |
published | boolean Set this to true when you want to publish this Usecase API. You cannot unpublish a Usecase API once it is published. |
{- "name": "sample_api_changed",
- "version": 1,
- "http_method": "POST",
- "description": "This is a changed sample Usecase API.",
- "api_type": "SYNC",
- "oauth2": {
- "scope": [
- "scope1",
- "scope2"
]
}, - "softlink": [
- "sample_usecase_id"
], - "published": true
}
{- "code": 0,
- "message": "string"
}
This API allows admin to delete a Usecase API.
dex required | string A unique name tag for the specific data exchange. |
usecase_api_id required | string The unique id of the Usecase API you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
{- "code": 0,
- "message": "string"
}
This API allows admin to create a Usecase Topic.
dex required | string A unique name tag for the specific data exchange. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
name required | string The name of the Usecase Topic you want to create. |
description required | string The description of the Usecase Topic you want to create. |
softlink | Array of strings An array of strings that specify the Usecases that this Usecase Topic is related to. |
{- "name": "sample_topic",
- "description": "This is a sample Usecase Topic.",
- "softlink": [
- "sample_usecase_id"
]
}
{- "usecase_topic_id": "14fb72b6-325d-4174-9aaf-fafeef7ddd9e"
}
This API allows admin to get a Usecase Topic or get a list of Usecase Topics with certain attributes you specify.
usecase_topic_id
is specified, then this API will only return a list with a single Usecase Topic.
usecase_topic_id
is not specified and name
is specified, then this API will return a list of all Usecase Topics with that name.
dex required | string A unique name tag for the specific data exchange. |
usecase_topic_id | string The unique id of the Usecase Topic you are interested in. If this is specified, no query string parameters should be specified. |
name | string Example: name=sample_topic The name of the Usecase Topic you are interested in. If this is specified, usecase_topic_id must not be specified. This field must be specified if usecase_topic_id is not specified. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "usecase_topic_id": "14fb72b6-325d-4174-9aaf-fafeef7ddd9e",
- "name": "sample_topic",
- "description": "This is a sample Usecase Topic.",
- "softlink": [
- "sample_usecase_id"
], - "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "admin",
- "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "admin"
}
]
This API allows admin to update a Usecase Topic.
dex required | string A unique name tag for the specific data exchange. |
usecase_topic_id required | string The unique id of the Usecase Topic you want to update. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
name required | string The name of the Usecase Topic. |
description required | string The description of the Usecase Topic. |
softlink | Array of strings An array of strings that specify the Usecases that this Usecase Topic is related to. |
published | boolean Set this to true when you want to publish this Usecase Topic. You cannot unpublish a Usecase Topic once it is published. |
{- "name": "sample_topic_changed",
- "description": "This is a changed sample Usecase Topic.",
- "softlink": [
- "sample_usecase_id"
], - "published": true
}
{- "code": 0,
- "message": "string"
}
This API allows admin to delete a Usecase Topic.
dex required | string A unique name tag for the specific data exchange. |
usecase_topic_id required | string The unique id of the Usecase Topic you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
{- "code": 0,
- "message": "string"
}
This API allows admin to create a Participant.
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
entity_id required | string The UEN that this participant would be part of. |
alias required | string The alias of the participant. |
description required | string The description of the participant. |
{- "entity_id": "197900305Z",
- "alias": "participant1",
- "description": "This is a sample participant."
}
{- "participant_id": "28c60ead-9584-4998-a94d-2fae8ed61615"
}
This API allows admin to get a Participant, get a list of Participants based on organisation_id or get all Participants in the Dex.
participant_id
is specified, then this API will only return a list wih a single Participant.
participant_id
is not specified and entity_id
is specified, then this API will return a list of all Participants in the Dex part of this entity_id.
participant_id
and entity_id
are not specified, then this API will return a list of Participants in the Dex.
participant_id | string The unique id of the Participant you are interested in. If this is specified, no query string parameters should be specified. |
entity_id | string Example: entity_id=197900305Z The entity_id you are interested in. If this is specified, participant_id should not be specified. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "participant_id": "28c60ead-9584-4998-a94d-2fae8ed61615",
- "alias": "participant1",
- "entity_id": "123456789A",
- "description": "This is a sample participant.",
- "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "admin",
- "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "admin"
}
]
This API allows admin to update a Participant.
participant_id required | string The unique id of the Participant you want to update. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
description required | string The new description of the Participant. |
{- "description": "This is the new sample description."
}
{- "code": 0,
- "message": "string"
}
This API allows admin to delete a Participant.
participant_id required | string The unique id of the Participant you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
{- "code": 0,
- "message": "string"
}
This API allows admin to create a JWKS Endpoint.
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
participant_id required | string The unique ID of the participant that this JWKS endpoint belongs to. |
url required | string The url of this JWKS Endpoint. |
{- "participant_id": "28c60ead-9584-4998-a94d-2fae8ed61615",
}
{- "jwks_endpoint_id": "5349afea-934d-47f1-9ff4-b55a33ef453b"
}
This API allows admin to get a JWKS Endpoint or get a list of JWKS Endpoints based on participant_id.
jwks_endpoint_id
is specified, then this API will return a list with a single JWKS Endpoint.
jwks_endpoint_id
is not specified and participant_id
is specified, then this API will return a list of all JWKS Endpoints belonging to this Participant.
jwks_endpoint_id | string The unique id of the JWKS Endpoint you are interested in. If this is specified, no query string parameters should be specified. |
participant_id | string Example: participant_id=28c60ead-9584-4998-a94d-2fae8ed61615 The participant_id of the Participant you are interested in. If this is specified, jwks_endpoint_id should not be specified. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "jwks_endpoint_id": "5349afea-934d-47f1-9ff4-b55a33ef453b",
- "participant_id": "28c60ead-9584-4998-a94d-2fae8ed61615",
- "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "admin",
- "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "admin"
}
]
This API allows admin to update a JWKS Endpoint.
jwks_endpoint_id required | string The unique id of the JWKS Endpoint you want to update. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
url required | string The new url of this JWKS Endpoint. |
{- "participant_id": "28c60ead-9584-4998-a94d-2fae8ed61615",
}
{- "code": 0,
- "message": "string"
}
This API allows admin to delete a JWKS Endpoint.
jwks_endpoint_id required | string The unique id of the JWKS Endpoint you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
{- "code": 0,
- "message": "string"
}
This API allows admin to create an Application.
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
application_id | string The unique ID of this application. If not specified, your application will be assigned an application_id. |
name required | string The name of the application. |
description required | string The description of the application. |
participant_id required | string The participant_id of the Participant this application belongs to. |
required | object The security mechanism information of this application. |
webhook_id | string The webhook_id of the Webhook that this application uses. |
{- "application_id": "myApp_id",
- "name": "myApp",
- "participant_id": "28c60ead-9584-4998-a94d-2fae8ed61615",
- "description": "This is a sample application.",
- "security_mechanism": {
- "jwks_endpoint_id": "5349afea-934d-47f1-9ff4-b55a33ef453b"
}, - "webhook_id": "d4e677a6-2866-4f93-bcbe-735814c38398"
}
{- "application_id": "myApp_id"
}
This API allows admin to get an Application or get a list of Applications based on participant_id.
application_id
is specified, then this API will return a list with a single Application.
application_id
is not specified and participant_id
is specified, then this API will return a list of all Application belonging to this Participant.
application_id | string The unique id of the Application you are interested in. If this is specified, no query string parameters should be specified. |
participant_id | string Example: participant_id=28c60ead-9584-4998-a94d-2fae8ed61615 The participant_id of the Participant you are interested in. If this is specified, application_id should not be specified. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "application_id": "myApp_id",
- "name": "myApp",
- "participant_id": "28c60ead-9584-4998-a94d-2fae8ed61615",
- "description": "This is a sample application.",
- "security_mechanism": {
- "jwks_endpoint_id": "5349afea-934d-47f1-9ff4-b55a33ef453b"
}, - "webhook_id": "d4e677a6-2866-4f93-bcbe-735814c38398",
- "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "admin",
- "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "admin"
}
]
This API allows admin to update an Application.
application_id required | string The unique id of the application you want to update. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
participant_id required | string The unique id of the participant that this application belongs to. |
name required | string The name of this application. |
description required | string The description of this application. |
required | object The security mechanism of this application. |
webhook_id | string The webhook_id of the Webhook that this application uses. |
{- "participant_id": "28c60ead-9584-4998-a94d-2fae8ed61615",
- "name": "myAppNew",
- "description": "This is a new sample application description.",
- "security_mechanism": {
- "jwks_endpoint_id": "5349afea-934d-47f1-9ff4-b55a33ef453b"
}, - "webhook_id": "d4e677a6-2866-4f93-bcbe-735814c38398"
}
{- "code": 0,
- "message": "string"
}
This API allows admin to delete an Application.
application_id required | string The unique id of the Application you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
{- "code": 0,
- "message": "string"
}
This API allows admin to create an Endpoint.
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
participant_id required | string The participant ID assigned to you. |
name required | string The name of the endpoint you want to create. |
description required | string The description of the endpoint you want to create. |
url required | string The url of the endpoint you want to create. |
http_method required | string The http method of the endpoint you want to create. |
required | object The security mechanism details of the endpoint you want to create. |
timeout | number The timeout value of the endpoint you want to create. |
{- "participant_id": "STG-20230201M-TEST",
- "name": "Sample endpoint",
- "description": "This is a sample endpoint",
- "http_method": "POST",
- "security_mechanism": {
- "type": "JWTRequest",
- "ec_supported": false
}, - "timeout": 8000
}
{- "endpoint_id": "3d8a3fe5-cbaa-4b70-8a6c-a70362ccb6e5"
}
This API allows admin to get an Endpoint or get a list of Endpoints with certain attributes you specify.
endpoint_id
is specified, then this API will return a list with a single Endpoint.
endpoint_id
is not specified and other criteria are specified, then this API will return a list of all Endpoints that satisfy those criteria in the Dex.
endpoint_id required | string The unique id of the Endpoint you are interested in. If this is specified, no query string parameters should be specified. |
participant_id required | string Example: participant_id=STG-231696441I-PARTICIPANT The participant id of the Endpoint you are interested in. This field must be specified if webhook_id is not specified. |
name | string Example: name=sample_name The name of the Endpoint you are interested in. |
http_method | string Example: http_method=POST The http_method of the Endpoint you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "endpoint_id": "3c1cb5d1-1f47-4dec-b745-eb236105f2b5",
- "participant_id": "STG-231696441I-Finance",
- "http_method": "POST",
- "name": "endpoint",
- "description": "this is an endpoint",
- "security_mechanism": {
- "type": "JWTRequest",
- "algo": "RS256",
- "iss": "sgdex",
- "sub": "sgdex",
- "client_id": "client_id",
- "client_secret": "client_secret"
}, - "settings": {
- "timeout": 5000
}, - "created_on": "2021-07-21T10:53:03+00:00",
- "created_by": "adminA",
- "updated_on": "2021-07-22T10:53:03+00:00",
- "updated_by": "adminA"
}
]
This API allows admin to update an Endpoint.
endpoint_id required | string The unique id of the Endpoint you want to update. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
name required | string The name of the endpoint you want to update. |
description required | string The description of the endpoint you want to update. |
url required | string The url of the endpoint you want to update. |
http_method required | string The http method of the endpoint you want to update. |
required | object The security mechanism details of the endpoint you want to create. |
timeout | number The timeout value of the endpoint you want to update. |
{- "name": "Sample updated endpoint",
- "description": "This is a sample update endpoint request",
- "http_method": "POST",
- "security_mechanism": {
- "type": "JWTRequest",
- "ec_supported": true
}, - "timeout": 5000
}
{- "code": 0,
- "message": "string"
}
This API allows admin to delete an Endpoint.
endpoint_id required | string The unique id of the Endpoint you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
{- "code": 0,
- "message": "string"
}
This API allows admin to create a Webhook.
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
participant_id required | string The participant ID assigned to you. |
description required | string The description of the webhook you want to create. |
url required | string The url of the webhook you want to create. |
required | object The security mechanism details of the webhook you want to create. |
timeout | number The timeout value of the webhook you want to create. |
{- "participant_id": "STG-20230201M-TEST",
- "description": "This is a sample webhook",
- "security_mechanism": {
- "type": "JWTRequest",
- "ec_supported": false
}, - "timeout": 8000
}
{- "webhook_id": "3d8a3fe5-cbaa-4b70-8a6c-a70362ccb6e5"
}
This API allows admin to get a Webhook or get a list of Webhooks with certain attributes you specify.
webhook_id
is specified, then this API will return a list with a single Webhook.
webhook_id
is not specified and other criteria are specified, then this API will return a list of all Webhooks that satisfy those criteria in the Dex.
webhook_id | string The unique id of the Webhook you are interested in. If this is specified, no query string parameters should be specified. |
participant_id | string Example: participant_id=STG-231696441I-PARTICIPANT The participant id of the Webhook you are interested in. This field must be specified if webhook_id is not specified. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "webhook_id": "aab098a5-377c-4419-9517-629e3a2f48c8",
- "participant_id": "STG-231696441I-Finance",
- "description": "Sample Description",
- "security_mechanism": {
- "type": "JWTRequest",
- "algo": "RS256",
- "iss": "sgdex",
- "sub": "sgdex"
}, - "setting": {
- "timeout": 8000
}, - "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "adminA",
- "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "adminA"
}
]
This API allows admin to update a Webhook.
webhook_id required | string The unique id of the Webhook you want to update. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
description required | string The description of the webhook you want to update. |
url required | string The url of the webhook you want to update. |
required | object The security mechanism details of the webhook you want to update. |
timeout | number The timeout value of the webhook you want to update. |
{- "description": "This is a sample update webhook request",
- "security_mechanism": {
- "type": "JWTRequest",
- "ec_supported": true
}, - "timeout": 5000
}
{- "code": 0,
- "message": "string"
}
This API allows admin to delete a Webhook.
webhook_id required | string The unique id of the Webhook you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
{- "code": 0,
- "message": "string"
}
This API allows admin to create an Enrolment.
dex required | string A unique name tag for the specific data exchange. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
provider_id required | string The participant ID assigned to you. |
enrolment_type required | string The type of the enrolment you want to create. Value can only be |
description required | string The description of the enrolment you want to create. |
usecase_api_id | string The usecase api you want to enrol. **applicable when enrolment_type is api or asyncapi |
scope | string The scope you want to enrol. **applicable when enrolment_type is api |
endpoint_id | string The endpoint you want to use in this enrolment. **applicable when enrolment_type is api or asyncapi |
usecase_topic_id | string The usecase topic you want to enrol. **applicable when enrolment_type is topic |
system_id | string The system you want to use in this enrolment. **applicable when enrolment_type is topic |
status | string The status of the enrolment you want to create. |
required | Array of objects An array of object that contains the list of tasks required for this endpoint. The details required for each task vary depending on the configuration. |
{- "provider_id": "STG-20230201M-TEST",
- "enrolment_type": "api",
- "description": "This is a sample enrolment",
- "usecase_api_id": "19628b69-3fa4-4963-b387-48efff088753",
- "endpoint_id": "238f92b4-6386-4e10-a391-08842b460797",
- "processing_task": [
- {
- "name": "FederateData"
}
]
}
{- "enrolment_id": "b0c97cc9-d458-4f14-b2c8-b348ba06f35a"
}
This API allows admin to get an Enrolment or get a list of Enrolments with certain attributes you specify.
enrolment_id
is specified, then this API will return a list with a single Enrolment.
enrolment_id
is not specified and other criteria are specified, then this API will return a list of all Enrolments that satisfy those criteria in the Dex.
dex required | string A unique name tag for the specific data exchange. |
enrolment_id | string The unique id of the enrolment you are interested in. |
provider_id | string Example: provider_id=STG-231696441I-PROVIDER The participant id of the Webhook you are interested in. This field must be specified if enrolment_id is not specified. |
status | string Example: status=APPROVED enrolment status. Value can be |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "enrolment_id": "a05e7279-f78b-4f29-bdac-b904476046ba",
- "provider_id": "STG-231696441I-Finance",
- "status": "PENDING",
- "description": "sample request data for api enrolment",
- "usecase_api_id": "fac098a5-377c-4419-9517-629e3a2f48c8",
- "usecase_api_name": "fpdata",
- "usecase_api_oauth2": {
- "scope": [
- "scopeA",
- "scopeB"
]
}, - "endpoint_id": "0bc60532-c166-47e3-8122-8926a85001a8",
- "usecase_topic_id": "6ae41b6b-24b9-434b-9449-252168d41464",
- "usecase_topic_name": "topic",
- "system_id": "ac9e4be3-d3f6-419b-8110-fffa991e20bf",
- "system_name": "mysystem",
- "created_on": "2022-07-13T17:33:00+00:00",
- "created_by": "adminA",
- "updated_on": "2022-07-13T17:33:00+00:00",
- "updated_by": "adminA"
}
]
This API allows admin to approve or reject an Enrolment.
dex required | string A unique name tag for the specific data exchange. |
enrolment_id required | string The unique id of the Enrolment you want to update. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
status required | string The status you want to update for your enrolment. Current supported values are |
comment | string The comment you want to update for your enrolment. **mandatory when status is REJECTED |
Array of objects An array of object that contains the list of tasks required for this endpoint. The details required for each task vary depending on the configuration. **applicable only when status is APPROVED |
{- "status": "APPROVED",
- "comment": "I approved this enrolment",
- "processing_task": [
- {
- "name": "FederateData"
}
]
}
{- "code": 0,
- "message": "string"
}
This API allows admin to delete an Enrolment.
dex required | string A unique name tag for the specific data exchange. |
enrolment_id required | string The unique id of the Enrolment you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
{- "code": 0,
- "message": "string"
}
This API allows admin to create a Subscription.
dex required | string A unique name tag for the specific data exchange. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
consumer_id required | string The participant ID assigned to you. |
description required | string The description of the subscription you want to create. |
Array of objects The list of usecase api you want to subscribe. **either api or topic must be presented | |
Array of objects The list of usecase topic you want to subscribe. **either api or topic must be presented |
{- "consumer_id": "STG-20230201M-TEST",
- "description": "My subscription",
- "api": [
- {
- "usecase_api_id": "b97e4a6b-d11d-4089-998d-545380e3bed0",
- "client_id": "fe8c6490-be76-40a9-b7b3-742fe8061f54"
}
], - "topic": [
- {
- "usecase_topic_id": "6c51a028-fda2-48c6-af79-774e9d866187",
- "consumer_webhook_id": "b52ddd05-2bf8-4bb9-9ad9-26d854ffdf11"
}
]
}
{- "subscription_id": [
- "791a3458-dc5b-41e2-abfd-7f2e2574967a",
- "84dcccb9-59a4-411f-bf12-ab9d8f7b4560",
- "bbcb84a0-7f67-434e-89c3-3488ee23262d"
]
}
This API allows admin to get a Subscription or get a list of Subscriptions with certain attributes you specify.
subscription_id
is specified, then this API will return a list with a single Subscription.
subscription_id
is not specified and other criteria are specified, then this API will return a list of all Subscriptions that satisfy those criteria in the Dex.
dex required | string A unique name tag for the specific data exchange. |
subscription_id | string The unique id of the subscription you are interested in. If this is specified, no query string parameters should be specified. |
consumer_id | string Example: consumer_id=STG-231696441I-CONSUMER The participant id of the Webhook you are interested in. This field must be specified if subscription_id is not specified. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "subscription_id": "967c78f6-c019-4c84-937d-471f570394ee",
- "consumer_id": "STG-231696441I-CONSUMER",
- "description": "sample description",
- "usecase_api_id": "fac098a5-377c-4419-9517-629e3a2f48c8",
- "usecase_api_name": "api",
- "status": "APPROVED",
- "usecase_api_oauth2": {
- "scope": [
- "scopeA",
- "scopeB"
], - "requested_scope": [ ]
}, - "client_id": "STG-231696441I-Cient-Application",
- "client_name": "ClientApplication",
- "usecase_topic_id": "9f99198c-93ea-4453-a32e-af60644dd00a",
- "usecase_topic_name": "topic",
- "consumer_webhook_id": "ec15d660-ffed-468b-b892-206b0439ccd1",
- "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "adminA",
- "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "adminA",
- "subscription_request": [
- {
- "subscription_request_id": "84622655-37df-4a34-9b8e-ceab0c4303d5",
- "provider_id": "STG-241696441L-PROVIDER",
- "status": "APPROVED",
- "usecase_api_oauth2": {
- "scope": [
- "scopeA"
]
}, - "endpoint_id": "6ab95cd5-686a-4fd8-a35e-dc114c1f463f",
- "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "adminA",
- "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "adminA"
}, - {
- "subscription_request_id": "fff22655-37df-4a34-9b8e-ceab0c4303d5",
- "provider_id": "STG-202266853I-TEST-PROVIDER1",
- "status": "PENDING",
- "usecase_api_oauth2": {
- "scope": [
- "scopeB"
]
}, - "endpoint_id": "e4c30b44-ec5e-4e79-bbb3-939c3d378c2e",
- "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "adminA",
- "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "adminA"
}
]
}
]
This API allows admin to update the scope of Subscription.
dex required | string A unique name tag for the specific data exchange. |
subscription_id required | string The unique id of the Subscription you want to update. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
scope required | Array of arrays The new scope array to update in subscription. |
{- "scope": [
- "scopeA",
- "scopeB"
]
}
{- "code": 0,
- "message": "string"
}
This API allows admin to delete Subscription/Subscription(s).
dex required | string A unique name tag for the specific data exchange. |
subscription_id | string The unique id of the Subscription you are interested in. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
subscriptions | Array of arrays The list of subscriptions ids to delete. |
{- "subscription": [
- "16a9a4e0-ea02-4f8c-a40d-cc0d8df7a071",
- "c96b757f-7158-4f81-a1ea-ac0a495ab4fd"
]
}
{- "code": 0,
- "message": "string"
}
This API allows admin to approve or reject Subscription.
dex required | string A unique name tag for the specific data exchange. |
subscription_id required | string The unique id of the Subscription you want to approve/reject. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
status required | string The given status for the subscription. |
comment | string The comment of approving/rejecting the subscription. **mandatory when rejecting the subscription |
{- "status": "REJECTED",
- "comment": "Rejected subscription due to invalid scope requested"
}
{- "code": 0,
- "message": "string"
}
This API allows admin to get a Subscription Request or get a list of Subscription Request with certain attributes you specify.
subscription_request_id
is specified, then this API will return a list with a single Subscription Request.
subscription_request_id
is not specified and other criteria are specified, then this API will return a list of all Subscription Request that satisfy those criteria in the Dex.
dex required | string A unique name tag for the specific data exchange. |
subscription_request_id | string The unique id of the subscription request you are interested in. If this is specified, no query string parameters should be specified. |
provider_id | string Example: provider_id=STG-241696441L-PROVIDER The participant id of the subscription request you are interested in. This field must be specified if subscription_request_id is not specified. |
status | string Example: status=APPROVED status of subscription request you are interested in. Value can be |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "subscription_request_id": "84622655-37df-4a34-9b8e-ceab0c4303d5",
- "subscription_id": "967c78f6-c019-4c84-937d-471f570394ee",
- "consumer_id": "STG-231696441I-CONSUMER",
- "provider_id": "STG-241696441L-PROVIDER",
- "usecase_api_id": "fac098a5-377c-4419-9517-629e3a2f48c8",
- "usecase_api_name": "api",
- "usecase_api_oauth2": {
- "scope": [
- "scopeA"
]
}, - "client_id": "STG-231696441I-Client-ClientApplication",
- "client_name": "ClientApplication",
- "endpoint_id": "6ab95cd5-686a-4fd8-a35e-dc114c1f463f",
- "usecase_topic_id": "6913cdd1-b548-4f3b-b7c1-5ed4784b327f",
- "usecase_topic_name": "topic",
- "consumer_webhook_id": "9c630dcd-2656-428d-9ef1-989b8afb90e3",
- "provider_system_id": "96257467-7009-4eab-a568-25ee98fb8521",
- "provider_system_name": "system_name",
- "status": "APPROVED",
- "description": "sample description",
- "created_on": "2021-03-21T10:53:03+00:00",
- "created_by": "adminA",
- "updated_on": "2021-03-21T10:53:03+00:00",
- "updated_by": "adminA"
}
]
This API allows admin to approve or reject Subscription Request.
dex required | string A unique name tag for the specific data exchange. |
subscription_request_id required | string The unique id of the Subscription Request you want to approve/reject. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
status required | string The given status for the subscription request. |
comment | string The comment of approving/rejecting the subscription request. **mandatory when rejecting the subscription request |
{- "status": "REJECTED",
- "comment": "Rejected subscription request"
}
{- "code": 0,
- "message": "string"
}
This API will federate the call to fetch from relevant providers based on pre-existing configuration and return the combined responses.
This is a synchronous GET call to pull the data. Data will be in the response payload.
dex required | string A unique name tag for the specific data exchange. |
apiname required | string A unique api name within the specific data exchange. |
client_id required | string Unique ID for the data consuming service. |
provider | Array of strings The id of providers to get the data from. |
query | string Example: query=filter:my filter parameter An optional query parameter to filter the result based. This parameter will be passed to the provider end and can be intercepted by the data exchange layer to perform a filtered query to the provider API. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
[- {
- "sp": "string",
- "response_code": 0,
- "payload": "string",
- "error": "string"
}
]
This API will federate the call to fetch from relevant providers based on pre-existing configuration and return the combined responses.
This is a synchronous POST call to pull the data. Data will be in the response payload.
dex required | string A unique name tag for the specific data exchange. |
apiname required | string A unique api name within the specific data exchange. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
client_id required | string Unique ID for the data consuming service. |
provider | Array of strings The id of providers to get the data from. |
query | string An optional query parameter to filter the result based. This parameter will be passed to the provider end and can be intercepted by the data exchange layer to perform a filtered query to the provider API. |
payload | string An optional stringtify payload parameter. This payload will be passed to the provider end.
|
{- "client_id": "client123",
- "provider": [
- "provider_id1",
- "provider_id2"
], - "query": "filter=myfilter",
- "payload": "{attribute1: xx, attribute2: xx}"
}
[- {
- "sp": "string",
- "response_code": 0,
- "payload": "string",
- "error": "string"
}
]
This API returns user's data from data source(s) when presented with a valid access token obtained from the Token API.
Prerequisite: Client application is required to call Authorise API to get user consent and Token API to get the access token before calling the Data API.
identifier required | string A unique identifier of a user. You can get this identifier from the access token (JWT) |
Authorization required | string Access token JWT that was returned from token API. To prefix with 'DPoP ' |
client_assertion required | string The assertion being used to authenticate the client, please refer to Client Assertion for details. This JWT is signed with consumer private key and contains the following parameters:
|
client_assertion_type required | string The format of the assertion as defined by the authorization server. The value will be an absolute URI.
Example: |
encryptionKid | string Consuming applications can specify Key ID in their registered JWKS to encrypt response payload with. |
{- "client_assertion": "string",
- "client_assertion_type": "string",
- "encryptionKid": "string"
}
[- {
- "sp": "string",
- "response_code": 0,
- "payload": "string",
- "error": "string"
}
]
This API returns user's data from data source(s) in consolidated view.
identifier required | string A unique identifier of the user. |
client_assertion required | string The assertion being used to authenticate the client, please refer to Client Assertion for details. |
client_assertion_type required | string The format of the assertion as defined by the authorization server. The value will be an absolute URI.
Example: |
scope required | string Space separated list of scopes requested. Possible scopes are listed in the table above. |
encryptionKid | string Consuming applications can specify Key ID in their registered JWKS to encrypt response payload with. |
{- "client_assertion": "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsImtpZCI6ImRkNDllNTU3LTIxMzgtNGU4NC1hMTVhLTYyNTRiZjIwM2RkMyJ9.eyJzdWIiOiJTVEcyLVVTRVJJTkZPLVNFTEYtVEVTVCIsImp0aSI6ImI0MWI1MDlkLTcyNmItNDM2YS04NTNhLWE5ZmY0ZDc3MDUzYyIsImF1ZCI6Imh0dHBzOi8vbG9jYWxob3N0OjMwMDAvdXNlcmluZm8vcGVyc29uLzQ5OWJiNGM0LTc0NjItMDcxNi00MWFjLTcxZmNiMDIxYTU0OCIsImlzcyI6IlNURzItVVNFUklORk8tU0VMRi1URVNUIiwiaWF0IjoxNzQ4ODUyOTM5LCJleHAiOjE3NDg4NTMyMzksImh0bSI6IlBPU1QifQ.GlKo5TH6XnrTI8j8b0HitpEyST5_FA5yvFWATbg31TM8Y_akM8A0eo9cyDsq9zaqq17BYJ2yMm_-TNkN0oN8fA",
- "client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
- "scope": "scope=name hanyu_pinyin_name date_of_birth",
- "encryptionKid": "f4a78bc8-9667-4b4c-929f-03e7086d84de"
}
{- "data": {
- "uinfin": {
- "value": "S1111111D",
- "last_updated": "2019-03-26"
}, - "partial_uinfin": {
- "value": "111D",
- "last_updated": "2019-03-26"
}, - "name": {
- "value": "TAN XIAO HUI",
- "last_updated": "2019-03-26"
}, - "alias_name": {
- "value": "TRICIA TAN XIAO HUI",
- "last_updated": "2019-03-26"
}, - "hanyu_pinyin_name": {
- "value": "CHEN XIAO HUI",
- "last_updated": "2019-03-26"
}, - "hanyu_pinyin_alias_name": {
- "value": "TRICIA CHEN XIAO HUI",
- "last_updated": "2019-03-26"
}, - "married_name": {
- "value": "",
- "last_updated": "2019-03-26"
}, - "sex": {
- "code": "F",
- "desc": "FEMALE",
- "last_updated": "2019-03-26"
}, - "race": {
- "code": "CN",
- "desc": "CHINESE",
- "last_updated": "2019-03-26"
}, - "secondary_race": {
- "code": "EU",
- "desc": "EURASIAN",
- "last_updated": "2019-03-26"
}, - "dialect": {
- "code": "SG",
- "desc": "SWISS GERMAN",
- "last_updated": "2019-03-26"
}, - "date_of_birth": {
- "value": "1958-05-17",
- "last_updated": "2019-03-26"
}, - "residential_status": {
- "code": "C",
- "desc": "CITIZEN",
- "last_updated": "2019-03-26"
}, - "nationality": {
- "code": "SG",
- "desc": "SINGAPORE CITIZEN",
- "last_updated": "2019-03-26"
}, - "country_of_birth": {
- "code": "SG",
- "desc": "SINGAPORE",
- "last_updated": "2019-03-26"
}, - "passport_number": {
- "value": "E35463874W",
- "last_updated": "2019-03-26"
}, - "passport_expiry_date": {
- "value": "2020-01-01",
- "last_updated": "2019-03-26"
}, - "pass_type": {
- "code": "RPass",
- "desc": "Work Permit",
- "last_updated": "2019-03-26"
}, - "pass_status": {
- "value": "Live",
- "last_updated": "2019-03-26"
}, - "pass_expiry_date": {
- "value": "2022-12-31",
- "last_updated": "2019-03-26"
}, - "employment_sector": {
- "value": "Manufacturing",
- "last_updated": "2019-03-26"
}, - "mobile_number": {
- "prefix": {
- "value": "+"
}, - "areacode": {
- "value": "65"
}, - "nbr": {
- "value": "66132665"
}, - "last_updated": "2019-03-26"
}, - "email": {
- "value": "test@gmail.com",
- "last_updated": "2019-03-26"
}, - "registered_address": {
- "type": "SG",
- "block": {
- "value": "548"
}, - "building": {
- "value": ""
}, - "floor": {
- "value": "09"
}, - "unit": {
- "value": "128"
}, - "street": {
- "value": "BEDOK NORTH AVENUE 1"
}, - "postal": {
- "value": "460548"
}, - "country": {
- "code": "SG",
- "desc": "SINGAPORE"
}, - "classification": "C",
- "source": "1",
- "lastupdated": "2019-03-26",
- "last_updated": "2019-03-26"
}, - "hdb_type": {
- "code": "112",
- "desc": "2-ROOM FLAT (HDB)",
- "last_updated": "2019-03-26"
}, - "housing_type": {
- "code": "123",
- "desc": "TERRACE HOUSE",
- "last_updated": "2019-03-26"
}, - "cpf_balances": {
- "medisave_account": {
- "value": 11470.71,
- "last_updated": "2019-03-26"
}, - "ordinary_account": {
- "value": 1581.48,
- "last_updated": "2019-03-26"
}, - "special_account": {
- "value": 21967.09,
- "last_updated": "2019-03-26"
}, - "retirement_account": {
- "value": 0.01,
- "last_updated": "2019-03-26"
}
}, - "cpf_contributions": {
- "history": [
- {
- "date": {
- "value": "2016-12-01"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2016-11"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2016-12-12"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2016-12"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2016-12-21"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2016-12"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-01-01"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2016-12"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-01-12"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-01"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-01-21"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-01"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-02-01"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-01"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-02-12"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-02"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-02-21"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-02"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-03-01"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-02"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-03-12"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-03"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-03-21"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-03"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-04-01"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-03"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-04-12"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-04"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-04-21"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-04"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-05-01"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-04"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-05-12"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-05"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-05-21"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-05"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-06-01"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-05"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-06-12"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-06"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-06-21"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-06"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-07-01"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-06"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-07-12"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-07"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-07-21"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-07"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-08-01"
}, - "amount": {
- "value": 500
}, - "month": {
- "value": "2017-07"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "date": {
- "value": "2017-08-12"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-08"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-08-21"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-08"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-09-01"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-08"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-09-12"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-09"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-09-21"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-09"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-10-01"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-09"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-10-12"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-10"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-10-21"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-10"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-11-01"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-10"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-11-12"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-11"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-11-21"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-11"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-12-01"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-11"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-12-12"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-12"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2017-12-21"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-12"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2018-01-01"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2017-12"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2018-01-12"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2018-01"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "date": {
- "value": "2018-01-21"
}, - "amount": {
- "value": 750
}, - "month": {
- "value": "2018-01"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}
], - "last_updated": "2019-03-26"
}, - "cpf_housing_withdrawal": {
- "withdrawaldetails": [
- {
- "address": {
- "type": "SG",
- "block": {
- "value": "548"
}, - "building": {
- "value": ""
}, - "floor": {
- "value": "09"
}, - "unit": {
- "value": "128"
}, - "street": {
- "value": "BEDOK NORTH AVENUE 1"
}, - "postal": {
- "value": "460548"
}, - "country": {
- "code": "SG",
- "desc": "SINGAPORE"
}
}, - "accruedinterestamt": {
- "value": 1581.48
}, - "monthlyinstalmentamt": {
- "value": 1196.09
}, - "principalwithdrawalamt": {
- "value": 2897.01
}, - "totalamountofcpfallowedforproperty": {
- "value": 10000.01
}
}
], - "last_updated": "2019-03-26"
}, - "cpf_investment_scheme": {
- "sdsnetshareholdingqty": {
- "value": 1360,
- "last_updated": "2019-03-26"
}, - "account": {
- "agentbankcode": {
- "value": "OCBC"
}, - "invbankacctno": {
- "value": "098-26644-4"
}, - "last_updated": "2019-03-26"
}, - "saqparticipationstatus": {
- "code": "X",
- "desc": "Participated",
- "last_updated": "2019-03-26"
}
}, - "notice_of_assessment_basic": {
- "amount": {
- "value": 100000.01
}, - "yearofassessment": {
- "value": "2018"
}, - "last_updated": "2019-03-26"
}, - "notice_of_assessment_history_basic": {
- "noas": [
- {
- "amount": {
- "value": 100000.01
}, - "yearofassessment": {
- "value": "2018"
}
}
], - "last_updated": "2019-03-26"
}, - "notice_of_assessment": {
- "amount": {
- "value": 100000.01
}, - "yearofassessment": {
- "value": "2018"
}, - "employment": {
- "value": 100000.01
}, - "trade": {
- "value": 0
}, - "rent": {
- "value": 0
}, - "interest": {
- "value": 0
}, - "taxclearance": {
- "value": "N"
}, - "category": {
- "value": "ORIGINAL"
}, - "last_updated": "2019-03-26"
}, - "notice_of_assessment_history": {
- "noas": [
- {
- "amount": {
- "value": 100000.01
}, - "yearofassessment": {
- "value": "2018"
}, - "employment": {
- "value": 100000.01
}, - "trade": {
- "value": 0
}, - "rent": {
- "value": 0
}, - "interest": {
- "value": 0
}, - "taxclearance": {
- "value": "N"
}, - "category": {
- "value": "ORIGINAL"
}
}
], - "last_updated": "2019-03-26"
}, - "ownership_of_private_property_indicator": {
- "value": false,
- "last_updated": "2019-03-26"
}, - "driving_licence": {
- "com_status": {
- "code": "Y",
- "desc": "ELIGIBLE"
}, - "total_demerit_points": {
- "value": 0
}, - "suspension": {
- "start_date": {
- "value": ""
}, - "end_date": {
- "value": ""
}
}, - "disqualification": {
- "start_date": {
- "value": ""
}, - "end_date": {
- "value": ""
}
}, - "revocation": {
- "start_date": {
- "value": ""
}, - "end_date": {
- "value": ""
}
}, - "provisional_driving_licence": {
- "validity": {
- "code": "V",
- "desc": "VALID"
}, - "expiry_date": {
- "value": "2020-06-15"
}, - "classes": [
- {
- "class": {
- "value": "2A"
}
}, - {
- "class": {
- "value": "3A"
}
}
]
}, - "qualified_driving_licence": {
- "validity": {
- "code": "V",
- "desc": "VALID"
}, - "expiry_date": {
- "value": "2020-06-15"
}, - "classes": [
- {
- "class": {
- "value": "2A"
}, - "issuedate": {
- "value": "2018-06-06"
}
}, - {
- "class": {
- "value": "3A"
}, - "issuedate": {
- "value": "2018-06-06"
}
}
]
}, - "photo_card_serial_number": {
- "value": "115616"
}, - "last_updated": "2019-03-26"
}, - "vehicles": [
- {
- "vehicle_number": {
- "value": "SDF1235A"
}, - "type": {
- "value": "PASSENGER MOTOR CAR"
}, - "iu_label_number": {
- "value": ""
}, - "make": {
- "value": "TOYOTA"
}, - "model": {
- "value": "COROLLA ALTIS"
}, - "chassis_number": {
- "value": "ZC11S1735800"
}, - "engine_number": {
- "value": "M13A1837453"
}, - "motor_number": {
- "value": ""
}, - "year_of_manufacture": {
- "value": "2010"
}, - "first_registration_date": {
- "value": "2010-06-06"
}, - "original_registration_date": {
- "value": "2010-06-06"
}, - "coe_category": {
- "value": "A - CAR UP TO 1600CC & 97KW (130BHP)"
}, - "coe_expiry_date": {
- "value": "2020-06-05"
}, - "road_tax_expiry_date": {
- "value": "2020-06-05"
}, - "quota_premium": {
- "value": 14000.01
}, - "open_market_value": {
- "value": 25000.01
}, - "co2_emission": {
- "value": 146.01
}, - "status": {
- "code": "1",
- "desc": "LIVE"
}, - "primary_colour": {
- "value": "BLACK"
}, - "secondary_colour": {
- "value": "WHITE"
}, - "attachment_1": {
- "value": "DISABLED"
}, - "attachment_2": {
- "value": "WITH SUN ROOF"
}, - "attachment_3": {
- "value": "SIDE CURTAIN"
}, - "scheme": {
- "value": "REVISED OFF-PEAK CAR"
}, - "thc_emission": {
- "value": 1.011001
}, - "co_emission": {
- "value": 1.100001
}, - "nox_emission": {
- "value": 0.011001
}, - "pm_emission": {
- "value": 0.007
}, - "engine_capacity": {
- "value": 1600
}, - "power_rate": {
- "value": 1.41
}, - "effective_ownership": {
- "value": "2010-08-31T20:12:12+08:00"
}, - "propellant": {
- "value": "Compressed Natural Gas"
}, - "maximum_unladen_weight": {
- "value": 1500
}, - "maximum_laden_weight": {
- "value": 1795
}, - "minimum_parf_benefit": {
- "value": 8770.01
}, - "number_of_transfers": {
- "value": 2
}, - "vpc": {
- "value": "1234567890"
}, - "last_updated": "2019-03-26"
}
], - "marital": {
- "code": "2",
- "desc": "MARRIED",
- "last_updated": "2019-03-26"
}, - "marriage_date": {
- "value": "2007-01-01",
- "last_updated": "2019-03-26"
}, - "divorce_date": {
- "value": "",
- "last_updated": "2019-03-26"
}, - "marriage_cert_number": {
- "value": "123456789012345",
- "last_updated": "2019-03-26"
}, - "country_of_marriage": {
- "code": "SG",
- "desc": "SINGAPORE",
- "last_updated": "2019-03-26"
}, - "children_birth_records": [
- {
- "birthcertno": {
- "value": "S5562882C"
}, - "name": {
- "value": "Jo Tan Pei Ni"
}, - "hanyupinyinname": {
- "value": "Cheng Pei Ni"
}, - "aliasname": {
- "value": ""
}, - "hanyupinyinaliasname": {
- "value": ""
}, - "marriedname": {
- "value": ""
}, - "sex": {
- "code": "F",
- "desc": "FEMALE"
}, - "race": {
- "code": "CN",
- "desc": "CHINESE"
}, - "secondaryrace": {
- "code": "",
- "desc": ""
}, - "dialect": {
- "code": "HK",
- "desc": "HOKKIEN"
}, - "lifestatus": {
- "code": "D",
- "desc": "DECEASED"
}, - "dob": {
- "value": "2011-09-10"
}, - "tob": {
- "value": "0901"
}, - "last_updated": "2019-03-26"
}
], - "sponsored_children_records": [
- {
- "nric": {
- "value": "S5562882C"
}, - "name": {
- "value": "Jo Tan Pei Ni"
}, - "hanyupinyinname": {
- "value": "Cheng Pei Ni"
}, - "aliasname": {
- "value": ""
}, - "hanyupinyinaliasname": {
- "value": ""
}, - "marriedname": {
- "value": ""
}, - "sex": {
- "code": "F",
- "desc": "FEMALE"
}, - "race": {
- "code": "CN",
- "desc": "CHINESE"
}, - "secondaryrace": {
- "code": "",
- "desc": ""
}, - "dialect": {
- "code": "HK",
- "desc": "HOKKIEN"
}, - "dob": {
- "value": "2011-09-10"
}, - "birthcountry": {
- "code": "SG",
- "desc": "SINGAPORE"
}, - "lifestatus": {
- "code": "A",
- "desc": "ALIVE"
}, - "residentialstatus": {
- "code": "C",
- "desc": "Citizen"
}, - "nationality": {
- "code": "SG",
- "desc": "SINGAPORE CITIZEN"
}, - "scprgrantdate": {
- "value": "2015-06-13"
}, - "last_updated": "2019-03-26"
}
], - "employment": {
- "value": "ALPHA",
- "last_updated": "2019-03-26"
}, - "occupation": {
- "code": "53201",
- "desc": "HEALTHCARE ASSISTANT",
- "value": "",
- "last_updated": "2019-03-26"
}, - "cpf_employers": {
- "history": [
- {
- "month": {
- "value": "2016-11"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2016-12"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2016-12"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2016-12"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-01"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-01"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-01"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-02"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-02"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-02"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-03"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-03"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-03"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-04"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-04"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-04"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-05"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-05"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-05"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-06"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-06"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-06"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-07"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-07"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-07"
}, - "employer": {
- "value": "Crystal Horse Invest Pte Ltd"
}
}, - {
- "month": {
- "value": "2017-08"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-08"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-08"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-09"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-09"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-09"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-10"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-10"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-10"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-11"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-11"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-11"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-12"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-12"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2017-12"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2018-01"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}, - {
- "month": {
- "value": "2018-01"
}, - "employer": {
- "value": "Delta Marine Consultants PL"
}
}
], - "last_updated": "2019-03-26"
}, - "academic_qualifications": {
- "transcripts": [
- {
- "name": {
- "value": "SINGAPORE-CAMBRIDGE GENERAL CERTIFICATE OF EDUCATION ORDINARY LEVEL"
}, - "yearattained": {
- "value": "2018"
}, - "results": [
- {
- "subject": {
- "value": "English Language"
}, - "level": {
- "value": "Ordinary"
}, - "grade": {
- "value": "A"
}, - "subsubject": {
- "value": "SPECIAL PAPER"
}, - "subgrade": {
- "value": "One"
}
}
], - "explanatorynotes": {
- "value": "string"
}
}
], - "certificates": [
- {
- "name": {
- "value": "nus.opencert"
}, - "content": {
- "value": "string"
}, - "opencertificate": {
- "id": {
- "value": 100000000343840
}, - "primary": {
- "value": true
}
}, - "opencertificateindicator": {
- "value": true
}
}
], - "last_updated": "2019-03-26"
}, - "lta_vocational_licences": {
- "tdvl": {
- "licence_name": {
- "value": "TAXI DRIVER'S VOCATIONAL LICENCE (TDVL)"
}, - "vocational_licence_number": {
- "value": "E00000001"
}, - "expiry_date": {
- "value": "2025-03-30"
}, - "status": {
- "code": "ACT",
- "desc": "ACTIVE"
}, - "last_updated": "2019-03-26"
}, - "pdvl": {
- "licence_name": {
- "value": "PRIVATE HIRE CAR DRIVER'S VOCATIONAL LICENCE (PDVL)"
}, - "vocational_licence_number": {
- "value": "E00000001"
}, - "expiry_date": {
- "value": "2025-03-30"
}, - "status": {
- "code": "ACT",
- "desc": "ACTIVE"
}, - "last_updated": "2019-03-26"
}, - "bdvl": {
- "licence_name": {
- "value": "BUS DRIVER'S VOCATIONAL LICENCE (BDVL)"
}, - "vocational_licence_number": {
- "value": "E00000001"
}, - "expiry_date": {
- "value": "2025-03-30"
}, - "status": {
- "code": "ACT",
- "desc": "ACTIVE"
}, - "last_updated": "2019-03-26"
}, - "bavl": {
- "licence_name": {
- "value": "BUS ATTENDANT VOCATIONAL LICENCE (BAVL)"
}, - "vocational_licence_number": {
- "value": "E00000001"
}, - "expiry_date": {
- "value": "2025-03-30"
}, - "status": {
- "code": "ACT",
- "desc": "ACTIVE"
}, - "last_updated": "2019-03-26"
}, - "odvl": {
- "licence_name": {
- "value": "OMNIBUS DRIVER'S VOCATIONAL LICENCE"
}, - "vocational_licence_number": {
- "value": "E00000001"
}, - "expiry_date": {
- "value": "2025-03-30"
}, - "status": {
- "code": "ACT",
- "desc": "ACTIVE"
}, - "last_updated": "2019-03-26"
}
}, - "hdb_ownership": [
- {
- "number_of_owners": {
- "value": 2
}, - "address": {
- "type": "SG",
- "block": {
- "value": "548"
}, - "building": {
- "value": ""
}, - "floor": {
- "value": "09"
}, - "unit": {
- "value": "128"
}, - "street": {
- "value": "BEDOK NORTH AVENUE 1"
}, - "postal": {
- "value": "460548"
}, - "country": {
- "code": "SG",
- "desc": "SINGAPORE"
}
}, - "hdb_type": {
- "code": "112",
- "desc": "2-ROOM FLAT (HDB)"
}, - "lease_commencement_date": {
- "value": "2008-06-13"
}, - "term_of_lease": {
- "value": 99
}, - "date_of_purchase": {
- "value": "2008-06-13"
}, - "date_of_ownership_transfer": {
- "value": "2018-06-13"
}, - "loan_granted": {
- "value": 310000.01
}, - "original_loan_repayment": {
- "value": 25
}, - "balance_loan_repayment": {
- "years": {
- "value": 2
}, - "months": {
- "value": 6
}
}, - "outstanding_loan_balance": {
- "value": 50000.01
}, - "monthly_loan_instalment": {
- "value": 1000.01
}, - "outstanding_instalment": {
- "value": 1000.01
}, - "purchase_price": {
- "value": 1000.01
}, - "last_updated": "2019-03-26"
}
], - "pioneer_generation": {
- "eligibility": {
- "value": true
}, - "last_updated": "2019-03-26"
}, - "merdeka_generation": {
- "eligibility": {
- "value": true
}, - "last_updated": "2019-03-26"
}
}, - "errors": {
- "notice_of_assessment_basic": {
- "code": "SOURCE_DATA_NOT_FOUND",
- "message": "The requested data was not found in the data source"
}
}, - "request_id": "08486708-c243-400e-9dd5-ac8d3d1a7187",
- "timestamp": "2025-06-01T11:49:40.317+08:00"
}
This API returns entity's data from data source(s) in consolidated view.
identifier required | string A unique identifier of the entity. |
client_assertion required | string The assertion being used to authenticate the client, please refer to Client Assertion for details. |
client_assertion_type required | string The format of the assertion as defined by the authorization server. The value will be an absolute URI.
Example: |
scope required | string Space separated list of scopes requested. Possible scopes are listed in the table above. |
encryptionKid | string Consuming applications can specify Key ID in their registered JWKS to encrypt response payload with. |
{- "client_assertion": "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsImtpZCI6ImRkNDllNTU3LTIxMzgtNGU4NC1hMTVhLTYyNTRiZjIwM2RkMyJ9.eyJzdWIiOiJTVEcyLVVTRVJJTkZPLVNFTEYtVEVTVCIsImp0aSI6ImI0MWI1MDlkLTcyNmItNDM2YS04NTNhLWE5ZmY0ZDc3MDUzYyIsImF1ZCI6Imh0dHBzOi8vbG9jYWxob3N0OjMwMDAvdXNlcmluZm8vcGVyc29uLzQ5OWJiNGM0LTc0NjItMDcxNi00MWFjLTcxZmNiMDIxYTU0OCIsImlzcyI6IlNURzItVVNFUklORk8tU0VMRi1URVNUIiwiaWF0IjoxNzQ4ODUyOTM5LCJleHAiOjE3NDg4NTMyMzksImh0bSI6IlBPU1QifQ.GlKo5TH6XnrTI8j8b0HitpEyST5_FA5yvFWATbg31TM8Y_akM8A0eo9cyDsq9zaqq17BYJ2yMm_-TNkN0oN8fA",
- "client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
- "scope": "scope=entity_profile addressess financials",
- "encryptionKid": "f4a78bc8-9667-4b4c-929f-03e7086d84de"
}
{- "data": {
- "entity_profile": {
- "uen": {
- "value": "string"
}, - "entity_name": {
- "value": "ABC Company"
}, - "entity_type": {
- "code": "BN",
- "desc": "Business"
}, - "entity_status": "LIVE",
- "constitution": {
- "code": "S",
- "desc": "Sole-Proprietor"
}, - "company_type": {
- "code": "A1",
- "desc": "string"
}, - "ownership": "1",
- "country_of_incorporation": {
- "code": "SG",
- "desc": "string"
}, - "registration_date": {
- "value": "2018-01-01"
}, - "business_expiry_date": {
- "value": "2018-01-01"
}, - "primary_activity": {
- "code": "10613",
- "desc": "Processing of pepper seeds"
}, - "secondary_activity": {
- "code": "16230",
- "desc": "Manufacture of wooden containers"
}, - "last_updated": "2019-03-26"
}, - "previous_names": {
- "previous_names_list": [
- {
- "history_name": {
- "value": "string"
}, - "history_name_effective_date": {
- "value": "2019-08-24"
}
}
], - "last_updated": "2019-03-26"
}, - "previous_uens": {
- "previous_uens_list": [
- {
- "previous_uen": {
- "value": "string"
}
}
], - "last_updated": "2019-03-26"
}, - "address": {
- "addresses_list": [
- {
- "type": "SG",
- "standard": "D",
- "postal": {
- "value": "100123"
}, - "block": {
- "value": "123"
}, - "street": {
- "value": "XYZ street 99"
}, - "building": {
- "value": "ABC building"
}, - "floor": {
- "value": "10"
}, - "unit": {
- "value": "100"
}, - "country": {
- "code": "SG",
- "desc": "Singapore"
}
}
], - "last_updated": "2019-03-26"
}, - "financials": {
- "highlights": [
- {
- "current_period_start_date": {
- "value": "2019-08-24"
}, - "current_period_end_date": {
- "value": "2019-08-24"
}, - "is_audited": {
- "value": "s"
}, - "currency": {
- "code": "str",
- "desc": "string"
}, - "company_revenue": {
- "value": 0.1
}, - "company_profit_loss_before_tax": {
- "value": 0.1
}, - "company_profit_loss_after_tax": {
- "value": 0.1
}, - "group_revenue": {
- "value": 0.1
}, - "group_capital_paid_up_capital_amount": {
- "value": 0.1
}, - "group_profit_loss_before_tax": {
- "value": 0.1
}, - "group_profit_loss_after_tax": {
- "value": 0.1
}
}
], - "last_updated": "2019-03-26"
}, - "capital": {
- "capitals_list": [
- {
- "capital_type": {
- "code": "1",
- "desc": "Ordinary Capital"
}, - "share_allotted_amount": {
- "value": 0.1
}, - "issued_capital_amount": {
- "value": 0.1
}, - "paid_up_capital_amount": {
- "value": 0.1
}, - "currency": {
- "code": "str",
- "desc": "string"
}
}
], - "last_updated": "2019-03-26"
}, - "appointments": {
- "appointments_list": [
- {
- "category": {
- "code": "1",
- "desc": "Individual"
}, - "person_reference": {
- "id_number": {
- "value": "string"
}, - "person_name": {
- "value": "string"
}, - "nationality_citizenship": {
- "code": "st",
- "desc": "string"
}, - "corppass_email": {
- "value": "string"
}, - "corppass_mobile_number": {
- "value": "string"
}
}, - "position": {
- "code": "7",
- "desc": "Director"
}, - "appointment_date": {
- "value": "2018-01-01"
}
}
], - "last_updated": "2019-03-26"
}, - "shareholders": {
- "shareholders_list": [
- {
- "category": {
- "code": "1",
- "desc": "Individual"
}, - "person_reference": {
- "id_number": {
- "value": "string"
}, - "person_name": {
- "value": "string"
}, - "nationality_citizenship": {
- "code": "st",
- "desc": "string"
}, - "corppass_email": {
- "value": "string"
}, - "corppass_mobile_number": {
- "value": "string"
}
}, - "share_type": {
- "code": "1",
- "desc": "Ordinary Capital"
}, - "allocation": {
- "value": 0.1
}, - "currency": {
- "code": "str",
- "desc": "string"
}
}
], - "last_updated": "2019-03-26"
}, - "grants": {
- "grants_list": [
- {
- "grant_type": "MA",
- "grant_status": "10",
- "functional_area": "ATE",
- "development_category": "IE",
- "approved_amount": {
- "value": 0.1
}, - "submitted_date": {
- "value": "string"
}, - "last_updated_date": {
- "value": "string"
}
}
], - "last_updated": "2019-03-26"
}, - "builders": {
- "builder_list": [
- {
- "licence": "GB1",
- "licence_expiry_date": {
- "value": "2018-01-01"
}
}
], - "last_updated": "2019-03-26"
}, - "contractors": {
- "contractors_list": [
- {
- "registration_expiry_date": {
- "value": "2018-01-01"
}, - "workhead": {
- "code": "CR01",
- "desc": "Minor Construction Works"
}, - "workhead_financial_grade": {
- "code": "A2",
- "desc": "85"
}
}
], - "last_updated": "2019-03-26"
}, - "gov_contracts": {
- "gov_contracts_list": [
- {
- "award_date": {
- "value": "2018-01-01"
}, - "award_value": {
- "value": 0.1
}, - "awarding_agency": {
- "value": "string"
}, - "currency": {
- "code": "SGD",
- "desc": "SINGAPORE, DOLLARS"
}, - "document_id": {
- "value": "string"
}, - "notice_description": {
- "value": "string"
}, - "number_of_awarded_suppliers": {
- "value": 0
}, - "procurement_category": {
- "code": "100054",
- "desc": "Event Organising, Food & Beverages => Event Organising"
}
}
], - "last_updated": "2019-03-26"
}, - "licences": {
- "licences_list": [
- {
- "expiry_date": {
- "value": "2019-08-24"
}, - "issuance_agency": {
- "code": "string",
- "desc": "string"
}, - "issue_date": {
- "value": "2019-08-24"
}, - "licence_name": {
- "value": "string"
}, - "licence_number": {
- "value": "string"
}
}
], - "last_updated": "2019-03-26"
}, - "gas_consumption": {
- "gas_consumption_list": [
- {
- "year": {
- "value": 0
}, - "month": {
- "value": 0
}, - "accounts": [
- {
- "account_number": {
- "value": "string"
}, - "addresses": [
- {
- "postal": {
- "value": null
}, - "block": {
- "value": null
}, - "street": {
- "value": null
}, - "building_floor_unit": {
- "value": null
}
}
], - "usage": {
- "value": null
}, - "charges": {
- "value": null
}, - "sector": {
- "code": "string",
- "desc": "string"
}, - "sector_code": {
- "code": "strin",
- "desc": "string"
}, - "sub_sector": {
- "code": "string",
- "desc": "string"
}, - "ssic_2d": {
- "value": "strin"
}, - "plan_area": {
- "code": "string",
- "desc": "string"
}, - "plan_region": {
- "code": "string",
- "desc": "string"
}, - "sub_zone_number": {
- "value": 0
}, - "premise_type": {
- "code": "string",
- "desc": "string"
}
}
]
}
], - "last_updated": "2019-03-26"
}, - "electricity_consumption": {
- "electricity_consumption_list": [
- {
- "year": {
- "value": 0
}, - "month": {
- "value": 0
}, - "accounts": [
- {
- "account_number": {
- "value": "string"
}, - "addresses": [
- {
- "postal": {
- "value": null
}, - "block": {
- "value": null
}, - "street": {
- "value": null
}, - "floor_unit": {
- "value": null
}
}
], - "estimate_indicator": {
- "code": "string",
- "desc": "string"
}, - "usage": {
- "value": null
}, - "charges": {
- "value": null
}, - "account_type": {
- "code": "string",
- "desc": "string"
}, - "sector": {
- "code": "s",
- "desc": "string"
}, - "sector_code": {
- "code": "strin",
- "desc": "string"
}, - "sub_sector": {
- "code": "string",
- "desc": "string"
}, - "ssic_2d": {
- "value": "strin"
}, - "plan_area": {
- "code": "string",
- "desc": "string"
}, - "plan_region": {
- "code": "string",
- "desc": "string"
}, - "sub_zone_number": {
- "value": 0
}, - "premise_type": {
- "code": "string",
- "desc": "string"
}, - "contestability_status": {
- "code": "string",
- "desc": "string"
}, - "meter_type": {
- "code": "string",
- "desc": "string"
}, - "meter_set_up": {
- "code": "string",
- "desc": "string"
}, - "tension_level": {
- "code": "string",
- "desc": "string"
}, - "ebs_activation_date": {
- "value": null
}, - "ebs_move_in_date": {
- "value": null
}, - "ebs_move_out_date": {
- "value": null
}, - "number_of_ami_single_phase_meters": {
- "value": 0
}, - "number_of_ami_three_phase_meters": {
- "value": 0
}, - "mss_activation_date": {
- "value": null
}, - "mss_move_in_date": {
- "value": null
}, - "mss_move_out_date": {
- "value": null
}
}
]
}
], - "last_updated": "2019-03-26"
}, - "water_consumption": {
- "water_consumption_list": [
- {
- "year": {
- "value": 0
}, - "month": {
- "value": 0
}, - "accounts": [
- {
- "account_number": {
- "value": "string"
}, - "addresses": [
- {
- "postal": {
- "value": null
}, - "block": {
- "value": null
}, - "street": {
- "value": null
}, - "floor_unit": {
- "value": null
}
}
], - "estimate_indicator": {
- "code": "s",
- "desc": "string"
}, - "usage": {
- "value": null
}, - "account_type": {
- "code": "str",
- "desc": "string"
}, - "water_type": {
- "code": "st",
- "desc": "string"
}
}
]
}
], - "last_updated": "2019-03-26"
}
}, - "errors": {
- "entity_profile": {
- "code": "SOURCE_DATA_NOT_FOUND",
- "message": "The requested data was not found in the data source"
}
}, - "request_id": "08486708-c243-400e-9dd5-ac8d3d1a7187",
- "timestamp": "2025-06-01T11:49:40.317+08:00"
}
This API will federate the call to request data from relevant providers based on pre-existing configuration.
Once the request is received on the provider side, provider will initiate a PUSH call if the request is valid.
This is an asynchronous request for data. Response will only be ACK.
dex required | string A unique name tag for the specific data exchange. |
apiname required | string A unique api name within the specific data exchange. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
client_id required | string Unique ID for the data consuming service. |
provider | Array of strings The id of providers to get the data from. |
query | string An optional query parameter to filter the result based. This parameter will be passed to the provider end and can be intercepted by the data exchange layer to perform a filtered query to the provider API. |
payload | string An optional stringtify payload parameter. This payload will be passed to the provider end.
|
{- "client_id": "client123",
- "provider": [
- "provider_id1",
- "provider_id2"
], - "query": "filter=myfilter",
- "payload": "{attribute1: xx, attribute2: xx}"
}
{- "message": "Accepted"
}
This API allows provider to push data to a use case topic.
consumer
(list of consumers) is specified, then data will be sent to the specified consumers who are subscribers of the topic.
consumer
(list of consumers) is not specified, then data will be broadcast to all subscribers of that use case topic.
dex required | string A unique name tag for the specific data exchange. |
topicname required | string A unique api name within the specific data exchange. |
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
consumer | Array of strings The id of consumers to push the data to. |
system_id required | string Unique ID of the provider system. |
payload required | string The data payload to push to the topic |
{- "consumer": [
- "consumer_id1",
- "consumer_id2"
], - "system_id": "my system id",
- "payload": "<encrypted/encoded payload>"
}
{- "request_id": "string"
}
This API will federate the call to pull/push data from/to relevant pitstops
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
type required | string Enum: "PROVIDE" "RECEIVE" "PULL_RESULT" "PUSH_RESULT" "TEST_PUSH" "TEST_PULL" Specifies the type of message e.g. PUSH, PULL, PROVIDE, |
dataElementId required | string The data element ID for this transaction |
requestId required | string UUID of the request ID |
required | object (systemDetail) |
required | Array of objects (systemDetail) |
required | Array of objects (orgDetail) |
payload | string Encrypted payload. Only required for type = RECEIVE | PULL_RESULT |
parameters | object The pull parameters. Only required for type = PROVIDE |
{- "type": "RECEIVE",
- "dataElementId": "bill_of_lading",
- "sender": {
- "id": "c4024479-5925-4573-bc40-f51ddde66eff",
- "name": "DBS Pte. Ltd."
}, - "recipients": [
- {
- "id": "42b2ff1f-b7f2-4734-ae6b-64ae544c9f51"
}
], - "requestId": "1234567890",
- "payload": "<HASHED>",
- "parameters": {
- "key": "value"
}, - "onBehalfOf": [
- {
- "id": "ee7eb200-be7a-4a33-ae8d-d891cb4e9bf3"
}
]
}
{- "message": "Request received"
}
This API allows SGTraDex to notify SGDex of pitstops configuration changes.
Authorization required | string Example: Refer to Data Exchange (Client) Authentication |
recipients required | Array of strings List of System IDs of the recipients to send to |
type required | string Value: "CONFIG_REFRESH" |
senderId required | string Unique identifier of sender's system |
{- "recipients": [
- "64939f65-0a0d-47e8-a0b6-4b1f23c5b7fc",
- "f989dc80-531f-44b0-af4e-31481891200d"
], - "type": "CONFIG_REFRESH"
}
{- "message": "Notification Sent"
}
Create Data Elements
dataElementId required | string^[a-zA-Z0-9-_]+$ |
elementName | string^[a-zA-Z0-9-_.,& ]+$ Name of the data element. This field will be ignored by SGDex |
elementSchema | string Schema of the data element (in JSON Schema Format). This field will be ignored by SGDex |
querySchema | string Schema of how to query the data element (Also in JSON Schema format). This field will be ignored by SGDex |
csvTemplate | string Template in csv. This field will be ignored by SGDex |
jsonTemplate | string Template in JSON. This field will be ignored by SGDex |
type | string Enum: "DOCUMENT" "EVENT" Indicates whether it is a document or event. This field will be ignored by SGDex |
additionalProperties | object Any other addtional properties. This field will be ignored by SGDex |
[- {
- "dataElementId": "string",
- "elementName": "string",
- "elementSchema": "string",
- "querySchema": "string",
- "csvTemplate": "string",
- "jsonTemplate": "string",
- "type": "DOCUMENT",
- "additionalProperties": { }
}
]
Create new Systems
systemId required | string <uuid> The ID of the system |
systemName required | string^[a-zA-Z0-9-_.,&()@:;?!'"‘’“”{}<>\\\/\[\] ]+$... The name of the system |
endPointUrl required | string <uri> The full URL of the pitstop to send data exchange events to e.g. https://trafigura.test.sgtradex.io/api/v1/data/messageHandler |
orgId | string <uuid> The Organization Id that this system belongs to. This field will be ignored by SGDex |
additionalProperties | object Any other addtional properties. This field will be ignored by SGDex |
[- {
- "systemId": "4423a5f3-2691-4d92-a9ef-2418d2c205d8",
- "systemName": "string",
- "orgId": "25b2c2d5-a7fc-47d0-89e4-8709a1560bfa",
- "additionalProperties": { }
}
]
Update a System detail
systemId required | string <uuid> The ID of the system to update |
systemName required | string^[a-zA-Z0-9-_.,&()@:;?!'"‘’“”{}<>\\\/\[\] ]+$... The name of the system |
endPointUrl required | string <uri> The full URL of the pitstop to send data exchange events to e.g. https://trafigura.test.sgtradex.io/api/v1/data/messageHandler |
orgId | string <uuid> The Organization Id that this system belongs to. This field will be ignored by SGDex |
additionalProperties | object Any other addtional properties. This field will be ignored by SGDex |
{- "systemName": "string",
- "orgId": "25b2c2d5-a7fc-47d0-89e4-8709a1560bfa",
- "additionalProperties": { }
}
Create a new subscription between parties
subscriptionId required | string <uuid> The ID of the subscription created |
subscriberOrgId | string <uuid> The ID of the organization consuming the data element. This field will be ignored by SGDex |
subscriberSystemId required | string <uuid> The ID of the system the consuming organization is using to consume the data element |
subscriberEnrolmentId | string <uuid> The Enrolment ID for the consumer. This field will be ignored by SGDex |
prosumerOrgId | string <uuid> The ID of the organization producing the data element. This field will be ignored by SGDex |
prosumerSystemId required | string <uuid> The ID of the system the producing organization is using to produce the data element |
providerEnrolmentId | string <uuid> The Enrolment ID for the producer. This field will be ignored by SGDex |
useCaseId required | string^[a-zA-Z0-9-_]+$ The ID of the Use Case related to this subscription |
dataElementId required | string^[a-zA-Z0-9-_]+$ The Data Element Id related to this subscription |
prosumerType | string This field will be ignored by SGDex |
status required | string Enum: "APPROVED" "PENDING" "REVOKED" "REJECTED" |
requesterOrgId | string <uuid> This field will be ignored by SGDex |
contributorOrgId | string <uuid> The ID of the organization owning the data |
contributorSystemId | string <uuid> The ID of the system the data contributor is using |
[- {
- "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f",
- "subscriberOrgId": "820951f5-3e95-4d68-9348-a1998d773ead",
- "subscriberSystemId": "7943752a-b052-4ed1-b9bd-17f9e13bf693",
- "subscriberEnrolmentId": "66384c19-5da0-4fdb-99e9-63619e3b24c4",
- "prosumerOrgId": "9fd0bba6-5cc0-41e3-964d-71771be8e501",
- "prosumerSystemId": "603ead66-ae9f-43da-b685-c4e87706c669",
- "providerEnrolmentId": "8bb8d90e-4add-4ba3-87b1-e230898481c2",
- "useCaseId": "string",
- "dataElementId": "string",
- "prosumerType": "string",
- "status": "APPROVED",
- "requesterOrgId": "3da24845-9b65-4a16-b4f5-43d2de82becc",
- "contributorOrgId": "bb83a894-6005-4c41-a037-5fa0df4145b4",
- "contributorSystemId": "aa99e732-3fff-4012-b10c-7efdce76ce0d"
}
]