NAV Navbar
curl JavaScript Node.JS Python PHP
Api landing
API reference

Overview

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

The Glassboard API is organized around REST. Our API has predictable resource-oriented URLs, accepts and returns JSON-encoded request and responses bodies, and uses standard HTTP response codes, authentication, and verbs.

The Glassboard API may differ for every account as we release new versions and tailor functionality based on customer needs. The API specification below is universally available.

You can also load a collection of the endpoints into the REST API client Postman by clicking this button

Run in Postman

Cross-Origin Resource Sharing

This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with W3C spec. And that allows cross-domain communication from the browser.

All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site.

Request Basics

Headers

Currently, this API only communicates with JSON, so in some situations you may need to set Accept or Content-Type to application/json.
Glassboard Technology enables platforms and applications for a variety of organizations and users. To ensure an orderly separation of resource ownership this API requires a tenant identification in all requests. In the request header, set the value x-tenant-id to your id. All requests without this value will be rejected with a 401 response.

Base URLs:

Additional Resources:

Authentication

This API only supports OAuth 2.0 for authentication and authorization. Specifically, it supports two options for OAuth2 grants, Client Credential and Authorization Code OAuth 2.0 is the industry-standard protocol for authorization. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices. This list describes the components of an OAuth2 grant flow:

Client Credentials Grant

The Client Credentials grant type is used by clients to obtain an access token outside of the context of a user. This is typically used by clients to access resources about themselves rather than to access a user's resources. The process to obtain a token:

  1. The Client Application sends an request to the Authorization Endpoing (/oauth2/token) with the client id and client secret in the request body. This request may include requested scopes.
  2. In the response, the Authorization Endpoint sends an Access Token (JWT).
  3. The Client Application uses the Access Token to call Resource Endpoints.

Authorization Code Grant

The Authorization Code grant type is used by confidential and public clients to exchange an authorization code for an access token. After the user returns to the client via the redirect URL, the application will get the authorization code from the URL and use it to request an access token.

  1. The Client initiates the flow by redirecting the User Agent of the Resource Owner to the Authorization Server. The Client includes its Client ID, requested scopes, and the redirect URI.
  2. Resource Owner authorizes the Client by granting permissions requested by the Client.
  3. Authorization Server redirects the User Agent back to the Client (using redirect URI from point 1). The redirect URI includes a temporary Authorization Code (as a query param).
  4. Client requests an Access Token from the Authorization Server. The request includes Client ID, Client Secret, and Authorization Code received in the previous step.
  5. If everything is valid, the Authorization Server returns Access Token and, optionally, a Refresh Token.
  6. The client uses the Access Token to call the Resource Server on behalf of the Resource Owner.

Flow Details

Scope Scope Description
read Grant read-only access to all your data except for the account and user info
write Grant write-only access to all your data except for the account and user info
Scope Scope Description
read Grant read-only access to all your data except for the account and user info
write Grant write-only access to all your data except for the account and user info

Example Usage

Find example usage, guides and tips in our developer getting started guide.

Endpoints

API endpoints are described in the next section

OAuth2

This set of authorization endpoints describe how to securely communicate with the API.

Create a token

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/oauth2/token \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/oauth2/token',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "grantType": "client_credentials",
  "clientId": "sandbox",
  "clientSecret": "718a22b3-52ed-40f7-be81-134988941ef5"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/oauth2/token',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/oauth2/token', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/oauth2/token', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

With a client id and secret or with an authorization code, you can get a authorization token

Endpoint

POST /oauth2/token Try it out

Body parameter

{
  "grantType": "client_credentials",
  "clientId": "sandbox",
  "clientSecret": "718a22b3-52ed-40f7-be81-134988941ef5"
}

Parameters

Parameter In Type Required Description
body body TokenRequest true none
» grantType body string false none
» clientId body string false none
» clientSecret body string false none

Enumerated Values

Parameter Value
» grantType client_credentials
» grantType authorization_code

Example responses

200 Response

