Skip to content

BNDRY API (v1alpha)

API for the BNDRY platform

Download OpenAPI description
Overview
License

MIT License

Languages
Servers
Mock server

https://docs.bndry.net/_mock/apis/openapi/

BNDRY API

https://api.bndry.app/

Operations
Operations

Entity Risk Rating

Service for managing risk rating jobs for individual entities.

Operations

Request

Retrieves details about a specific risk rating job.

Security
oauth2_client_credentials or oauth2_authorization_code
Path
entitystringrequired

The entity id.

individualEntityRiskRatingJobstringrequired

The individualEntityRiskRatingJob id.

curl -i -X GET \
  'https://docs.bndry.net/_mock/apis/openapi/v1alpha/entities/{entity}/individualEntityRiskRatingJobs/{individualEntityRiskRatingJob}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Success

Bodyapplication/json
namestring(name)

(IDENTIFIER) Output only. The resource name of the job. Format: entities/-/individualEntityRiskRatingJobs/{individual_entity_risk_rating_job} correct_name_format // name must follow format 'entities/-/individualEntityRiskRatingJobs/*' string.example = ["entities/-/individualEntityRiskRatingJobs/risk-rating-2024-0127-743891"]

createTimestring(date-time)(google.protobuf.Timestamp)read-only

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

struct timeval tv; gettimeofday(&tv, NULL);

Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

long millis = System.currentTimeMillis();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

Instant now = Instant.now();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(now.getEpochSecond()) .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

timestamp = Timestamp() timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

updateTimestring(date-time)(google.protobuf.Timestamp)read-only

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

struct timeval tv; gettimeofday(&tv, NULL);

Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

long millis = System.currentTimeMillis();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

Instant now = Instant.now();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(now.getEpochSecond()) .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

timestamp = Timestamp() timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

Response
application/json
{ "name": "entities/-/individualEntityRiskRatingJobs/risk-rating-2024-0127-743891", "createTime": "2023-01-15T01:30:15.01Z", "updateTime": "2023-01-15T01:30:15.01Z" }

Request

Lists risk rating jobs for a specific entity.

Security
oauth2_client_credentials or oauth2_authorization_code
Path
entitystringrequired

The entity id.

Query
pageSizeinteger(int32)(page_size)

Optional. The maximum number of jobs to return. The service may return fewer than this value. If unspecified, at most 10 jobs will be returned. The maximum value is 100; values above 100 will be coerced to 100.

pageTokenstring(page_token)

Optional. A page token, received from a previous ListIndividualEntityRiskRatingJobs call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListIndividualEntityRiskRatingJobs must match the call that provided the page token.

skipinteger(int32)(skip)>= 0

Optional. The number of jobs to skip before starting to collect the result set.

curl -i -X GET \
  'https://docs.bndry.net/_mock/apis/openapi/v1alpha/entities/{entity}/individualEntityRiskRatingJobs?pageSize=25&pageToken=ChAIAhABGAEiAggC&skip=0' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Success

Bodyapplication/json
individualEntityRiskRatingJobsArray of objects(individual_entity_risk_rating_jobs)

The list of risk rating jobs.

nextPageTokenstring(next_page_token)

A token to retrieve the next page of results, or empty if there are no more results in the list. string.example = ["cn8DAQEsQ3Vyc29yUGFnZVRva2VuW2dpdGh1Yi5jb20vZ29vZ2xlL3V1aWQuVVVJRF0B_4AAAQQBBkN1cnNvcgH_ggABBFNraXABBAABC1Nob3dEZWxldGVkAQIAAQ9SZXF1ZXN0Q2hlY2tzdW0BBgAAAAr_gQYBAv-EAAAAG_-AARABmJ6h3ll2WY12-UroKTKHA_x1wJ5cAA=="]

totalSizeinteger(int32)(total_size)

The total number of jobs matching the request. int32.example = [47]

Response
application/json
{ "individualEntityRiskRatingJobs": [ {} ], "nextPageToken": "cn8DAQEsQ3Vyc29yUGFnZVRva2VuW2dpdGh1Yi5jb20vZ29vZ2xlL3V1aWQuVVVJRF0B_4AAAQQBBkN1cnNvcgH_ggABBFNraXABBAABC1Nob3dEZWxldGVkAQIAAQ9SZXF1ZXN0Q2hlY2tzdW0BBgAAAAr_gQYBAv-EAAAAG_-AARABmJ6h3ll2WY12-UroKTKHA_x1wJ5cAA==", "totalSize": 47 }

Request

Creates a new risk rating job.

Security
oauth2_client_credentials or oauth2_authorization_code
Path
entitystringrequired

The entity id.

Query
individualEntityRiskRatingJobIdstring(individual_entity_risk_rating_job_id)[ 4 .. 63 ] charactersrequired

