API Keys v0.11.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
API Keys provide secure access to Apiture APIs. Each client application requires a unique API key to access the APIs in each runtime API environment (such as api.canapi.bank
, api.devbank.apiture.com
, or api.3rdparty.bank
).
The API Key resource managed by this API creates the following:
- The API Key which is passed in the
API-Key
request header of each API call; - A unique Client ID and Client Secret (also known as client credentials) with which the client application can authenticate with the authentication endpoints in the service.
Each key resource requires a client application and a target runtime api environment when constructing the API key. These resources are passed in the createKey
operation via links in the request body via the link relations:
apiture:clientApplication
apiture:environment
The client application may be associated with a partner organization (business).
Each key may be in one of several states (pending
, active
, inactive
); Keys are initially created in the pending
state. State transitions are performed by a POST
via the activateKey
, deactivateKey
operations using the links in the key resource:
apiture:activateKey
apiture:deactivateKey
which must be initially performed by a administrator with permission to approve keys. Users may deactivate/reactivate keys after they have been approved. Deactivating a key is also called revoking a key.
When a client application is deactivated, all its associated keys and client credentials are deactivated.
When a client application is activated, all its associated keys and client credentials are activated.
When a client application is deleted, all its associated keys and client credentials are deleted. There are four types of keys:
- The Discoverer Key (
discoverer
) is for unauthenticated users to explore the Apiture APIs in a limited manner, using a sample user ("John Smith") identity. The Discoverer Key is shared by all unauthenticated users. It is recycled on a periodic basis: a new Discoverer key is minted each day to replace the old one, and the old one is then revoked and deleted at some time after that. - An Explorer key (
explorer
) is for authenticated users to explore the Apiture APIs in more depth. It is provisioned after a user registers (moderated by the portal admin). Using this, the developer can also create sample data that only they can access (bank accounts, etc.). The user can view their Explorer key via their My Account page on the developer portal. - Partner keys (
partner
) are associated with a specific client partner organization (company), a registered client application, and a specific runtime environment (such as a dev, test, or other environment. - Production keys (
production
) are partner keys that are attached to a production (non-test, non-development) environment.
This API provides convenient operations for creating or accessing Discoverer and Explorer keys.
Download OpenAPI Definition (YAML)
Base URLs:
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based authentication. Each client application must pass its private, unique API key, allocated in the developer portal, via the
API-Key: {api-key}
request header.
- OAuth2 authentication (
accessToken
)- OAuth2 client access token authentication. The client authenticates against the server at
authorizationUrl
, passing the client's privateclientId
(and optionalclientSecret
) as part of this flow. The client obtains an access token from the server attokenUrl
. It then passes the received access token via theAuthorization: Bearer {access-token}
header in subsequent API calls. The authorization process also returns a refresh token which the client should use to renew the access token before it expires. - Flow:
authorizationCode
- Authorization URL = https://auth.apiture.com/oauth2/authorize
- Token URL = http://auth.apiture.com/auth/oauth2/token
- OAuth2 client access token authentication. The client authenticates against the server at
Scope | Scope Description |
---|---|
data/read |
Read access to (behavior TBD). |
admin/write |
Write (update) access to (behavior TBD). |
admin/delete |
Delete access to (behavior TBD). |
admin/full |
Full access to (behavior TBD). |
API
Endpoints which describe this API.
getApi
Code samples
# You can also use wget
curl -X GET /apiKeys/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET /apiKeys/ HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/apiKeys/',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
fetch('/apiKeys/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY'
}
result = RestClient.get '/apiKeys/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('/apiKeys/', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/apiKeys/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Top-level resources and operations in this API
GET /
Return links to the top-level resources and operations in this API.
Example responses
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
"_links": {}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: root |
getApiDoc
Code samples
# You can also use wget
curl -X GET /apiKeys/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET /apiKeys/apiDoc HTTP/1.1
Accept: application/json
var headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/apiKeys/apiDoc',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
fetch('/apiKeys/apiDoc',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'API-Key' => 'API_KEY'
}
result = RestClient.get '/apiKeys/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('/apiKeys/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/apiKeys/apiDoc", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return API definition document
GET /apiDoc
Return the OpenAPI document that describes this API.
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
Key
Keys for secure API access.
getKeys
Code samples
# You can also use wget
curl -X GET /apiKeys/keys \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /apiKeys/keys HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/keys',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/keys',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/apiKeys/keys',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/apiKeys/keys', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/keys");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/apiKeys/keys", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of keys
GET /keys
Return a paginated sortable filterable searchable collection of keys. The links in the response include pagination links.
The authenticated user can only access keys for applications in their partner domain (i.e. developers registered with validated emails with a @mycompany.com
email domain can only see keys for that company), the discoverer key, and their own explorer key.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first key item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of key representations to return in this page. |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
application (query) |
string Filter API keys to only those for this client application. The value is the client application ID. This value is merged with the ?filter= parameter (if any) and ?environment= parameter (if any) with an implicit and . |
partner (query) |
string Filter API keys to only those for this partner organization. The value is the partner ID or partner domain. This value is merged with the ?filter= parameter (if any) and ?environment= parameter (if any) with an implicit and . |
environment (query) |
string Filter API keys to only those for this environment. The value is the environment ID. This value is merged with the ?filter= parameter and ?application or ?partner parameter with an implicit and . |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
state (query) |
string Subset the resources to only those whose state matches the query, such as ?state=active . The value may be a | separated list of states, such as ?state=pending|active to match all resources whose state is either pending or active'. If ?filter=is also used, the two are combined with an implicit and()` operation. Enumerated values: pending active inactive |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/apiKeys/keys/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "keys",
"_links": {
"self": {
"href": "/apiKeys/keys?start=10&limit=10"
},
"first": {
"href": "/apiKeys/keys?start=0&limit=10"
},
"next": {
"href": "/apiKeys/keys?start=20&limit=10"
},
"collection": {
"href": "/apiKeys/keys"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/apiKeys/keys/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
{
"_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/apiKeys/keys/d62c0701-0d74-4836-83f9-ebf3709442ea"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: keys | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createKey
Code samples
# You can also use wget
curl -X POST /apiKeys/keys \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /apiKeys/keys HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/keys',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/keys',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/apiKeys/keys',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/apiKeys/keys', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/keys");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/apiKeys/keys", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new key
POST /keys
Create a new key in the keys
collection. The key's state
is initially pending
but will change to active
when the key has been deployed in the target environment.
The associated client application and the target API environment to must be passed in the href
of the corresponding _links
in the request:
apiture:clientApplication
apiture:environment
This fails if there is an existing key in the pending
, active
or inactive
state for the named client application and API environment. The key's type
is set to partner
or production
, depending on the type of the key's environment.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
key (required) The data necessary to create a new key. |
Example responses
201 Response
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: key | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
409 | Conflict |
Conflict. A key cannot be created for the corresponding client application and API environment; an existing key already exists in the pending , inactive or active state. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host |
getKey
Code samples
# You can also use wget
curl -X GET /apiKeys/keys/{keyId} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /apiKeys/keys/{keyId} HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/keys/{keyId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/keys/{keyId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/apiKeys/keys/{keyId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/apiKeys/keys/{keyId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/keys/{keyId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/apiKeys/keys/{keyId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this key
GET /keys/{keyId}
Return a HAL representation of this key resource.
Parameters
Parameter | Description |
---|---|
keyId (path) |
string (required) The unique identifier of this key. This is an opaque string. This is not the actual API Key; the API-Key header is the key property. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: key | |
404 | Not Found |
Not Found. There is no such key resource at the specified {keyId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
updateKey
Code samples
# You can also use wget
curl -X PUT /apiKeys/keys/{keyId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT /apiKeys/keys/{keyId} HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/keys/{keyId}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/keys/{keyId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/apiKeys/keys/{keyId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/apiKeys/keys/{keyId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/keys/{keyId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/apiKeys/keys/{keyId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this key
PUT /keys/{keyId}
Perform a complete replacement of this key.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Parameters
Parameter | Description |
---|---|
keyId (path) |
string (required) The unique identifier of this key. This is an opaque string. This is not the actual API Key; the API-Key header is the key property. |
body (body) |
key (required) |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: key | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
404 | Not Found |
Not Found. There is no such key resource at the specified {keyId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
patchKey
Code samples
# You can also use wget
curl -X PATCH /apiKeys/keys/{keyId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH /apiKeys/keys/{keyId} HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/keys/{keyId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/keys/{keyId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch '/apiKeys/keys/{keyId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('/apiKeys/keys/{keyId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/keys/{keyId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "/apiKeys/keys/{keyId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this key
PATCH /keys/{keyId}
Perform a partial update of this key. Fields which are omitted are not updated. Nested _embedded
and _links
are ignored if included.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Parameters
Parameter | Description |
---|---|
keyId (path) |
string (required) The unique identifier of this key. This is an opaque string. This is not the actual API Key; the API-Key header is the key property. |
body (body) |
key (required) |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: key | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
404 | Not Found |
Not Found. There is no such key resource at the specified {keyId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
deleteKey
Code samples
# You can also use wget
curl -X DELETE /apiKeys/keys/{keyId} \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE /apiKeys/keys/{keyId} HTTP/1.1
var headers = {
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/keys/{keyId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/keys/{keyId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/apiKeys/keys/{keyId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/apiKeys/keys/{keyId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/keys/{keyId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/apiKeys/keys/{keyId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this key resource
DELETE /keys/{keyId}
Delete this key resource and any resources that are owned by it.
Parameters
Parameter | Description |
---|---|
keyId (path) |
string (required) The unique identifier of this key. This is an opaque string. This is not the actual API Key; the API-Key header is the key property. |
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Key States
Change the state of API keys.
activateKey
Code samples
# You can also use wget
curl -X POST /apiKeys/activeKeys?key=string \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /apiKeys/activeKeys?key=string HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/activeKeys',
method: 'post',
data: '?key=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/activeKeys?key=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/apiKeys/activeKeys',
params: {
'key' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/apiKeys/activeKeys', params={
'key': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/activeKeys?key=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/apiKeys/activeKeys", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Activate a key
POST /activeKeys
Update a key by adding it to the set of active keys. This changes the state
property of the key to active
. This operation is available via the apiture:activate
link on the key resource, if and only if the key is eligible for the activate operation. The responses is the updated representation of the key.
Parameters
Parameter | Description |
---|---|
key (query) |
string (required) A string which uniquely identifies a key which is to added to the activeKeys or inactiveKeys resource sets. This may be the unique keyId or the URI of the key. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. The key was updated and its state changed to active . | |
Schema: key | |
400 | Bad Request |
Bad Request. The key parameter was malformed or does not refer to an existing or accessible key. | |
Schema: errorResponse | |
409 | Conflict |
Conflict. The request to change the state of the key is not allowed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
deactivateKey
Code samples
# You can also use wget
curl -X POST /apiKeys/inactiveKeys?key=string \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /apiKeys/inactiveKeys?key=string HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/inactiveKeys',
method: 'post',
data: '?key=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/inactiveKeys?key=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/apiKeys/inactiveKeys',
params: {
'key' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/apiKeys/inactiveKeys', params={
'key': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/inactiveKeys?key=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/apiKeys/inactiveKeys", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Deactivate a key
POST /inactiveKeys
Update a key by adding it to the set of inactive keys. This changes the state
property of the key to inactive
. This operation is available via the apiture:deactivate
link on the key resource, if and only if the key is eligible for the deactivate operation. The responses is the updated representation of the key.
Parameters
Parameter | Description |
---|---|
key (query) |
string (required) A string which uniquely identifies a key which is to added to the activeKeys or inactiveKeys resource sets. This may be the unique keyId or the URI of the key. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. The key was updated and its state changed to inactive . | |
Schema: key | |
400 | Bad Request |
Bad Request. The key parameter was malformed or does not refer to an existing or accessible key. | |
Schema: errorResponse | |
409 | Conflict |
Conflict. The request to change the state of the key is not allowed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Discoverer Key
Access to Discoverer Keys
getDiscovererKey
Code samples
# You can also use wget
curl -X GET /apiKeys/discovererKey \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET /apiKeys/discovererKey HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/apiKeys/discovererKey',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
fetch('/apiKeys/discovererKey',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY'
}
result = RestClient.get '/apiKeys/discovererKey',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('/apiKeys/discovererKey', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/discovererKey");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/apiKeys/discovererKey", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return the Discoverer Key
GET /discovererKey
Returns the active Discoverer Key. If the Discoverer Key has not been created, this call creates, activates, and returns it. The key's type
is set to discoverer
. If the key exists, it is returned.
The Discoverer Key is associated with the Dev Portal application and is only valid in the DevBank environment.
Example responses
200 Response
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"apiKey": {
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
"accessToken": "string"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: discovererKey | |
404 | Not Found |
Not Found; the Discoverer Key has not been created yet. | |
Schema: errorResponse |
discovererKey
Code samples
# You can also use wget
curl -X POST /apiKeys/discovererKey \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /apiKeys/discovererKey HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/discovererKey',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"sampleUserName": "user.name@example.com",
"sampleUserPassword": "string"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/discovererKey',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/apiKeys/discovererKey',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/apiKeys/discovererKey', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/discovererKey");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/apiKeys/discovererKey", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create or recycle the Discoverer Key
POST /discovererKey
Creates or recycles the Discoverer Key. If the Discoverer Key has not been created, this call creates, activates, and returns it. If the key exists, the old key is recycled (scheduled to be removed but left active) and a new Discoverer key is created, activated, and returned. If the request body contains new credentials for the sample user, the service saves those new credentials used for creating the discoverer key and discoverer access token. The Discoverer Key is associated with the Dev Portal application and is only valid in the DevBank environment. Only the administrator or system can create or recycle the discoverer key.
Body parameter
{
"sampleUserName": "user.name@example.com",
"sampleUserPassword": "string"
}
Parameters
Parameter | Description |
---|---|
body (body) |
discoverKeyRequest (required) Optional credentials to reset the user name and password of the sample user used for creating/refreshing the discoverer key and access token. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: key | |
201 | Created |
Created | |
Schema: key | |
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
403 | Forbidden |
Forbidden. The user is not allowed to request an explorer API key for this restricted environment. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. The request body could not be processed. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URL of the new Explorer key |
Explorer Key
Access to Explorer Keys
getExplorerKey
Code samples
# You can also use wget
curl -X GET /apiKeys/explorerKey?environment=string \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /apiKeys/explorerKey?environment=string HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/explorerKey',
method: 'get',
data: '?environment=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/explorerKey?environment=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/apiKeys/explorerKey',
params: {
'environment' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/apiKeys/explorerKey', params={
'environment': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/explorerKey?environment=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/apiKeys/explorerKey", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return the user's Explorer Key
GET /explorerKey
Returns the user's Explorer Key for a target environmet.
An Explorer Key is associated with the Dev Portal application client application and one of the target environments associated with the dev portal. (Thus, a user may have multiple explorer keys, one per environment.)
Parameters
Parameter | Description |
---|---|
environment (query) |
string (required) The target API environment ID or host name where the explorer key is deployed. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: key | |
403 | Forbidden |
Forbidden. The user is not allowed to request an explorer API key for this restricted environment. | |
Schema: errorResponse | |
404 | Not Found |
Not Found; the Explorer Key has not been created yet. | |
Schema: errorResponse |
explorerKey
Code samples
# You can also use wget
curl -X POST /apiKeys/explorerKey?environment=string \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /apiKeys/explorerKey?environment=string HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiKeys/explorerKey',
method: 'post',
data: '?environment=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiKeys/explorerKey?environment=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/apiKeys/explorerKey',
params: {
'environment' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/apiKeys/explorerKey', params={
'environment': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/apiKeys/explorerKey?environment=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/apiKeys/explorerKey", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create or recycles the user's Explorer Key
POST /explorerKey
Creates and returns the user's Explorer Key. If the Explorer Key has not been created, this call creates and returns it, but leaves it in a pending
state, awaiting administrator approval. If the key exists, the old key is recycled (scheduled to be removed but left active) and a new Explorer key is created, activated, and returned. The key's type
is set to explorer
.
The Explorer Key is specific and private to the current authenticated user. It has a key name
which is the concatenation of the user's user name (email address), "Explorer"
, and a unique string (like a GUID) which makes the key difficiult for others to guess, such as "walter.black@cool.example.com Explorer 3e7649c8-8a35-44f1-9cd5-1b5611124788"
.
The Explorer Key is associated with the Dev Portal application and is only valid in the DevBank environment or where the domain name of the user's email address is listed in the API environment's domains
.
Parameters
Parameter | Description |
---|---|
environment (query) |
string (required) The target API environment ID or host name where the explorer key is deployed. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: key | |
201 | Created |
Created | |
Schema: key | |
403 | Forbidden |
Forbidden. The user is not allowed to request an explorer API key for this restricted environment. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | Location string uri |
The URL of the new Explorer key | |
201 | Location string uri |
The URL of the new Explorer key |
Schemas
key
{
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Key
API key resources.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string The resource ID of this API key resource. This is not the actual API Key; the API-Key header is the key property.
read-only minLength: 6
maxLength: 40
|
name | string The name of the API key. minLength: 6
maxLength: 64
|
key | string The value of the API key, to be used in the API-Key request header on API calls.
read-only minLength: 6
maxLength: 64
|
applicationName | string The name of the client application for this API key. This is derived from the apiture:clientApplication resource passed in at creation time.
read-only minLength: 4
maxLength: 64
|
environmentName | string The name of the API environment for this API key. This is derived from the apiture:environment resource passed in at creation time.
read-only minLength: 8
maxLength: 64
|
environmentHost | string The name of the API environment host for this API key. This is derived from the apiture:environment resource passed in at creation time.
read-only minLength: 4
maxLength: 64
|
partnerName | string The name of the optional partner organization/company. This is derived from the partner organization associated with the application. read-only minLength: 4
maxLength: 128
|
partnerDomain | string(urn) The web domainn of the optional partner organization/company. This is derived from the partner organization associated with the application. read-only minLength: 4
maxLength: 128
|
clientId | string The client ID porton of the client credentials associated with the API key. read-only minLength: 6
maxLength: 128
|
clientSecret | string The client secret porton of the client credentials associated with the API key. read-only minLength: 6
maxLength: 128
|
type | string Defines what type of key this is.
This field is derived from the target environment used when the key is created.
|
state | string The current state of the key. This is immutable and derived, based on the actions to activate or deactivate the key via the activateKey and deactivateKey operations. The initial state is pending ; it changes to active when the API key and credentials have been deployed into the target environment via the activateKey operation.
read-only
|
createdAt | string(date-time) The date-time when the key was created. This is an RFC 3336 formatted string in UTC time. read-only |
expiresAt | string(date-time) The date-time when the key expires. If this is omitted, the key does not have an expiration time. (This expiration is typically is used only for Discoverer keys). This is an RFC 3336 formatted string in UTC time. read-only |
discovererKey
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"apiKey": {
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My Apiture POC",
"key": "295fd0e8b0b449f9a5a3dbfd4a3e3149",
"clientId": "1b97ad67397640c89208bdfd1e039b1f",
"clientSecret": "5035cef945054f96a56d07620652b6bf",
"applicationName": "My Apiture POC",
"partnerName": "Example FinTex",
"partnerDomain": "fintech.example.com",
"_links": {
"apiture:clientApplication": {
"href": "/clientApplications/applications/00aaf46d-05c2-4237-9305-fd9ed9c4994b"
},
"apiture:partner": {
"href": "/organizations/organizations/2435a7f0-2650-49df-9988-c113e36e3c96"
},
"apiture:environment": {
"href": "/apiEnvironments/environments/8c112888-f139-4583-bb0e-cbd378550a48"
},
"apiture:deactivateKey": {
"href": "/apiKeys/inactiveKeys?key=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
"accessToken": "string"
}
Discoverer Key
An API key and access token for an unauthenticated user to make API calls against the devbank target environment.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
apiKey | key The API key for Discoverer use. |
accessToken | string An OAuth access token which may be used for API calls on the devbank envirornment. This token expires every hour. The client should fetch a new access token before this expires. |
keys
{
"_profile": "https://api.apiture.com/schemas/apiKeys/keys/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "keys",
"_links": {
"self": {
"href": "/apiKeys/keys?start=10&limit=10"
},
"first": {
"href": "/apiKeys/keys?start=0&limit=10"
},
"next": {
"href": "/apiKeys/keys?start=20&limit=10"
},
"collection": {
"href": "/apiKeys/keys"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/apiKeys/keys/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
{
"_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"_profile": "https://api.apiture.com/schemas/apiKeys/key/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/apiKeys/keys/d62c0701-0d74-4836-83f9-ebf3709442ea"
}
}
}
]
}
}
Key Collection
Collection of keys. The items in the collection are ordered in the _embedded.items
array; the name
is keys
. The top-level _links
object may contain pagination links: self
, next
, prev
, first
, last
, collection
.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object |
» items | [key] An array containing a page of key items. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items in the collection. This value is optional and my be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
discoverKeyRequest
{
"sampleUserName": "user.name@example.com",
"sampleUserPassword": "string"
}
Discover Key Request
Data the admin can pass when creating or recycling the discoverer key. This is optional, but may contain new credentials for the sample user. If sampleUserName
is passed, the request must also contain sampleUserPassword
. If only sampleUserPassword
is passed, the request will update the password for the current sample user.
Properties
Name | Description |
---|---|
sampleUserName | string(email) The user name (login userid) of the user used for sample data. This user must exist in the devbank environment used by the portal. |
sampleUserPassword | string The password of the sample user. |
errorResponse
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Error Response
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error
object contains the error details.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
root
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
"_links": {}
}
API Root
A HAL response, with hypermedia _links
for the top-level resources and operations in API.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string This API's unique ID. |
name | string This API's name. |
apiVersion | string This API's version. |
link
{
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
Link
Describes a hypermedia link within a _links
object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name
or hreflang
properties of HAL. Apiture links may include a method
property.
Properties
Name | Description |
---|---|
href | string(uri) (required) The URI or URI template for the resource/operation this link refers to. |
type | string The media type for the resource. |
templated | boolean If true, the link's href is a URI template. |
title | string An optional human-readable localized title for the link. |
deprecation | string(uri) If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation. |
profile | string(uri) The URI of a profile document, a JSON document which describes the target resource/operation. |
error
{
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
Error
Describes an error in an API request or in a service called via the API.
Properties
Name | Description |
---|---|
message | string (required) A localized message string describing the error condition. |
_id | string A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string. |
statusCode | integer The HTTP status code associate with this error. minimum: 100
maximum: 599
|
type | string An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode . For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet .
|
occurredAt | string(date-time) An RFC 3339 UTC time stamp indicating when the error occurred. |
attributes | attributes Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type .
|
remediation | string An optional localized string which provides hints for how the user or client can resolve the error. |
errors | [error] An optional array of nested error objects. This property is not always present. |
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object Embedded objects. An error object may contain nested errors. For example, an API which validates its request body may find multiple errors in the request, which are returned with an error response with nested errors. These are held in an items array of errorResponse objects. _embedded or _embedded.items may not exist if the error does not have nested errors. This property is deprecated; use see error.errors instead.
|
» items | [errorResponse] An array of error objects. |
attributes
{}
Attributes
An optional map of name/value pairs which contains additional dynamic data about the resource.
Properties
links
{
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
}
Links
An optional map of links, mapping each link relation to a link object. This model defines the _links
object of HAL representations.
Properties
Name | Description |
---|---|
additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|