{
  "access_token": "string",
  "expires_at": 0,
  "refresh_expires_in": 0,
  "refresh_token": "string",
  "token_type": "string",
  "not-before-policy": 0,
  "session_state": "string",
  "scope": "string"
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Token
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Refresh a token

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/oauth2/refresh \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/oauth2/refresh',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "refreshToken": "eyJhbGciOiJIUz1NiIsIn..."
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/oauth2/refresh',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/oauth2/refresh', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/oauth2/refresh', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

A refresh token can be used to create a new access token

Endpoint

POST /oauth2/refresh Try it out

Body parameter

{
  "refreshToken": "eyJhbGciOiJIUz1NiIsIn..."
}

Parameters

Parameter In Type Required Description
body body RefreshRequest true none
» refreshToken body string false none

Example responses

200 Response

{
  "access_token": "string",
  "expires_at": 0,
  "refresh_expires_in": 0,
  "refresh_token": "string",
  "token_type": "string",
  "not-before-policy": 0,
  "session_state": "string",
  "scope": "string"
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Token
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Assets

Assets represent the investment vehicle for a deal. An asset can take one of many forms, such as, shares of common stock in a company, real estate, crypocurrency, or even fractional ownership in a private jet. The object specification is general enough to include a complete description of the asset, supporting documentation, and profiles of the key team members.

List Assets

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/assets \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/assets',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/assets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/assets', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/assets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

List current user's assets to which the authentication method has access.

Endpoint

GET /assets Try it out

Parameters

Parameter In Type Required Description
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 100, the default is 10.
page query integer(int32) false A cursor for use in pagination. startingIndex is an object ID that define your place in the list.

Example responses

200 Response

{
  "data": [
    {
      "name": "My Company Asset",
      "assetType": "COMPANY",
      "description": "This company will be bringing interesting products to the market",
      "dealId": "1234567890",
      "details": [
        {
          "heading": "Section 1",
          "body": "Details about this asset"
        },
        {
          "heading": "Section 2",
          "body": "More details about this asset"
        }
      ],
      "team": [
        {
          "name": "John Domnigo",
          "role": "Manager"
        }
      ],
      "marketingAssets": {
        "slogan": "A great opportunity"
      },
      "isPublic": false,
      "assetUrl": "www.asseturl.com",
      "createdAt": "2020-04-23T01:00:00.000+00:00",
      "updatedAt": "2020-04-25T01:00:00.000+00:00",
      "additionalProperties": {
        "additionalValue1": "An additional asset value",
        "additionalValue2": "Another additional asset value"
      }
    }
  ],
  "page": 1,
  "limit": 10,
  "total_count": 10
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request AssetsList
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
default Default Unexpected error Error

Create an Asset

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/assets \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/assets',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "name": "My Company Asset",
  "assetType": "COMPANY",
  "description": "This company will be bringing interesting products to the market",
  "dealId": "1234567890",
  "details": [
    {
      "heading": "Section 1",
      "body": "Details about this asset"
    },
    {
      "heading": "Section 2",
      "body": "More details about this asset"
    }
  ],
  "team": [
    {
      "name": "John Domnigo",
      "role": "Manager"
    }
  ],
  "marketingAssets": {
    "slogan": "A great opportunity"
  },
  "isPublic": false,
  "assetUrl": "www.asseturl.com",
  "additionalProperties": {
    "additionalValue1": "An additional asset value",
    "additionalValue2": "Another additional asset value"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/assets',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/assets', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/assets', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Create a new asset object

Endpoint

POST /assets Try it out

Body parameter

{
  "name": "My Company Asset",
  "assetType": "COMPANY",
  "description": "This company will be bringing interesting products to the market",
  "dealId": "1234567890",
  "details": [
    {
      "heading": "Section 1",
      "body": "Details about this asset"
    },
    {
      "heading": "Section 2",
      "body": "More details about this asset"
    }
  ],
  "team": [
    {
      "name": "John Domnigo",
      "role": "Manager"
    }
  ],
  "marketingAssets": {
    "slogan": "A great opportunity"
  },
  "isPublic": false,
  "assetUrl": "www.asseturl.com",
  "additionalProperties": {
    "additionalValue1": "An additional asset value",
    "additionalValue2": "Another additional asset value"
  }
}

Parameters

Parameter In Type Required Description
body body AssetRequest true none

Example responses

200 Response

{
  "name": "My Company Asset",
  "assetType": "COMPANY",
  "description": "This company will be bringing interesting products to the market",
  "dealId": "1234567890",
  "details": [
    {
      "heading": "Section 1",
      "body": "Details about this asset"
    },
    {
      "heading": "Section 2",
      "body": "More details about this asset"
    }
  ],
  "team": [
    {
      "name": "John Domnigo",
      "role": "Manager"
    }
  ],
  "marketingAssets": {
    "slogan": "A great opportunity"
  },
  "isPublic": false,
  "assetUrl": "www.asseturl.com",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "additionalValue1": "An additional asset value",
    "additionalValue2": "Another additional asset value"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Asset
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Get a Asset

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/assets/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/assets/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/assets/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/assets/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/assets/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Get a single Asset by its ID

Endpoint

GET /assets/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "name": "My Company Asset",
  "assetType": "COMPANY",
  "description": "This company will be bringing interesting products to the market",
  "dealId": "1234567890",
  "details": [
    {
      "heading": "Section 1",
      "body": "Details about this asset"
    },
    {
      "heading": "Section 2",
      "body": "More details about this asset"
    }
  ],
  "team": [
    {
      "name": "John Domnigo",
      "role": "Manager"
    }
  ],
  "marketingAssets": {
    "slogan": "A great opportunity"
  },
  "isPublic": false,
  "assetUrl": "www.asseturl.com",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "additionalValue1": "An additional asset value",
    "additionalValue2": "Another additional asset value"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Asset
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None
default Default Unexpected error Error

Update a specific asset

Code samples

# You can also use wget
curl -X PUT https://api.sandbox.glassboardtech.com/#/assets/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/assets/{id}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/assets/{id}',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.sandbox.glassboardtech.com/#/assets/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.sandbox.glassboardtech.com/#/assets/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

PUT /assets/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "name": "My Company Asset",
  "assetType": "COMPANY",
  "description": "This company will be bringing interesting products to the market",
  "dealId": "1234567890",
  "details": [
    {
      "heading": "Section 1",
      "body": "Details about this asset"
    },
    {
      "heading": "Section 2",
      "body": "More details about this asset"
    }
  ],
  "team": [
    {
      "name": "John Domnigo",
      "role": "Manager"
    }
  ],
  "marketingAssets": {
    "slogan": "A great opportunity"
  },
  "isPublic": false,
  "assetUrl": "www.asseturl.com",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "additionalValue1": "An additional asset value",
    "additionalValue2": "Another additional asset value"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Asset
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Delete an Asset

Code samples

# You can also use wget
curl -X DELETE https://api.sandbox.glassboardtech.com/#/assets/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/assets/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/assets/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.sandbox.glassboardtech.com/#/assets/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://api.sandbox.glassboardtech.com/#/assets/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Delete the asset specificed by an id. Note: this operation will fail if the assets is attached to a Deal. The asset must first be removed from the Deal.

Endpoint

DELETE /assets/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
204 No Content Expected response to a valid request None
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Closes

A Close groups Subscriptions together for completion of the investment process. A close can represent the close of the entire deal or just a subset of investments (i.e. a tranche).

List closes

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/closes \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/closes',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/closes',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/closes', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/closes', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

List closes to which the authentication method has access.

Endpoint

GET /closes Try it out

Parameters

Parameter In Type Required Description
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 100, the default is 10.
page query integer(int32) false A cursor for use in pagination. startingIndex is an object ID that define your place in the list.

Example responses

200 Response

{
  "data": [
    {
      "id": 123456
    }
  ],
  "page": 0,
  "limit": 0,
  "total_count": 0
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request ClosesList
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
default Default Unexpected error Error

Get a close

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/closes/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/closes/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/closes/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/closes/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/closes/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Get a single close by its id

Endpoint

GET /closes/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "id": 123456
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Close
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None
default Default Unexpected error Error

Companies

This object can store general information about a Company for a variety of purposes. Some examples include fund managers, portfolio companies, or registered agents.

Get a company

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/companies/{id} \
  -H 'Accept: application/json'

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/companies/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/companies/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/companies/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/companies/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Get a single company by its id

Endpoint

GET /companies/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "type": "FUND_MANAGER",
  "firstName": "Robert",
  "lastName": "Christensen",
  "address": {
    "address1": "123 Main St.",
    "city": "Salt Lake City",
    "state": "Utah",
    "country": "United States of America",
    "postalCode": "12345"
  },
  "title": "Mr.",
  "email": "rchristensen@email.com",
  "phone": "801-123-1234",
  "isEntity": true,
  "entityInfo": {
    "name": "My LLC",
    "stateOfFormation": "Delaware",
    "countryOfFormation": "United States of America"
  },
  "createdAt": "2020-05-05T01:00:00.000+00:00",
  "updatedAt": "2020-05-05T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important company info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Company
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None
default Default Unexpected error Error

List all Companies

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/companies \
  -H 'Accept: application/json'

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/companies',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/companies',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/companies', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/companies', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

This endpoint lists all the companies

Endpoint

GET /companies Try it out

Parameters

Parameter In Type Required Description
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 100, the default is 10.

Example responses

200 Response

{
  "type": "FUND_MANAGER",
  "firstName": "Robert",
  "lastName": "Christensen",
  "address": {
    "address1": "123 Main St.",
    "city": "Salt Lake City",
    "state": "Utah",
    "country": "United States of America",
    "postalCode": "12345"
  },
  "title": "Mr.",
  "email": "rchristensen@email.com",
  "phone": "801-123-1234",
  "isEntity": true,
  "entityInfo": {
    "name": "My LLC",
    "stateOfFormation": "Delaware",
    "countryOfFormation": "United States of America"
  },
  "createdAt": "2020-05-05T01:00:00.000+00:00",
  "updatedAt": "2020-05-05T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important company info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK A paged array of companies Company
default Default Unexpected error Error

Response Headers

Status Header Type Format Description
200 x-next string A link to the next page of responses

Create a Company

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/companies \
  -H 'Accept: application/json'

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/companies',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/companies',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/companies', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/companies', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

POST /companies Try it out

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
201 Created Null response None
default Default Unexpected error Error

Info for a specific company

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/companies/{companyId} \
  -H 'Accept: application/json'

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/companies/{companyId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/companies/{companyId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/companies/{companyId}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/companies/{companyId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

GET /companies/{companyId} Try it out

Parameters

Parameter In Type Required Description
companyId path string true The id of the company to retrieve

Example responses

200 Response

{
  "type": "FUND_MANAGER",
  "firstName": "Robert",
  "lastName": "Christensen",
  "address": {
    "address1": "123 Main St.",
    "city": "Salt Lake City",
    "state": "Utah",
    "country": "United States of America",
    "postalCode": "12345"
  },
  "title": "Mr.",
  "email": "rchristensen@email.com",
  "phone": "801-123-1234",
  "isEntity": true,
  "entityInfo": {
    "name": "My LLC",
    "stateOfFormation": "Delaware",
    "countryOfFormation": "United States of America"
  },
  "createdAt": "2020-05-05T01:00:00.000+00:00",
  "updatedAt": "2020-05-05T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important company info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Company
default Default Unexpected error Error

Update a specific company

Code samples

# You can also use wget
curl -X PUT https://api.sandbox.glassboardtech.com/#/companies/{companyId} \
  -H 'Accept: application/json'

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/companies/{companyId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/companies/{companyId}',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.put('https://api.sandbox.glassboardtech.com/#/companies/{companyId}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.sandbox.glassboardtech.com/#/companies/{companyId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

PUT /companies/{companyId} Try it out

Parameters

Parameter In Type Required Description
companyId path string true The id of the company to retrieve

Example responses

200 Response

{
  "type": "FUND_MANAGER",
  "firstName": "Robert",
  "lastName": "Christensen",
  "address": {
    "address1": "123 Main St.",
    "city": "Salt Lake City",
    "state": "Utah",
    "country": "United States of America",
    "postalCode": "12345"
  },
  "title": "Mr.",
  "email": "rchristensen@email.com",
  "phone": "801-123-1234",
  "isEntity": true,
  "entityInfo": {
    "name": "My LLC",
    "stateOfFormation": "Delaware",
    "countryOfFormation": "United States of America"
  },
  "createdAt": "2020-05-05T01:00:00.000+00:00",
  "updatedAt": "2020-05-05T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important company info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Company
default Default Unexpected error Error

Delete a specific company

Code samples

# You can also use wget
curl -X DELETE https://api.sandbox.glassboardtech.com/#/companies/{companyId} \
  -H 'Accept: application/json'

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/companies/{companyId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/companies/{companyId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://api.sandbox.glassboardtech.com/#/companies/{companyId}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://api.sandbox.glassboardtech.com/#/companies/{companyId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

DELETE /companies/{companyId} Try it out

Parameters

Parameter In Type Required Description
companyId path string true The id of the company to retrieve

Example responses

200 Response

{
  "type": "FUND_MANAGER",
  "firstName": "Robert",
  "lastName": "Christensen",
  "address": {
    "address1": "123 Main St.",
    "city": "Salt Lake City",
    "state": "Utah",
    "country": "United States of America",
    "postalCode": "12345"
  },
  "title": "Mr.",
  "email": "rchristensen@email.com",
  "phone": "801-123-1234",
  "isEntity": true,
  "entityInfo": {
    "name": "My LLC",
    "stateOfFormation": "Delaware",
    "countryOfFormation": "United States of America"
  },
  "createdAt": "2020-05-05T01:00:00.000+00:00",
  "updatedAt": "2020-05-05T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important company info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Company
default Default Unexpected error Error

Deals

A deal is a fundamental object that represents the opportunity into which user make an investment.

List Deals

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/deals \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/deals',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/deals',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/deals', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/deals', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

List current user's deals to which the authentication method has access.

Endpoint

GET /deals Try it out

Parameters

Parameter In Type Required Description
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 100, the default is 10.
page query integer(int32) false A cursor for use in pagination. startingIndex is an object ID that define your place in the list.

Example responses

200 Response

{
  "data": [
    {
      "id": "507f191e810c19729de860ea",
      "name": "My Deal",
      "assetUrl": "www.asseturl.com",
      "portfolioCompanyName": "My Portfolio Company",
      "portfolioCompanyState": "Delaware",
      "portfolioCompanyEntityType": "C_CORPORATION",
      "raiseAmount": 300000,
      "securityType": "COMMON_STOCK",
      "estimatedCloseDate": "10/10/2020",
      "minInvestmentAmount": 50000,
      "carryPerentage": 20,
      "portfolioCompanyContact": {
        "firstName": "John",
        "lastName": "Doe",
        "email": "johndoe@email.com"
      },
      "status": "PENDING",
      "createdAt": "2020-04-23T01:00:00.000+00:00",
      "updatedAt": "2020-04-25T01:00:00.000+00:00",
      "additionalProperties": {
        "myAdditionalValue1": "Important deal info",
        "myAdditionalValue2": "Some additional requirements"
      }
    }
  ],
  "page": 1,
  "limit": 10,
  "total_count": 10
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request DealsList
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
default Default Unexpected error Error

Create a Deal

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/deals \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/deals',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "name": "My Deal",
  "assetUrl": "www.asseturl.com",
  "portfolioCompanyName": "My Portfolio Company",
  "portfolioCompanyState": "Delaware",
  "portfolioCompanyEntityType": "C_CORPORATION",
  "raiseAmount": 300000,
  "securityType": "COMMON_STOCK",
  "estimatedCloseDate": "10/10/2020",
  "minInvestmentAmount": 50000,
  "carryPerentage": 20,
  "portfolioCompanyContact": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "johndoe@email.com"
  },
  "status": "PENDING",
  "additionalProperties": {
    "myAdditionalValue1": "Important deal info",
    "myAdditionalValue2": "Some additional requirements"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/deals',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/deals', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/deals', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Create a new deal for the user

Endpoint

POST /deals Try it out

Body parameter

{
  "name": "My Deal",
  "assetUrl": "www.asseturl.com",
  "portfolioCompanyName": "My Portfolio Company",
  "portfolioCompanyState": "Delaware",
  "portfolioCompanyEntityType": "C_CORPORATION",
  "raiseAmount": 300000,
  "securityType": "COMMON_STOCK",
  "estimatedCloseDate": "10/10/2020",
  "minInvestmentAmount": 50000,
  "carryPerentage": 20,
  "portfolioCompanyContact": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "johndoe@email.com"
  },
  "status": "PENDING",
  "additionalProperties": {
    "myAdditionalValue1": "Important deal info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Parameters

Parameter In Type Required Description
body body DealRequest true none

Example responses

200 Response

{
  "id": "507f191e810c19729de860ea",
  "name": "My Deal",
  "assetUrl": "www.asseturl.com",
  "portfolioCompanyName": "My Portfolio Company",
  "portfolioCompanyState": "Delaware",
  "portfolioCompanyEntityType": "C_CORPORATION",
  "raiseAmount": 300000,
  "securityType": "COMMON_STOCK",
  "estimatedCloseDate": "10/10/2020",
  "minInvestmentAmount": 50000,
  "carryPerentage": 20,
  "portfolioCompanyContact": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "johndoe@email.com"
  },
  "status": "PENDING",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important deal info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Deal
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Get a Deal

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/deals/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/deals/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/deals/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/deals/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/deals/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Get a single Deal by its ID

Endpoint

GET /deals/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "id": "507f191e810c19729de860ea",
  "name": "My Deal",
  "assetUrl": "www.asseturl.com",
  "portfolioCompanyName": "My Portfolio Company",
  "portfolioCompanyState": "Delaware",
  "portfolioCompanyEntityType": "C_CORPORATION",
  "raiseAmount": 300000,
  "securityType": "COMMON_STOCK",
  "estimatedCloseDate": "10/10/2020",
  "minInvestmentAmount": 50000,
  "carryPerentage": 20,
  "portfolioCompanyContact": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "johndoe@email.com"
  },
  "status": "PENDING",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important deal info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Deal
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None
default Default Unexpected error Error

Update a specific deal

Code samples

# You can also use wget
curl -X PUT https://api.sandbox.glassboardtech.com/#/deals/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/deals/{id}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/deals/{id}',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.sandbox.glassboardtech.com/#/deals/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.sandbox.glassboardtech.com/#/deals/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

PUT /deals/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "id": "507f191e810c19729de860ea",
  "name": "My Deal",
  "assetUrl": "www.asseturl.com",
  "portfolioCompanyName": "My Portfolio Company",
  "portfolioCompanyState": "Delaware",
  "portfolioCompanyEntityType": "C_CORPORATION",
  "raiseAmount": 300000,
  "securityType": "COMMON_STOCK",
  "estimatedCloseDate": "10/10/2020",
  "minInvestmentAmount": 50000,
  "carryPerentage": 20,
  "portfolioCompanyContact": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "johndoe@email.com"
  },
  "status": "PENDING",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important deal info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Deal
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Delete a specific deal

Code samples

# You can also use wget
curl -X DELETE https://api.sandbox.glassboardtech.com/#/deals/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/deals/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/deals/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.sandbox.glassboardtech.com/#/deals/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://api.sandbox.glassboardtech.com/#/deals/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

DELETE /deals/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
204 No Content Expected response to a valid request None
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Entities

An entity (typically a fund) is the legal entity that gets generated during the deal creation process.

List all Entities

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/entities \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/entities',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/entities',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/entities', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/entities', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

This endpoint lists all the entities

Endpoint

GET /entities Try it out

Parameters

Parameter In Type Required Description
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 100, the default is 10.

Example responses

200 Response

{
  "data": [
    {
      "id": "507f191e810c19729de860ea",
      "name": "Series 001, a seres of My LLC",
      "entityType": "LIMITED_LIABILITY_COMPANY",
      "countryOfFormation": "United States of America",
      "stateOfFormation": "Delaware",
      "ein": "12-3456789",
      "entityDocuments": {
        "operatingAgreement": "507f191e810c19729de860ea",
        "privatePlacementMemorandum": "507f191e810c19729de860eb",
        "subscriptionAgreement": "507f191e810c19729de860ec"
      },
      "createdAt": "2020-04-23T01:00:00.000+00:00",
      "updatedAt": "2020-04-25T01:00:00.000+00:00",
      "additionalProperties": {
        "myAdditionalValue1": "Important entity info",
        "myAdditionalValue2": "Some additional requirements"
      }
    }
  ],
  "page": 1,
  "limit": 10,
  "total_count": 10
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request EntitiesList
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Create an Entity

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/entities \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/entities',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "id": "507f191e810c19729de860ea",
  "name": "Series 001, a seres of My LLC",
  "entityType": "LIMITED_LIABILITY_COMPANY",
  "countryOfFormation": "United States of America",
  "stateOfFormation": "Delaware",
  "ein": "12-3456789",
  "entityDocuments": {
    "operatingAgreement": "507f191e810c19729de860ea",
    "privatePlacementMemorandum": "507f191e810c19729de860eb",
    "subscriptionAgreement": "507f191e810c19729de860ec"
  },
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/entities',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/entities', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/entities', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

POST /entities Try it out

Body parameter

{
  "id": "507f191e810c19729de860ea",
  "name": "Series 001, a seres of My LLC",
  "entityType": "LIMITED_LIABILITY_COMPANY",
  "countryOfFormation": "United States of America",
  "stateOfFormation": "Delaware",
  "ein": "12-3456789",
  "entityDocuments": {
    "operatingAgreement": "507f191e810c19729de860ea",
    "privatePlacementMemorandum": "507f191e810c19729de860eb",
    "subscriptionAgreement": "507f191e810c19729de860ec"
  },
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Parameters

Parameter In Type Required Description
body body EntityRequest true none

Example responses

200 Response

{
  "id": "507f191e810c19729de860ea",
  "name": "Series 001, a seres of My LLC",
  "entityType": "LIMITED_LIABILITY_COMPANY",
  "countryOfFormation": "United States of America",
  "stateOfFormation": "Delaware",
  "ein": "12-3456789",
  "entityDocuments": {
    "operatingAgreement": "507f191e810c19729de860ea",
    "privatePlacementMemorandum": "507f191e810c19729de860eb",
    "subscriptionAgreement": "507f191e810c19729de860ec"
  },
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Entity
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Info for a specific entity

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/entities/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/entities/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/entities/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/entities/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/entities/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

GET /entities/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "id": "507f191e810c19729de860ea",
  "name": "Series 001, a seres of My LLC",
  "entityType": "LIMITED_LIABILITY_COMPANY",
  "countryOfFormation": "United States of America",
  "stateOfFormation": "Delaware",
  "ein": "12-3456789",
  "entityDocuments": {
    "operatingAgreement": "507f191e810c19729de860ea",
    "privatePlacementMemorandum": "507f191e810c19729de860eb",
    "subscriptionAgreement": "507f191e810c19729de860ec"
  },
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Entity
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Update a specific entity

Code samples

# You can also use wget
curl -X PUT https://api.sandbox.glassboardtech.com/#/entities/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/entities/{id}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/entities/{id}',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.sandbox.glassboardtech.com/#/entities/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.sandbox.glassboardtech.com/#/entities/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

PUT /entities/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "id": "507f191e810c19729de860ea",
  "name": "Series 001, a seres of My LLC",
  "entityType": "LIMITED_LIABILITY_COMPANY",
  "countryOfFormation": "United States of America",
  "stateOfFormation": "Delaware",
  "ein": "12-3456789",
  "entityDocuments": {
    "operatingAgreement": "507f191e810c19729de860ea",
    "privatePlacementMemorandum": "507f191e810c19729de860eb",
    "subscriptionAgreement": "507f191e810c19729de860ec"
  },
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Entity
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Delete a specific entity

Code samples

# You can also use wget
curl -X DELETE https://api.sandbox.glassboardtech.com/#/entities/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/entities/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/entities/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.sandbox.glassboardtech.com/#/entities/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://api.sandbox.glassboardtech.com/#/entities/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

DELETE /entities/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
204 No Content Expected response to a valid request None
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Create a fund document for an entity

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/entities/{id}/generate-documents/{documentType} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/entities/{id}/generate-documents/{documentType}',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/entities/{id}/generate-documents/{documentType}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/entities/{id}/generate-documents/{documentType}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/entities/{id}/generate-documents/{documentType}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

POST /entities/{id}/generate-documents/{documentType} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier
documentType path string true Type of requested document. One of 'oa', 'sub', or 'ppm'.

Example responses

200 Response

{
  "name": "My Document",
  "type": "pdf",
  "key": "1232123",
  "lastModified": "1588140000000",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request File
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Files

Files of all kinds that can be attached to other objects or stand alone.

List all Files

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/files \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/files',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/files',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/files', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/files', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

This endpoint lists all the files

Endpoint

GET /files Try it out

Parameters

Parameter In Type Required Description
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 100, the default is 10.

Example responses

200 Response

{
  "data": [
    {
      "name": "My Document",
      "type": "pdf",
      "key": "1232123",
      "lastModified": "1588140000000",
      "createdAt": "2020-04-23T01:00:00.000+00:00",
      "updatedAt": "2020-04-25T01:00:00.000+00:00",
      "additionalProperties": {
        "myAdditionalValue1": "Important entity info",
        "myAdditionalValue2": "Some additional requirements"
      }
    }
  ],
  "page": 1,
  "limit": 10,
  "total_count": 10
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request FilesList
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Create a File

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/files \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/files',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "name": "My Document",
  "type": "pdf",
  "key": "1232123",
  "lastModified": "1588140000000",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/files',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/files', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/files', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

POST /files Try it out

Body parameter

{
  "name": "My Document",
  "type": "pdf",
  "key": "1232123",
  "lastModified": "1588140000000",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Parameters

Parameter In Type Required Description
body body File true none

Example responses

200 Response

{
  "name": "My Document",
  "type": "pdf",
  "key": "1232123",
  "lastModified": "1588140000000",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request File
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Info for a specific file

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/files/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/files/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/files/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/files/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/files/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

GET /files/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "name": "My Document",
  "type": "pdf",
  "key": "1232123",
  "lastModified": "1588140000000",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request File
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Update a specific file

Code samples

# You can also use wget
curl -X PUT https://api.sandbox.glassboardtech.com/#/files/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/files/{id}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/files/{id}',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.sandbox.glassboardtech.com/#/files/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.sandbox.glassboardtech.com/#/files/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

PUT /files/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "name": "My Document",
  "type": "pdf",
  "key": "1232123",
  "lastModified": "1588140000000",
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request File
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Delete a specific file

Code samples

# You can also use wget
curl -X DELETE https://api.sandbox.glassboardtech.com/#/files/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/files/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/files/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.sandbox.glassboardtech.com/#/files/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://api.sandbox.glassboardtech.com/#/files/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

DELETE /files/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
204 No Content Expected response to a valid request None
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Invites

Used for onboarding new users. The invite object can conveniently create all the objects required when a new user is created.

List invites

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/invites \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/invites',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/invites',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/invites', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/invites', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

List invites to which the authentication method has access.

Endpoint

GET /invites Try it out

Parameters

Parameter In Type Required Description
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 100, the default is 10.
page query integer(int32) false A cursor for use in pagination. startingIndex is an object ID that define your place in the list.

Example responses

200 Response

{
  "data": [
    {
      "ownerId": "321",
      "acceptableBy": "email",
      "invitedBy": {
        "email": "invited@by.com"
      },
      "invitedTo": [
        {
          "id": "123",
          "type": "deal",
          "relation": "subscription"
        }
      ],
      "createdAt": "2020-03-09T20:55:17.640+00:00",
      "acceptedAt": "2020-03-09T20:55:17.640+00:00",
      "updatedAt": "2020-03-09T20:55:17.640+00:00"
    }
  ],
  "page": 0,
  "limit": 0,
  "total_count": 0
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request InvitesList
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Create an Invite

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/invites \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/invites',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "acceptableBy": "email",
  "invitedBy": {
    "email": "invited@by.com"
  },
  "invitedTo": [
    {
      "id": "123",
      "type": "deal",
      "relation": "subscription"
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/invites',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/invites', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/invites', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

POST /invites Try it out

Body parameter

{
  "acceptableBy": "email",
  "invitedBy": {
    "email": "invited@by.com"
  },
  "invitedTo": [
    {
      "id": "123",
      "type": "deal",
      "relation": "subscription"
    }
  ]
}

Parameters

Parameter In Type Required Description
body body InviteRequest true none

Example responses

200 Response

{
  "ownerId": "321",
  "acceptableBy": "email",
  "invitedBy": {
    "email": "invited@by.com"
  },
  "invitedTo": [
    {
      "id": "123",
      "type": "deal",
      "relation": "subscription"
    }
  ],
  "createdAt": "2020-03-09T20:55:17.640+00:00",
  "acceptedAt": "2020-03-09T20:55:17.640+00:00",
  "updatedAt": "2020-03-09T20:55:17.640+00:00"
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Invite
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Get an invite

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/invites/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/invites/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/invites/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/invites/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/invites/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Get a single account by its id

Endpoint

GET /invites/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "ownerId": "321",
  "acceptableBy": "email",
  "invitedBy": {
    "email": "invited@by.com"
  },
  "invitedTo": [
    {
      "id": "123",
      "type": "deal",
      "relation": "subscription"
    }
  ],
  "createdAt": "2020-03-09T20:55:17.640+00:00",
  "acceptedAt": "2020-03-09T20:55:17.640+00:00",
  "updatedAt": "2020-03-09T20:55:17.640+00:00"
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Invite
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Update a specific invite

Code samples

# You can also use wget
curl -X PUT https://api.sandbox.glassboardtech.com/#/invites/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/invites/{id}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/invites/{id}',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.sandbox.glassboardtech.com/#/invites/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.sandbox.glassboardtech.com/#/invites/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

PUT /invites/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "ownerId": "321",
  "acceptableBy": "email",
  "invitedBy": {
    "email": "invited@by.com"
  },
  "invitedTo": [
    {
      "id": "123",
      "type": "deal",
      "relation": "subscription"
    }
  ],
  "createdAt": "2020-03-09T20:55:17.640+00:00",
  "acceptedAt": "2020-03-09T20:55:17.640+00:00",
  "updatedAt": "2020-03-09T20:55:17.640+00:00"
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Invite
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Delete a specific invite

Code samples

# You can also use wget
curl -X DELETE https://api.sandbox.glassboardtech.com/#/invites/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/invites/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/invites/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.sandbox.glassboardtech.com/#/invites/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://api.sandbox.glassboardtech.com/#/invites/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

DELETE /invites/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
204 No Content Expected response to a valid request None
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Accept an invite

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/invites/{id}/accept \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/invites/{id}/accept',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/invites/{id}/accept',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/invites/{id}/accept', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/invites/{id}/accept', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

POST /invites/{id}/accept Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
204 No Content Expected response to a valid request None
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Profiles

A Profile contains all the details for a individual, trust, joint account, etc. These profiles can be defined and used for a variety of purposes, such as, organizing deals, making investments, or creating assets. A profile is used to complete tasks such as generating documents and performing KYC/KYB

Create a Profile

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/profiles \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/profiles',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "profileType": "ORGANIZER",
  "stateOfFormation": "Texas",
  "countryOfFormation": "United States Of America",
  "legalName": "My Legal Name",
  "typeOfEntity": "LIMITED_LIABILITY_COMPANY",
  "firstName": "Kyle",
  "lastName": "Seager",
  "address": {
    "address1": "345 Orange Street",
    "address2": "Apartment 300",
    "city": "Dallas",
    "postalCode": 12345,
    "state": "Texas",
    "country": "United States Of America"
  },
  "phonenumber": "(212) 555-1234",
  "taxIdentification": {
    "registrationType": "ENTITY",
    "type": "ssn",
    "id": "2837893"
  },
  "isUSPerson": true,
  "passport": "2325235"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/profiles',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/profiles', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/profiles', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

A profiles can be used for a variety of purposes. Banking, KYC, or document generation.

Endpoint

POST /profiles Try it out

Body parameter

{
  "profileType": "ORGANIZER",
  "stateOfFormation": "Texas",
  "countryOfFormation": "United States Of America",
  "legalName": "My Legal Name",
  "typeOfEntity": "LIMITED_LIABILITY_COMPANY",
  "firstName": "Kyle",
  "lastName": "Seager",
  "address": {
    "address1": "345 Orange Street",
    "address2": "Apartment 300",
    "city": "Dallas",
    "postalCode": 12345,
    "state": "Texas",
    "country": "United States Of America"
  },
  "phonenumber": "(212) 555-1234",
  "taxIdentification": {
    "registrationType": "ENTITY",
    "type": "ssn",
    "id": "2837893"
  },
  "isUSPerson": true,
  "passport": "2325235"
}

Parameters

Parameter In Type Required Description
body body ProfileRequest true none

Example responses

200 Response

{
  "id": "1234567890",
  "ownerId": "1234567890",
  "profileType": "ORGANIZER",
  "stateOfFormation": "Texas",
  "countryOfFormation": "United States Of America",
  "legalName": "My Legal Name",
  "typeOfEntity": "LIMITED_LIABILITY_COMPANY",
  "firstName": "Kyle",
  "lastName": "Seager",
  "address": {
    "address1": "345 Orange Street",
    "address2": "Apartment 300",
    "city": "Dallas",
    "postalCode": 12345,
    "state": "Texas",
    "country": "United States Of America"
  },
  "phonenumber": "(212) 555-1234",
  "taxIdentification": {
    "registrationType": "ENTITY",
    "type": "ssn",
    "id": "2837893"
  },
  "isUSPerson": true,
  "passport": "2325235",
  "updatedAt": "2020-03-09T20:55:17.640+00:00",
  "deletedAt": "2020-03-09T20:55:17.640+00:00"
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Profile
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

List all Profiles

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/profiles \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/profiles',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/profiles',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/profiles', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/profiles', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

This endpoint lists all the profiles

Endpoint

GET /profiles Try it out

Parameters

Parameter In Type Required Description
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 100, the default is 10.

Example responses

200 Response

{
  "data": [
    {
      "id": "1234567890",
      "ownerId": "1234567890",
      "profileType": "ORGANIZER",
      "stateOfFormation": "Texas",
      "countryOfFormation": "United States Of America",
      "legalName": "My Legal Name",
      "typeOfEntity": "LIMITED_LIABILITY_COMPANY",
      "firstName": "Kyle",
      "lastName": "Seager",
      "address": {
        "address1": "345 Orange Street",
        "address2": "Apartment 300",
        "city": "Dallas",
        "postalCode": 12345,
        "state": "Texas",
        "country": "United States Of America"
      },
      "phonenumber": "(212) 555-1234",
      "taxIdentification": {
        "registrationType": "ENTITY",
        "type": "ssn",
        "id": "2837893"
      },
      "isUSPerson": true,
      "passport": "2325235",
      "updatedAt": "2020-03-09T20:55:17.640+00:00",
      "deletedAt": "2020-03-09T20:55:17.640+00:00"
    }
  ],
  "page": 1,
  "limit": 10,
  "total_count": 10
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request ProfilesList
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Info for a specific profile

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/profiles/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/profiles/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/profiles/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/profiles/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/profiles/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

GET /profiles/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "id": "1234567890",
  "ownerId": "1234567890",
  "profileType": "ORGANIZER",
  "stateOfFormation": "Texas",
  "countryOfFormation": "United States Of America",
  "legalName": "My Legal Name",
  "typeOfEntity": "LIMITED_LIABILITY_COMPANY",
  "firstName": "Kyle",
  "lastName": "Seager",
  "address": {
    "address1": "345 Orange Street",
    "address2": "Apartment 300",
    "city": "Dallas",
    "postalCode": 12345,
    "state": "Texas",
    "country": "United States Of America"
  },
  "phonenumber": "(212) 555-1234",
  "taxIdentification": {
    "registrationType": "ENTITY",
    "type": "ssn",
    "id": "2837893"
  },
  "isUSPerson": true,
  "passport": "2325235",
  "updatedAt": "2020-03-09T20:55:17.640+00:00",
  "deletedAt": "2020-03-09T20:55:17.640+00:00"
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Profile
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Update a specific profile

Code samples

# You can also use wget
curl -X PUT https://api.sandbox.glassboardtech.com/#/profiles/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/profiles/{id}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/profiles/{id}',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.sandbox.glassboardtech.com/#/profiles/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.sandbox.glassboardtech.com/#/profiles/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

PUT /profiles/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "id": "1234567890",
  "ownerId": "1234567890",
  "profileType": "ORGANIZER",
  "stateOfFormation": "Texas",
  "countryOfFormation": "United States Of America",
  "legalName": "My Legal Name",
  "typeOfEntity": "LIMITED_LIABILITY_COMPANY",
  "firstName": "Kyle",
  "lastName": "Seager",
  "address": {
    "address1": "345 Orange Street",
    "address2": "Apartment 300",
    "city": "Dallas",
    "postalCode": 12345,
    "state": "Texas",
    "country": "United States Of America"
  },
  "phonenumber": "(212) 555-1234",
  "taxIdentification": {
    "registrationType": "ENTITY",
    "type": "ssn",
    "id": "2837893"
  },
  "isUSPerson": true,
  "passport": "2325235",
  "updatedAt": "2020-03-09T20:55:17.640+00:00",
  "deletedAt": "2020-03-09T20:55:17.640+00:00"
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Profile
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Delete a specific profile

Code samples

# You can also use wget
curl -X DELETE https://api.sandbox.glassboardtech.com/#/profiles/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/profiles/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/profiles/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.sandbox.glassboardtech.com/#/profiles/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://api.sandbox.glassboardtech.com/#/profiles/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

DELETE /profiles/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
204 No Content Expected response to a valid request None
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Subscriptions

A Subscription is the investment into a Deal.

List all Subscriptions

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/subscriptions \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/subscriptions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/subscriptions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/subscriptions', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/subscriptions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

This endpoint lists all the subscriptions

Endpoint

GET /subscriptions Try it out

Parameters

Parameter In Type Required Description
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 100, the default is 10.

Example responses

200 Response

{
  "data": [
    {
      "name": "My LLC",
      "email": "llc@myllc.com",
      "type": "ENTITY",
      "status": "PENDING",
      "isDocsSigned": false,
      "isKycAmlPassed": false,
      "createdAt": "2020-04-23T01:00:00.000+00:00",
      "updatedAt": "2020-04-25T01:00:00.000+00:00",
      "additionalProperties": {
        "myAdditionalValue1": "Important entity info",
        "myAdditionalValue2": "Some additional requirements"
      }
    }
  ],
  "page": 0,
  "limit": 0,
  "total_count": 0
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request SubscriptionsList
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Create a Subscription

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/subscriptions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/subscriptions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "name": "My LLC",
  "email": "llc@myllc.com",
  "type": "ENTITY",
  "status": "PENDING",
  "isDocsSigned": false,
  "isKycAmlPassed": false,
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/subscriptions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/subscriptions', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/subscriptions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

POST /subscriptions Try it out

Body parameter

{
  "name": "My LLC",
  "email": "llc@myllc.com",
  "type": "ENTITY",
  "status": "PENDING",
  "isDocsSigned": false,
  "isKycAmlPassed": false,
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Parameters

Parameter In Type Required Description
body body SubscriptionRequest true none

Example responses

200 Response

{
  "name": "My LLC",
  "email": "llc@myllc.com",
  "type": "ENTITY",
  "status": "PENDING",
  "isDocsSigned": false,
  "isKycAmlPassed": false,
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Subscription
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Info for a specific subscription

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/subscriptions/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/subscriptions/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/subscriptions/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/subscriptions/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/subscriptions/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

GET /subscriptions/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "name": "My LLC",
  "email": "llc@myllc.com",
  "type": "ENTITY",
  "status": "PENDING",
  "isDocsSigned": false,
  "isKycAmlPassed": false,
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Subscription
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Update a specific subscription

Code samples

# You can also use wget
curl -X PUT https://api.sandbox.glassboardtech.com/#/subscriptions/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/subscriptions/{id}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/subscriptions/{id}',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.sandbox.glassboardtech.com/#/subscriptions/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','https://api.sandbox.glassboardtech.com/#/subscriptions/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

PUT /subscriptions/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "name": "My LLC",
  "email": "llc@myllc.com",
  "type": "ENTITY",
  "status": "PENDING",
  "isDocsSigned": false,
  "isKycAmlPassed": false,
  "createdAt": "2020-04-23T01:00:00.000+00:00",
  "updatedAt": "2020-04-25T01:00:00.000+00:00",
  "additionalProperties": {
    "myAdditionalValue1": "Important entity info",
    "myAdditionalValue2": "Some additional requirements"
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Subscription
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Delete a specific subscription

Code samples

# You can also use wget
curl -X DELETE https://api.sandbox.glassboardtech.com/#/subscriptions/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/subscriptions/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/subscriptions/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.sandbox.glassboardtech.com/#/subscriptions/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://api.sandbox.glassboardtech.com/#/subscriptions/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

DELETE /subscriptions/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
204 No Content Expected response to a valid request None
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Initiate a new ACH transfer

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/subscriptions/{id}/initiate-ach-transaction \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/subscriptions/{id}/initiate-ach-transaction',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/subscriptions/{id}/initiate-ach-transaction',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/subscriptions/{id}/initiate-ach-transaction', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/subscriptions/{id}/initiate-ach-transaction', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

POST /subscriptions/{id}/initiate-ach-transaction Try it out

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request None
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
422 Unprocessable Entity Cannot process request None
default Default Unexpected error Error

Users

User objects are a generic type that includes all users in the system

Info for a specific user

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/users/{id} \
  -H 'Accept: application/json'

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/users/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/users/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/users/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/users/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

GET /users/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "id": "string",
  "emailVerified": true,
  "requiredAction": [],
  "username": "string",
  "totp": true,
  "enabled": true
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request User
default Default Unexpected error Error

List all Users

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/users \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/users',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.sandbox.glassboardtech.com/#/users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/users', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/users', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

This endpoint lists all the users

Endpoint

GET /users Try it out

Parameters

Parameter In Type Required Description
limit query integer(int32) false A limit on the number of objects to be returned. Limit can range between 1 and 100, the default is 10.
page query integer(int32) false A cursor for use in pagination. startingIndex is an object ID that define your place in the list.

Example responses

200 Response

{
  "id": "string",
  "emailVerified": true,
  "requiredAction": [],
  "username": "string",
  "totp": true,
  "enabled": true
}

Responses

Status Meaning Description Schema
200 OK A paged array of users User
default Default Unexpected error Error

Response Headers

Status Header Type Format Description
200 x-next string A link to the next page of responses

Create a User

Code samples

# You can also use wget
curl -X POST https://api.sandbox.glassboardtech.com/#/users \
  -H 'Accept: application/json'

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/users',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/users',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.post('https://api.sandbox.glassboardtech.com/#/users', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','https://api.sandbox.glassboardtech.com/#/users', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

POST /users Try it out

Example responses

default Response

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "There was a problem",
    "code": "string",
    "details": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
201 Created Null response None
default Default Unexpected error Error

Delete user

Code samples

# You can also use wget
curl -X DELETE https://api.sandbox.glassboardtech.com/#/users/{id} \
  -H 'Accept: application/json'

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/users/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/users/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://api.sandbox.glassboardtech.com/#/users/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','https://api.sandbox.glassboardtech.com/#/users/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Endpoint

DELETE /users/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "id": "string",
  "emailVerified": true,
  "requiredAction": [],
  "username": "string",
  "totp": true,
  "enabled": true
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request User
400 Bad Request Invalid user id supplied None
404 Not Found User not found None
default Default Unexpected error Error

Webhooks

Webhooks

Get a webhook

Code samples

# You can also use wget
curl -X GET https://api.sandbox.glassboardtech.com/#/webhooks/{id} \
  -H 'Accept: application/json'

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.sandbox.glassboardtech.com/#/webhooks/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.sandbox.glassboardtech.com/#/webhooks/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.sandbox.glassboardtech.com/#/webhooks/{id}', params={

}, headers = headers)

print r.json()

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',

    );

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','https://api.sandbox.glassboardtech.com/#/webhooks/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

Get a single webhook by its id

Endpoint

GET /webhooks/{id} Try it out

Parameters

Parameter In Type Required Description
id path string true Unique identifier

Example responses

200 Response

{
  "_id": 123456,
  "url": "string",
  "enabled": true,
  "events": [
    "string"
  ],
  "token": "string",
  "href": "string"
}

Responses

Status Meaning Description Schema
200 OK Expected response to a valid request Webhook
400 Bad Request Invalid Request None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None
default Default Unexpected error Error

Data Definitions

Schemas

Account

id: 123456
ownerId: 123456
createdAt: '2020-04-23T01:00:00.000+00:00'
updatedAt: '2020-04-25T01:00:00.000+00:00'
additionalProperties:
  additionalValue1: An additional user defined value
  additionalValue2: Another additional user defined value

A representation of an financial account, usually some kind of bank account

Properties

Name Type Required Restrictions Description
id string false none A unique identifier for this object
ownerId string false none Identifier of the owner of this account
type string false none The type of account (e.g. Deposit, FBO, etc)
createdAt string false none The date the account object was created
updatedAt string false none The date the account object was updated
additionalProperties object\ null false none

AccountsList

data:
  - id: 123456
    ownerId: 123456
    createdAt: '2020-04-23T01:00:00.000+00:00'
    updatedAt: '2020-04-25T01:00:00.000+00:00'
    additionalProperties:
      additionalValue1: An additional user defined value
      additionalValue2: Another additional user defined value
page: 1
limit: 10
total_count: 10

A list of accounts.

Properties

Name Type Required Restrictions Description
data [Account] false none Account array
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Asset

name: My Company Asset
assetType: COMPANY
description: This company will be bringing interesting products to the market
dealId: '1234567890'
details:
  - heading: Section 1
    body: Details about this asset
  - heading: Section 2
    body: More details about this asset
team:
  - name: John Domnigo
    role: Manager
marketingAssets:
  slogan: A great opportunity
isPublic: false
assetUrl: www.asseturl.com
createdAt: '2020-04-23T01:00:00.000+00:00'
updatedAt: '2020-04-25T01:00:00.000+00:00'
additionalProperties:
  additionalValue1: An additional asset value
  additionalValue2: Another additional asset value

A representation of an asset. The Asset schema is flexible to be used for any investment type. Can be used to specify details of what investors are investing in.

Properties

Name Type Required Restrictions Description
id string true none A unique identifier for this object
name string true none The name of the asset
assetType string true none The asset type
description string false none The description of the asset
dealId string false none ID valud of the related Deal
isPublic boolean true none If true, this asset can be read by any user
details [DetailsSection] false none A flexible array of details sections for the asset
team [TeamMember] false none An array for team members responsible for the Asset
marketingAssets MarketingAssets false none A set of assets for branding and marketing
files [File] false none A list of files attached to this asset
assetUrl string false none Website for the assetk:w
createdAt string false none The date the asset object was created
updatedAt string false none The date the asset object was updated
additionalProperties object\ null false none

Enumerated Values

Property Value
assetType COMPANY
assetType REAL_ESTATE
assetType CRYPTOCURRENCY

AssetsList

data:
  - name: My Company Asset
    assetType: COMPANY
    description: This company will be bringing interesting products to the market
    dealId: '1234567890'
    details:
      - heading: Section 1
        body: Details about this asset
      - heading: Section 2
        body: More details about this asset
    team:
      - name: John Domnigo
        role: Manager
    marketingAssets:
      slogan: A great opportunity
    isPublic: false
    assetUrl: www.asseturl.com
    createdAt: '2020-04-23T01:00:00.000+00:00'
    updatedAt: '2020-04-25T01:00:00.000+00:00'
    additionalProperties:
      additionalValue1: An additional asset value
      additionalValue2: Another additional asset value
page: 1
limit: 10
total_count: 10

A list of assets.

Properties

Name Type Required Restrictions Description
data [Asset] false none Assets array
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Close

id: 123456

A representation of a close

Properties

Name Type Required Restrictions Description
id string false none A unique identifier for this object

ClosesList

data:
  - id: 123456
page: 0
limit: 0
total_count: 0

A list of closes.

Properties

Name Type Required Restrictions Description
data [Close] false none Closes array
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Company

type: FUND_MANAGER
firstName: Robert
lastName: Christensen
address:
  address1: 123 Main St.
  city: Salt Lake City
  state: Utah
  country: United States of America
  postalCode: '12345'
title: Mr.
email: rchristensen@email.com
phone: 801-123-1234
isEntity: true
entityInfo:
  name: My LLC
  stateOfFormation: Delaware
  countryOfFormation: United States of America
createdAt: '2020-05-05T01:00:00.000+00:00'
updatedAt: '2020-05-05T01:00:00.000+00:00'
additionalProperties:
  myAdditionalValue1: Important company info
  myAdditionalValue2: Some additional requirements

A representation of objects associated with the fund

Properties

Name Type Required Restrictions Description
_id string true none Company ID
ownerId any false none Owner ID
entityId Entity false none Entity ID
type string true none The type of the stock
name string false none The individuals first name
address object true none Address for individual
» address1 string false none none
» address2 string false none none
» city string false none none
» state string false none none
» country string false none none
» postalCode string false none none
title string false none none
email string false none none
phone string false none none
isEntity boolean false none none
entityInfo object false none none
» name string false none none
» stateOfFormation string false none none
» countryOfFormation string false none none
createdAt string false none The date the company object was created
updatedAt string false none The date the company object was updated
deletedAt string false none The date the company object was deleted
isDeleted boolean false none Whether or not the company object has been deleted
additionalProperties object false none Additional information for the company

Enumerated Values

Property Value
type FUND_MANAGER
type REGISTERED_AGENT

CompaniesList

data:
  - type: FUND_MANAGER
    firstName: Robert
    lastName: Christensen
    address:
      address1: 123 Main St.
      city: Salt Lake City
      state: Utah
      country: United States of America
      postalCode: '12345'
    title: Mr.
    email: rchristensen@email.com
    phone: 801-123-1234
    isEntity: true
    entityInfo:
      name: My LLC
      stateOfFormation: Delaware
      countryOfFormation: United States of America
    createdAt: '2020-05-05T01:00:00.000+00:00'
    updatedAt: '2020-05-05T01:00:00.000+00:00'
    additionalProperties:
      myAdditionalValue1: Important company info
      myAdditionalValue2: Some additional requirements
page: 0
limit: 0
total_count: 0

A list of companies.

Properties

Name Type Required Restrictions Description
data [Company] false none Company array
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Deal

id: 507f191e810c19729de860ea
name: My Deal
assetUrl: www.asseturl.com
portfolioCompanyName: My Portfolio Company
portfolioCompanyState: Delaware
portfolioCompanyEntityType: C_CORPORATION
raiseAmount: 300000
securityType: COMMON_STOCK
estimatedCloseDate: 10/10/2020
minInvestmentAmount: 50000
carryPerentage: 20
portfolioCompanyContact:
  firstName: John
  lastName: Doe
  email: johndoe@email.com
status: PENDING
createdAt: '2020-04-23T01:00:00.000+00:00'
updatedAt: '2020-04-25T01:00:00.000+00:00'
additionalProperties:
  myAdditionalValue1: Important deal info
  myAdditionalValue2: Some additional requirements

The deal object represents an offering or opportunity for investors. A deal is managed by an organizer.

Properties

Name Type Required Restrictions Description
id string true none Deal ID
entityId Entity false none Entity ID
name string true none The name of the deal
assetUrl string false none Website for the asset being purcahse
portfolioCompanyName string true none The name of the portfolio company
portfolioCompanyState string false none The state the portfolio company was formed in
portfolioCompanyEntity string false none The entity type of the portfolio company
companyMarketSector string false none The market sector of the company
raiseAmount integer(int32) true none Amount being raised for the deal
securityType string false none The type of the stock
isManagmentFee boolean false none Whether or not a managment fee will be used
managementFeePercentage integer(int32) false none The management fee percentage
collectionTimeframe string false none The frequency the management fee will be withdrawn for the duration of fees
durationOfFees integer(int32) false none The amount of time the management fee will be withdrawn
estimatedCloseDate string false none Estimated date of deal close
minInvestmentAmount integer(int32) true none Minimum amount required to participate in the deal
previouslyRaisedAmount integer(int32) false none Amount already raised, perhaps on a different platform
carryPercentage integer(int32) false none The carry percentage for the organizer
portfolioCompanyContact object false none Contact for the portfolio company
» firstName string false none none
» lastName string false none none
» email string false none none
status string true none The status of the deals progress
createdAt string true none The date the deal object was created
updatedAt string true none The date the deal object was updated
additionalProperties object\ null false none

Enumerated Values

Property Value
portfolioCompanyEntity LIMITED_LIABILITY_COMPANY
portfolioCompanyEntity LIMITED_PARTNERSHIP
portfolioCompanyEntity C_CORPORATION
portfolioCompanyEntity S_CORPORATION
portfolioCompanyEntity FOREIGN_ENTITY
companyMarketSector COMMUNICATION_SERVICES
companyMarketSector CONSUMER_DISCRETIONARY
companyMarketSector CONSUMER_STAPLES
companyMarketSector ENERGY
companyMarketSector FINANCIALS
companyMarketSector HEALTHCARE
companyMarketSector INDUSTRIALS
companyMarketSector INFORMATION_TECHNOLOGY
companyMarketSector MATERIALS
companyMarketSector REAL_ESTATE
companyMarketSector UTILITIES
securityType COMMON_STOCK
securityType PREFERRED_STOCK
securityType CONVERTIBLE_PROMISSORY_NOTE
securityType SAFE
securityType SAFT
securityType SAFE-T
securityType LLC_MEMBERSHIP_UNITS
securityType LP_MEMBERSHIP_UNITS
securityType CRYPTOCURENCY
securityType OTHER
collectionTimeframe UP_FRONT
collectionTimeframe ANNUALLY
collectionTimeframe QUARTERLY
collectionTimeframe MONTHLY
status PENDING
status ONBOARDING
status CLOSING
status CLOSED

DealsList

data:
  - id: 507f191e810c19729de860ea
    name: My Deal
    assetUrl: www.asseturl.com
    portfolioCompanyName: My Portfolio Company
    portfolioCompanyState: Delaware
    portfolioCompanyEntityType: C_CORPORATION
    raiseAmount: 300000
    securityType: COMMON_STOCK
    estimatedCloseDate: 10/10/2020
    minInvestmentAmount: 50000
    carryPerentage: 20
    portfolioCompanyContact:
      firstName: John
      lastName: Doe
      email: johndoe@email.com
    status: PENDING
    createdAt: '2020-04-23T01:00:00.000+00:00'
    updatedAt: '2020-04-25T01:00:00.000+00:00'
    additionalProperties:
      myAdditionalValue1: Important deal info
      myAdditionalValue2: Some additional requirements
page: 1
limit: 10
total_count: 10

List of deals

Properties

Name Type Required Restrictions Description
data [Deal] false none Deals
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Entity

id: 507f191e810c19729de860ea
name: 'Series 001, a seres of My LLC'
entityType: LIMITED_LIABILITY_COMPANY
countryOfFormation: United States of America
stateOfFormation: Delaware
ein: 12-3456789
entityDocuments:
  operatingAgreement: 507f191e810c19729de860ea
  privatePlacementMemorandum: 507f191e810c19729de860eb
  subscriptionAgreement: 507f191e810c19729de860ec
createdAt: '2020-04-23T01:00:00.000+00:00'
updatedAt: '2020-04-25T01:00:00.000+00:00'
additionalProperties:
  myAdditionalValue1: Important entity info
  myAdditionalValue2: Some additional requirements

A representation of an entity

Properties

Name Type Required Restrictions Description
id string false none A unique identifier for this object
dealId Deal false none Deal ID
name string true none The name of the entity
entityType string true none The type of the entity
countryOfFormation string true none The country the entity was formed in
stateOfFormation string false none The state the entity was formed in
entityDocuments object false none References to the file ids for the entity
» operatingAgreement File false none The ID of the operating agreement document
» privatePlacementMemorandum File false none The ID of the PPM document
» subscriptionAgreement File false none The ID of the subscription agreement document
ein string false none The status of the entities progress
createdAt string true none The date the entity object was created
updatedAt string true none The date the entity object was updated
additionalProperties object false none Additional information for the entity

Enumerated Values

Property Value
entityType LIMITED_LIABILITY_COMPANY
entityType LIMITED_PARTNERSHIP

EntitiesList

data:
  - id: 507f191e810c19729de860ea
    name: 'Series 001, a seres of My LLC'
    entityType: LIMITED_LIABILITY_COMPANY
    countryOfFormation: United States of America
    stateOfFormation: Delaware
    ein: 12-3456789
    entityDocuments:
      operatingAgreement: 507f191e810c19729de860ea
      privatePlacementMemorandum: 507f191e810c19729de860eb
      subscriptionAgreement: 507f191e810c19729de860ec
    createdAt: '2020-04-23T01:00:00.000+00:00'
    updatedAt: '2020-04-25T01:00:00.000+00:00'
    additionalProperties:
      myAdditionalValue1: Important entity info
      myAdditionalValue2: Some additional requirements
page: 1
limit: 10
total_count: 10

A list of entities.

Properties

Name Type Required Restrictions Description
data [Entity] false none Entity array
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

File

name: My Document
type: pdf
key: '1232123'
lastModified: '1588140000000'
createdAt: '2020-04-23T01:00:00.000+00:00'
updatedAt: '2020-04-25T01:00:00.000+00:00'
additionalProperties:
  myAdditionalValue1: Important entity info
  myAdditionalValue2: Some additional requirements

A representation of a file

Properties

Name Type Required Restrictions Description
id string false none A unique identifier for this object
name string true none The name of the file
size string false none The size of the file
type string true none The type of the file
key string true none The file key for downloading
lastModified string false none The number of milliseconds since the Unix epoch
createdAt string true none The date the file object was created
updatedAt string true none The date the file object was updated
additionalProperties object false none Additional information for the entity

FilesList

data:
  - name: My Document
    type: pdf
    key: '1232123'
    lastModified: '1588140000000'
    createdAt: '2020-04-23T01:00:00.000+00:00'
    updatedAt: '2020-04-25T01:00:00.000+00:00'
    additionalProperties:
      myAdditionalValue1: Important entity info
      myAdditionalValue2: Some additional requirements
page: 1
limit: 10
total_count: 10

A list of files.

Properties

Name Type Required Restrictions Description
data [File] false none File array
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Invite

ownerId: '321'
acceptableBy: email
invitedBy:
  email: invited@by.com
invitedTo:
  - id: '123'
    type: deal
    relation: subscription
createdAt: '2020-03-09T20:55:17.640+00:00'
acceptedAt: '2020-03-09T20:55:17.640+00:00'
updatedAt: '2020-03-09T20:55:17.640+00:00'

An invitation for a user to join the platform.

Properties

Name Type Required Restrictions Description
id string false none A unique identifier for this object
ownerId string false none Owner ID
acceptableBy string false none Email address
invitedBy User false none none
invitedTo [object] false none Items included in the invitation
» id string false none none
» type string false none none
» relation string false none none
createdAt string(date-time) false none The date and time the invite was initially created
updatedAt string(date-time) false none The date and time the invite was updated
acceptedAt string(date-time) false none The date and time the invite was accepted
deletedAt string(date-time) false none The date and time the invite was deleted

InvitesList

data:
  - ownerId: '321'
    acceptableBy: email
    invitedBy:
      email: invited@by.com
    invitedTo:
      - id: '123'
        type: deal
        relation: subscription
    createdAt: '2020-03-09T20:55:17.640+00:00'
    acceptedAt: '2020-03-09T20:55:17.640+00:00'
    updatedAt: '2020-03-09T20:55:17.640+00:00'
page: 0
limit: 0
total_count: 0

A list of invites.

Properties

Name Type Required Restrictions Description
data [Invite] false none Invite array
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Profile

id: '1234567890'
ownerId: '1234567890'
profileType: ORGANIZER
stateOfFormation: Texas
countryOfFormation: United States Of America
legalName: My Legal Name
typeOfEntity: LIMITED_LIABILITY_COMPANY
firstName: Kyle
lastName: Seager
address:
  address1: 345 Orange Street
  address2: Apartment 300
  city: Dallas
  postalCode: 12345
  state: Texas
  country: United States Of America
phonenumber: (212) 555-1234
taxIdentification:
  registrationType: ENTITY
  type: ssn
  id: '2837893'
isUSPerson: true
passport: '2325235'
updatedAt: '2020-03-09T20:55:17.640+00:00'
deletedAt: '2020-03-09T20:55:17.640+00:00'

A representation of a profile

Properties

Name Type Required Restrictions Description
id string true none Profile ID
ownerId string false none Owner's ID value
profileType string false none The type of profile
stateOfFormation string false none The state of formation of the profile
countryOfFormation string false none The country of formation of the profile
legalName string false none The legal name of the profile
typeOfEntity string false none The type of the profile if entity
firstName string false none The first name of the profile owner
lastName string false none The last name of the profile owner
address object false none The address for the profile
» address1 string false none none
» address2 string false none none
» city string false none none
» state string false none none
» postalCode string false none none
» country string false none none
phone string false none The phone number of the profile owner
dateOfBirth string(date-time) false none The date of birth for an individual investor profile
dateOfFormation string(date-time) false none The date of formation for an entity investor profile
email string false none The email for the profile holder
taxDetails object false none The tax information for the profile
» registrationType string false none The registration type of the profile
» taxIdentification object false none none
»» type string false none The type of the tax ID.
»» id string false none The value of the tax identification type
» isUSBased boolean false none Whether the profile owner is a US based or not
» isSingleMemberLLC boolean false none Is the entity a single member LLC?
» primarySignatory Signer false none The primary signer for the investor profile
» additionalSignatories [Signer] false none Additional signers of the investor profile
» beneficialOwners [Signer] false none Beneficial owners of the profile
» createdAt string(date-time) false none The date the profile was initially created
» updatedAt string(date-time) false none The date the profile was updated

Enumerated Values

Property Value
profileType ORGANIZER
profileType INVESTOR
typeOfEntity LIMITED_LIABILITY_COMPANY
typeOfEntity LIMITED_PARTNERSHIP
typeOfEntity C_CORPORATION
typeOfEntity S_CORPORATION
typeOfEntity GENERAL_PARTNERSHIP
typeOfEntity FOREIGN_ENTITY
registrationType INDIVIDUAL
registrationType ENTITY
registrationType TRUST
registrationType JOINT
type ssn
type itin
type ein
type ftin
type giin

ProfilesList

data:
  - id: '1234567890'
    ownerId: '1234567890'
    profileType: ORGANIZER
    stateOfFormation: Texas
    countryOfFormation: United States Of America
    legalName: My Legal Name
    typeOfEntity: LIMITED_LIABILITY_COMPANY
    firstName: Kyle
    lastName: Seager
    address:
      address1: 345 Orange Street
      address2: Apartment 300
      city: Dallas
      postalCode: 12345
      state: Texas
      country: United States Of America
    phonenumber: (212) 555-1234
    taxIdentification:
      registrationType: ENTITY
      type: ssn
      id: '2837893'
    isUSPerson: true
    passport: '2325235'
    updatedAt: '2020-03-09T20:55:17.640+00:00'
    deletedAt: '2020-03-09T20:55:17.640+00:00'
page: 1
limit: 10
total_count: 10

List of profiles

Properties

Name Type Required Restrictions Description
data [Profile] false none Profiles
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Signer

id: string
firstName: string
lastName: string
title: string
isUSPerson: true
address:
  address1: string
  address2: string
  city: string
  state: string
  postalCode: string
  country: string
phone: string
email: string
taxIdentification:
  type: string
  id: string
dateOfBirth: '2020-12-10T10:12:57Z'
passport: string

A representation of a signer

Properties

Name Type Required Restrictions Description
id string true none Signer ID
firstName string false none The first name of the signer
lastName string false none The last name of the signer
title string false none The title of the signer
isUSPerson boolean false none Whether the signer is a us person or not
address object false none The address for the signer
» address1 string false none none
» address2 string false none none
» city string false none none
» state string false none none
» postalCode string false none none
» country string false none none
phone string false none The phone number of the signer
email string false none The email for the signer
taxIdentification object false none The tax information for the signer
» type string false none The type of the tax ID. Valid options include ssn, social_insurance (UK), tax_id, identity_card and driving_licence
» id string false none The value of the tax identification type
dateOfBirth string(date-time) false none The date of birth
passport string false none The passport number of the signer

Subscription

name: My LLC
email: llc@myllc.com
type: ENTITY
status: PENDING
isDocsSigned: false
isKycAmlPassed: false
createdAt: '2020-04-23T01:00:00.000+00:00'
updatedAt: '2020-04-25T01:00:00.000+00:00'
additionalProperties:
  myAdditionalValue1: Important entity info
  myAdditionalValue2: Some additional requirements

A representation of a subscription

Properties

Name Type Required Restrictions Description
_id string true none A unique identifier for this object
name string true none The name on the subscription
email string true none The email for the primary contact on the subscription
type string true none The type of subscription
status string true none The status of the subscription
amount integer(int32) false none The amount of the subscription
reconciledAmount integer(int32) false none The actual subscription amount received
wireConfirmation string false none The wire confirmation number for the transaction
isDocsSigned boolean true none Whether or not the documents have been signed
isKycAmlPassed boolean true none Whether or the subscriber has passed a KYC/AML check
packageId string false none The ID for the signing package
signers [allOf] false none An array of signers for the subscription
wiringBank object false none The wiring bank used to send the subscription amount
documents object false none The documents for the subscription
» capitalAccountStatement string false none The active capital account statement
» historicalCapitalAccountStatements [string] false none An array of all previous capital account statements
» signerOneOASigPage string false none The operating agreement signature page for the first signer
» signerTwoOASigPage string false none The operating agreement signature page for the second signer
» investorSASigPage string false none The subscription agreement signature page
» signerOneTaxDoc string false none The first signers tax document
» signerTwoTaxDoc string false none The second signers tax document
» mergedSignerOneOA string false none The first signers signature page appended to the operation agreement
» mergedSignerTwoOA string false none The second signers signature page appended to the mergedSignerOneOA
» mergedInvestorSA string false none The first signers signature page appended to the subscription agreement
» mergedCounterSignedOA string false none The complete operating agreement with all neccessary signatures
» mergedCounterSignedSA string false none The complete subscription agreement with all neccessary signatures
createdAt string true none The date the file object was created
updatedAt string true none The date the file object was updated
additionalProperties object false none Additional information for the entity

Enumerated Values

Property Value
type INDIVIDUAL
type TRUST
type ENTITY
type JOINT
status PENDING
status COMMITTED
status COMPLETED
status CLOSED
status CANCELLED
status TRANSFERRED

SubscriptionsList

data:
  - name: My LLC
    email: llc@myllc.com
    type: ENTITY
    status: PENDING
    isDocsSigned: false
    isKycAmlPassed: false
    createdAt: '2020-04-23T01:00:00.000+00:00'
    updatedAt: '2020-04-25T01:00:00.000+00:00'
    additionalProperties:
      myAdditionalValue1: Important entity info
      myAdditionalValue2: Some additional requirements
page: 0
limit: 0
total_count: 0

A list of subscriptions

Properties

Name Type Required Restrictions Description
data [Subscription] false none Subscription array
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Transaction

id: 123456
ownerId: 123456
createdAt: '2020-04-23T01:00:00.000+00:00'
updatedAt: '2020-04-25T01:00:00.000+00:00'
additionalProperties:
  additionalValue1: An additional user defined value
  additionalValue2: Another additional user defined value

A representation of an financial transaction

Properties

Name Type Required Restrictions Description
id string false none A unique identifier for this object
transactionId string false none none
accountId string false none none
amount number false none none
direction string false none none
type string false none none
status string false none none
createdAt string false none The date the account object was created
updatedAt string false none The date the account object was updated
additionalProperties object\ null false none

User

id: string
emailVerified: true
requiredAction: []
username: string
totp: true
enabled: true

Properties

Name Type Required Restrictions Description
id string false none none
emailVerified boolean false none none
requiredAction array false none none
username string false none none
totp boolean false none none
enabled boolean false none none

UsersList

data:
  - id: string
    emailVerified: true
    requiredAction: []
    username: string
    totp: true
    enabled: true
page: 0
limit: 0
total_count: 0

A list of users.

Properties

Name Type Required Restrictions Description
data [User] false none User array
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Webhook

_id: 123456
url: string
enabled: true
events:
  - string
token: string
href: string

A representation of a webhook

Properties

Name Type Required Restrictions Description
_id string false none A unique identifier for this object
url string false none The url to listen to notifications
enabled boolean false none Determines if the webhook should be active.
events [string] false none The events that should be published to the webhook.
token string false none The webhook token used to verify the request.
href string false none The URI of this resource.

WebhooksList

data:
  - _id: 123456
    url: string
    enabled: true
    events:
      - string
    token: string
    href: string
page: 0
limit: 0
total_count: 0

A list of webhooks.

Properties

Name Type Required Restrictions Description
data [Webhook] false none Webbhook array
page integer(int64) false none The current page of results
limit integer(int64) false none The number or results per page
total_count integer(int64) false none The total number of results

Error

error:
  statusCode: 500
  name: Error
  message: There was a problem
  code: string
  details:
    - string

Properties

Name Type Required Restrictions Description
error object true none none
» statusCode integer(int32) true none none
» name string true none none
» message string true none none
» code string false none none
» details [string] false none none

Token

access_token: string
expires_at: 0
refresh_expires_in: 0
refresh_token: string
token_type: string
not-before-policy: 0
session_state: string
scope: string

Basic authorization token

Properties

Name Type Required Restrictions Description
access_token string false read-only none
expires_at integer false read-only none
refresh_expires_in integer false read-only none
refresh_token string false read-only none
token_type string false read-only none
not-before-policy integer false read-only none
session_state string false read-only none
scope string false read-only none

DealRequest

name: My Deal
assetUrl: www.asseturl.com
portfolioCompanyName: My Portfolio Company
portfolioCompanyState: Delaware
portfolioCompanyEntityType: C_CORPORATION
raiseAmount: 300000
securityType: COMMON_STOCK
estimatedCloseDate: 10/10/2020
minInvestmentAmount: 50000
carryPerentage: 20
portfolioCompanyContact:
  firstName: John
  lastName: Doe
  email: johndoe@email.com
status: PENDING
additionalProperties:
  myAdditionalValue1: Important deal info
  myAdditionalValue2: Some additional requirements

The deal request

Properties

Name Type Required Restrictions Description
entityId Entity false none Entity ID
name string true none The name of the deal
assetUrl string false none Website for the asset being purcahse
portfolioCompanyName string true none The name of the portfolio company
portfolioCompanyState string false none The state the portfolio company was formed in
portfolioCompanyEntity string false none The entity type of the portfolio company
companyMarketSector string false none The market sector of the company
raiseAmount integer(int32) true none Amount being raised for the deal
securityType string false none The type of the stock
isManagmentFee boolean false none Whether or not a managment fee will be used
managementFeePercentage integer(int32) false none The management fee percentage
collectionTimeframe string false none The frequency the management fee will be withdrawn for the duration of fees
durationOfFees integer(int32) false none The amount of time the management fee will be withdrawn
estimatedCloseDate string false none Estimated date of deal close
minInvestmentAmount integer(int32) true none Minimum amount required to participate in the deal
previouslyRaisedAmount integer(int32) false none Amount already raised, perhaps on a different platform
carryPercentage integer(int32) false none The carry percentage for the organizer
portfolioCompanyContact object false none Contact for the portfolio company
» firstName string false none none
» lastName string false none none
» email string false none none
status string true none The status of the deals progress
additionalProperties object\ null false none

Enumerated Values

Property Value
portfolioCompanyEntity LIMITED_LIABILITY_COMPANY
portfolioCompanyEntity LIMITED_PARTNERSHIP
portfolioCompanyEntity C_CORPORATION
portfolioCompanyEntity S_CORPORATION
portfolioCompanyEntity FOREIGN_ENTITY
companyMarketSector COMMUNICATION_SERVICES
companyMarketSector CONSUMER_DISCRETIONARY
companyMarketSector CONSUMER_STAPLES
companyMarketSector ENERGY
companyMarketSector FINANCIALS
companyMarketSector HEALTHCARE
companyMarketSector INDUSTRIALS
companyMarketSector INFORMATION_TECHNOLOGY
companyMarketSector MATERIALS
companyMarketSector REAL_ESTATE
companyMarketSector UTILITIES
securityType COMMON_STOCK
securityType PREFERRED_STOCK
securityType CONVERTIBLE_PROMISSORY_NOTE
securityType SAFE
securityType SAFT
securityType SAFE-T
securityType LLC_MEMBERSHIP_UNITS
securityType LP_MEMBERSHIP_UNITS
securityType CRYPTOCURENCY
securityType OTHER
collectionTimeframe UP_FRONT
collectionTimeframe ANNUALLY
collectionTimeframe QUARTERLY
collectionTimeframe MONTHLY
status PENDING
status ONBOARDING
status CLOSING
status CLOSED

EntityRequest

id: 507f191e810c19729de860ea
name: 'Series 001, a seres of My LLC'
entityType: LIMITED_LIABILITY_COMPANY
countryOfFormation: United States of America
stateOfFormation: Delaware
ein: 12-3456789
entityDocuments:
  operatingAgreement: 507f191e810c19729de860ea
  privatePlacementMemorandum: 507f191e810c19729de860eb
  subscriptionAgreement: 507f191e810c19729de860ec
createdAt: '2020-04-23T01:00:00.000+00:00'
updatedAt: '2020-04-25T01:00:00.000+00:00'
additionalProperties:
  myAdditionalValue1: Important entity info
  myAdditionalValue2: Some additional requirements

A representation of an entity

Properties

Name Type Required Restrictions Description
dealId Deal false none Deal ID
name string true none The name of the entity
entityType string true none The type of the entity
countryOfFormation string true none The country the entity was formed in
stateOfFormation string false none The state the entity was formed in
entityDocuments object false none References to the file ids for the entity
» operatingAgreement File false none The ID of the operating agreement document
» privatePlacementMemorandum File false none The ID of the PPM document
» subscriptionAgreement File false none The ID of the subscription agreement document
ein string false none The status of the entities progress
createdAt string true none The date the entity object was created
updatedAt string true none The date the entity object was updated
additionalProperties object false none Additional information for the entity

Enumerated Values

Property Value
entityType LIMITED_LIABILITY_COMPANY
entityType LIMITED_PARTNERSHIP

ProfileRequest

profileType: ORGANIZER
stateOfFormation: Texas
countryOfFormation: United States Of America
legalName: My Legal Name
typeOfEntity: LIMITED_LIABILITY_COMPANY
firstName: Kyle
lastName: Seager
address:
  address1: 345 Orange Street
  address2: Apartment 300
  city: Dallas
  postalCode: 12345
  state: Texas
  country: United States Of America
phonenumber: (212) 555-1234
taxIdentification:
  registrationType: ENTITY
  type: ssn
  id: '2837893'
isUSPerson: true
passport: '2325235'

A representation of a profile request

Properties

Name Type Required Restrictions Description
profileType string false none The type of profile
stateOfFormation string false none The state of formation of the profile
countryOfFormation string false none The country of formation of the profile
legalName string false none The legal name of the profile
typeOfEntity string false none The type of the profile if entity
firstName string false none The first name of the profile owner
lastName string false none The last name of the profile owner
address object false none The address for the profile
» address1 string false none none
» address2 string false none none
» city string false none none
» state string false none none
» postalCode string false none none
» country string false none none
phone string false none The phone number of the profile owner
dateOfBirth string(date-time) false none The date of birth for an individual investor profile
dateOfFormation string(date-time) false none The date of formation for an entity investor profile
email string false none The email for the profile holder
taxDetails object false none The tax information for the profile
» registrationType string false none The registration type of the profile
» taxIdentification object false none none
»» type string false none The type of the tax ID.
»» id string false none The value of the tax identification type
» isUSBased boolean false none Whether the profile owner is a US based or not
» isSingleMemberLLC boolean false none Is the entity a single member LLC?
» primarySignatory Signer false none The primary signer for the investor profile
» additionalSignatories [Signer] false none Additional signers of the investor profile
» beneficialOwners [Signer] false none Beneficial owners of the profile

Enumerated Values

Property Value
profileType ORGANIZER
profileType INVESTOR
typeOfEntity LIMITED_LIABILITY_COMPANY
typeOfEntity LIMITED_PARTNERSHIP
typeOfEntity C_CORPORATION
typeOfEntity S_CORPORATION
typeOfEntity GENERAL_PARTNERSHIP
typeOfEntity FOREIGN_ENTITY
registrationType INDIVIDUAL
registrationType ENTITY
registrationType TRUST
registrationType JOINT
type ssn
type itin
type ein
type ftin
type giin

InviteRequest

acceptableBy: email
invitedBy:
  email: invited@by.com
invitedTo:
  - id: '123'
    type: deal
    relation: subscription

An invitation request

Properties

Name Type Required Restrictions Description
acceptableBy string false none Email address
invitedBy User false none none
invitedTo [object] false none Items included in the invitation
» id string false none none
» type string false none none
» relation string false none none

DetailsSection

heading: Company Management
body: 'The management has extensive experience, and a successful track record'

A details section used to provide specific descriptions.

Properties

Name Type Required Restrictions Description
heading string true none Heading for a details section
body string true none The body content for a details section

TeamMember

name: Gladys H. Smith
role: Founder & CEO
linkedInUrl: 'https://www.linkedin.com/in/gladyshsmith1299'
image: string

The details of a person connected to an Asset

Properties

Name Type Required Restrictions Description
name string true none The name of the team member
role string false none The team member's role in relation to the asset
linkedInUrl string false none A link to the team member's LinkedIn profile
image string false none A profile image

MarketingAssets

slogan: The best you can get
logo: string
banner: string

A set of assets for branding and marketing

Properties

Name Type Required Restrictions Description
slogan string false none A single tag line
logo string false none A logo image
banner string false none A banner image

AssetRequest

name: My Company Asset
assetType: COMPANY
description: This company will be bringing interesting products to the market
dealId: '1234567890'
details:
  - heading: Section 1
    body: Details about this asset
  - heading: Section 2
    body: More details about this asset
team:
  - name: John Domnigo
    role: Manager
marketingAssets:
  slogan: A great opportunity
isPublic: false
assetUrl: www.asseturl.com
additionalProperties:
  additionalValue1: An additional asset value
  additionalValue2: Another additional asset value

A representation of an asset request.

Properties

Name Type Required Restrictions Description
name string true none The name of the asset
assetType string true none The asset type
description string false none The description of the asset
dealId string false none ID valud of the related Deal
isPublic boolean true none If true, this asset can be read by any user
details [DetailsSection] false none A flexible array of details sections for the asset
team [TeamMember] false none An array for team members responsible for the Asset
marketingAssets MarketingAssets false none A set of assets for branding and marketing
files [File] false none A list of files attached to this asset
assetUrl string false none Website for the assetk:w
additionalProperties object\ null false none

Enumerated Values

Property Value
assetType COMPANY
assetType REAL_ESTATE
assetType CRYPTOCURRENCY

SubscriptionRequest

name: My LLC
email: llc@myllc.com
type: ENTITY
status: PENDING
isDocsSigned: false
isKycAmlPassed: false
additionalProperties:
  myAdditionalValue1: Important entity info
  myAdditionalValue2: Some additional requirements

A representation of a subscription request

Properties

Name Type Required Restrictions Description
name string true none The name on the subscription
email string true none The email for the primary contact on the subscription
type string true none The type of subscription
status string true none The status of the subscription
amount integer(int32) false none The amount of the subscription
reconciledAmount integer(int32) false none The actual subscription amount received
wireConfirmation string false none The wire confirmation number for the transaction
isDocsSigned boolean true none Whether or not the documents have been signed
isKycAmlPassed boolean true none Whether or the subscriber has passed a KYC/AML check
packageId string false none The ID for the signing package
signers [allOf] false none An array of signers for the subscription
wiringBank object false none The wiring bank used to send the subscription amount
documents object false none The documents for the subscription
» capitalAccountStatement string false none The active capital account statement
» historicalCapitalAccountStatements [string] false none An array of all previous capital account statements
» signerOneOASigPage string false none The operating agreement signature page for the first signer
» signerTwoOASigPage string false none The operating agreement signature page for the second signer
» investorSASigPage string false none The subscription agreement signature page
» signerOneTaxDoc string false none The first signers tax document
» signerTwoTaxDoc string false none The second signers tax document
» mergedSignerOneOA string false none The first signers signature page appended to the operation agreement
» mergedSignerTwoOA string false none The second signers signature page appended to the mergedSignerOneOA
» mergedInvestorSA string false none The first signers signature page appended to the subscription agreement
» mergedCounterSignedOA string false none The complete operating agreement with all neccessary signatures
» mergedCounterSignedSA string false none The complete subscription agreement with all neccessary signatures
additionalProperties object false none Additional information for the entity

Enumerated Values

Property Value
type INDIVIDUAL
type TRUST
type ENTITY
type JOINT
status PENDING
status COMMITTED
status COMPLETED
status CLOSED
status CANCELLED
status TRANSFERRED

Errors

The Glassboard API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The asset requested is hidden for administrators only.
404 Not Found -- The specified asset could not be found.
405 Method Not Allowed -- You tried to access a asset with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone -- The asset requested has been removed from our servers.
422 Unprocessable Entity -- The server can't process this request
429 Too Many Requests -- You're requesting too many assets! Slow down!
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.