REQUIRED. The ID to use for the job, which will become the final component of the job's resource name. This value should be 4-63 characters, and valid characters are /[a-z][0-9]-/.

Bodyapplication/json

Required. The risk rating job to create.

namestring(name)

(IDENTIFIER) Output only. The resource name of the job. Format: entities/-/individualEntityRiskRatingJobs/{individual_entity_risk_rating_job} correct_name_format // name must follow format 'entities/-/individualEntityRiskRatingJobs/*' string.example = ["entities/-/individualEntityRiskRatingJobs/risk-rating-2024-0127-743891"]

curl -i -X POST \
  'https://docs.bndry.net/_mock/apis/openapi/v1alpha/entities/{entity}/individualEntityRiskRatingJobs?individualEntityRiskRatingJobId=pep-sanction-screen-001' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "entities/-/individualEntityRiskRatingJobs/risk-rating-2024-0127-743891",
    "createTime": "2023-01-15T01:30:15.01Z",
    "updateTime": "2023-01-15T01:30:15.01Z"
  }'

Responses

Success

Bodyapplication/json
namestring(name)

(IDENTIFIER) Output only. The resource name of the job. Format: entities/-/individualEntityRiskRatingJobs/{individual_entity_risk_rating_job} correct_name_format // name must follow format 'entities/-/individualEntityRiskRatingJobs/*' string.example = ["entities/-/individualEntityRiskRatingJobs/risk-rating-2024-0127-743891"]

createTimestring(date-time)(google.protobuf.Timestamp)read-only

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

struct timeval tv; gettimeofday(&tv, NULL);

Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

long millis = System.currentTimeMillis();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

Instant now = Instant.now();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(now.getEpochSecond()) .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

timestamp = Timestamp() timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

updateTimestring(date-time)(google.protobuf.Timestamp)read-only

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

struct timeval tv; gettimeofday(&tv, NULL);

Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

long millis = System.currentTimeMillis();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

Instant now = Instant.now();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(now.getEpochSecond()) .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

timestamp = Timestamp() timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

Response
application/json
{ "name": "entities/-/individualEntityRiskRatingJobs/risk-rating-2024-0127-743891", "createTime": "2023-01-15T01:30:15.01Z", "updateTime": "2023-01-15T01:30:15.01Z" }

Request

Runs a risk rating job.

Security
oauth2_client_credentials or oauth2_authorization_code
Path
entitystringrequired

The entity id.

individualEntityRiskRatingJobstringrequired

The individualEntityRiskRatingJob id.

curl -i -X POST \
  'https://docs.bndry.net/_mock/apis/openapi/v1alpha/entities/{entity}/individualEntityRiskRatingJobs/{individualEntityRiskRatingJob}:run' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Success

Bodyapplication/json
One of:

This resource represents a long-running operation that is the result of a network API call.

namestring(name)

The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.

metadataobject(google.protobuf.Any)

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.

doneboolean(done)

If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.

errorobject(google.rpc.Status)required

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details.

You can find out more about this error model and how to work with it in the API Design Guide.

error.​codeinteger(int32)(code)

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

error.​messagestring(message)

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

error.​detailsArray of objects(details)

A list of messages that carry the error details. There is a common set of message types for APIs to use.

Response
application/json
{ "name": "string", "metadata": { "type": "string", "value": "string" }, "done": true, "error": { "code": 0, "message": "string", "details": [] } }

Request

Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.

Security
oauth2_client_credentials or oauth2_authorization_code
Path
entitystringrequired

The entity id.

individualEntityRiskRatingJobstringrequired

The individualEntityRiskRatingJob id.

operationstringrequired

The operation id.

curl -i -X GET \
  'https://docs.bndry.net/_mock/apis/openapi/v1alpha/entities/{entity}/individualEntityRiskRatingJobs/{individualEntityRiskRatingJob}/operations/{operation}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Success

Bodyapplication/json
One of:

This resource represents a long-running operation that is the result of a network API call.

namestring(name)

The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.

metadataobject(google.protobuf.Any)

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.

doneboolean(done)

If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.

errorobject(google.rpc.Status)required

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details.

You can find out more about this error model and how to work with it in the API Design Guide.

error.​codeinteger(int32)(code)

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

error.​messagestring(message)

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

error.​detailsArray of objects(details)

A list of messages that carry the error details. There is a common set of message types for APIs to use.

Response
application/json
{ "name": "string", "metadata": { "type": "string", "value": "string" }, "done": true, "error": { "code": 0, "message": "string", "details": [] } }

Onboard Individual (Verify Identity)

Service for managing individual entity onboarding jobs.

Operations

Entity PEP Sanctions Check

Service for managing PEP and sanctions screening jobs for individual entities.

Operations