VENTURE.co API Documentation

Documentation to support developers wanting to integrate with the VENTURE.co investment platform.

Welcome to VENTURE.co API Documentation

This documentation targets developers who are looking to integrate with the VENTURE.co API for processing investments. Please check out the navigation to get started, we recommend that you start off with ‘Authentication’ if you’re just getting started.

General API Information

Client Credentials

To get started working with the VENTURE.co API you must create an OAuth application on the VENTURE.co platform. Currently this is a manually reviewed and implemented process; if you are looking to create an OAuth application on the VENTURE.co platform please contact charles@venture.co to get started.

Upon creation of the OAuth application you’ll receive 2 pieces of information; a client_id and a client_secret. The client id is used as an identifier in certain requests and the client secret is used in server-to-server communication to verify the request is happening from the appropriate client.

If a request requires the client secret it will be explicitly requested in the documentation, otherwise it is a good practice to not send this information.

You MUST NOT send your client_secret in GET requests or anything that is exposed to a front-end client or browser. This is sensitive information that MUST NOT be exposed except for direct server-to-server communications.

Endpoints

Production URL:
https://designbook-api-production.herokuapp.com/v2

Staging URL:
http://designbook-api-staging.herokuapp.com/v2

Response Types

Virtually all responses will be returned as JSON, regardless of any headers set in your request. There are exceptions to this rule, one example is downloading of documents. When the document is downloaded the content type will be appropriate for the type of file being consumed. Additionally not all responses will return a body and may respond simply with a 204 and a 0-length body.

JSON Format

Most responses are returned in Active Model Serializer format. For example, if you are dealing with the Investment resource the root for a single object and a collection would appear as follows.

Single:

{
  "investment": {
    "id": "#######",
    ...
  }
}

Collection:

{
  "investments": [
    {
      "id": "######",
      ...
    },
    {
      ...
    }
  ]
}

Sideloading

Several resource associations will be sideloaded with the resource they are associated to. For example, a Product has Assets associated to it including a cover image and a logo. For the Product endpoints the response will look similar to the following.

{
  "asset": [
    {"id": 1234, "file_type": "logo"}, {"id": 9876, "file_type": "cover-image"}
  ],
  "product": {
    "id": 6543,
    "asset_ids": [1234, 9876]
  }
}