Canoe Intelligence Allocations API

The Allocations API from Canoe Intelligence — 2 operation(s) for allocations.

Documentation

Specifications

Other Resources

OpenAPI Specification

canoe-intelligence-allocations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canoe API v1 Allocations API
  version: 1.0.0
  description: "Canoe's API provides methods for retrieving extracted data from documents and their metadata as well as data from downloaded PDFs. This documentation includes detailed explanations of API endpoints and examples. You may not have access to all of the listed endpoints depending on the services you've purchased from Canoe as well as your user permissions.\n<p>By using Canoe’s API Documentation, you agree to the most recent version of <a href=\"https://canoeintelligence.com/api-terms-of-use/\" target=\"_blank\"><u>Canoe’s Developer Portal Terms of Use.</u></a></p>\n<p>In addition to the <code class=\"prettyprint\">curl</code>, <code class=\"prettyprint\">javascript</code>, <code class=\"prettyprint\">python</code>, <code class=\"prettyprint\">php</code> and <code class=\"prettyprint\">CSharp</code> examples next to each endpoint, we've also included a <a href=\"https://www.getpostman.com\" target=\"_blank\"><u>Postman</u></a> collection. The collection contains API calls for each available endpoint.  Postman is a tool that helps generate and test API calls by providing a clean interface to build and save HTTP requests, and to check and test API responses. </p>\n\n<p>\n    Note: Download Postman from their official website. Find out more about how to import Postman collections <a href=\"https://learning.getpostman.com/docs/postman/collections/data_formats/#importing-postman-data\" target=\"_blank\"><u>here</u></a>.\n</p>\n<p>\n    Your information security team may require whitelisting Canoe’s IP addresses before you can call the API.  Whitelist the IP addresses found in <a href=\"https://client.canoesoftware.com/knowledge-base#/api/canoe-api-overview\" target=\"_blank\"><u>this knowledge base page</u></a> to allow all API addresses of Canoe. <b>(Note: You must be logged into your Canoe account to access the knowledge base page)</b>\n</p>\n<p>\n    Your information technology team may require you to open ports to call the API. The API uses port numbers 443 and 9443.\n</p>\n<p>\n    Additionally, your information security team may request that Canoe limit the IP address(es) from which you can make API calls as an extra layer of data protection. If so, please reach out to our support team.\n</p>\n\n<br>\n<strong><u>Request:</u></strong>\n\nThe base URL for all Canoe API requests is <code class=\"prettyprint\">https://api.canoesoftware.com</code>\n\nThe API is built on RESTful principles with resource-oriented URL endpoints. HTTP status codes are used to indicate any API errors and all responses are returned in JSON format. All requests must be made over an HTTPS connection to ensure a secure transmission of data. Following a RESTful structure, requests should hit API endpoints using the appropriate HTTP method, which will depend on the desired action:\n\n<table><thead>\n    <tr>\n        <th>Method</th>\n        <th>Description</th>\n    </tr>\n    </thead><tbody>\n    <tr>\n        <td>GET</td>\n        <td>Use the <strong>GET</strong> method to retrieve information about your users, their organizations, and available associated data. This will always be a read-only request, so queried objects will never be modified by a GET request. When using filter parameters that include special characters, you should always encode those values to fit URI specifications.</td>\n    </tr>\n    <tr>\n        <td>POST</td>\n        <td>Use a <strong>POST</strong> method to create a new object, such as a new user or organization. Request parameters should be given in JSON format. The response body will typically return the newly created resource.</td>\n    </tr>\n    <tr>\n        <td>PUT</td>\n        <td>Use a <strong>PUT</strong> method to update an object, such as updating user credentials. As with a POST request, parameters should be given in JSON format. If successful, the response body will typically return the modified object.</td>\n    </tr>\n    <tr>\n        <td>DELETE</td>\n        <td>Use a <strong>DELETE</strong> method to delete an object, such as deleting one of your funds. Successful DELETE requests will typically return an empty response body.</td>\n    </tr>\n    </tbody></table>\n\n\n<strong><u>Response:</u></strong>\n\n<p>All non-empty response bodies, including errors, will be formatted as a JSON object. If you are fetching multiple entries, such as <code class=\"prettyprint\">/v1/funds</code> example, the data will be returned as a list. If you are fetching a single entry, such as <code class=\"prettyprint\">GET /v1/funds/1</code>, the data will be returned as a single object.</p>\n<p>Canoe's APIs use standard HTTP status codes to indicate the status of a request.</p>\n<p>Below is a brief overview of the most common status codes:</p>\n<table><thead>\n    <tr>\n        <th>Code</th>\n        <th>Text</th>\n        <th>Definition</th>\n    </tr>\n    </thead><tbody>\n    <tr>\n        <td>200</td>\n        <td>OK</td>\n        <td>Success!</td>\n    </tr>\n    <tr>\n        <td>400</td>\n        <td>Bad Request</td>\n        <td>The request was invalid or cannot be otherwise served. This could be due to an invalid or malformed parameter, etc.</td>\n    </tr>\n    <tr>\n        <td>401</td>\n        <td>Unauthorized</td>\n        <td>The API authentication credentials or access token are missing or incorrect.</td>\n    </tr>\n    <tr>\n        <td>403</td>\n        <td>Forbidden</td>\n        <td>The credentials or access token are authenticated, but you do not have access to the requested resource.</td>\n    </tr>\n    <tr>\n        <td>404</td>\n        <td>Not Found</td>\n        <td>The requested resource is invalid or the resource requested, such as a Fund, does not exist. The 404 status code might indicates that the REST API can't map the client's URI to a resource but may be available in the future.</td>\n    </tr>\n    <tr>\n        <td>405</td>\n        <td>Method Not Allowed</td>\n        <td>The request tried to use an HTTP method that the resource does not allow. For instance, a read-only resource could support only GET, but not PUT or DELETE or POST.</td>\n    </tr>\n    <tr>\n        <td>500</td>\n        <td>Internal Server Error</td>\n        <td>There are internal or API-related errors on Canoe's side. Additional requests will not resolve the issue.</td>\n    </tr>\n    <tr>\n        <td>503</td>\n        <td>Service Unavailable</td>\n        <td>The Canoe servers are up, but overloaded with requests. Try again later.</td>\n    </tr>\n    </tbody></table>\n"
  contact:
    name: Canoe Support
    url: https://canoeintelligence.com
  termsOfService: https://canoeintelligence.com/api-terms-of-use/
servers:
- url: https://api.canoesoftware.com
  description: Production API
security:
- bearerAuth: []
tags:
- name: Allocations
  description: ''
paths:
  /v1/allocations:
    get:
      tags:
      - Allocations
      summary: Get Allocations
      description: Fetch all allocations accessible by the current API user.
      operationId: GetAllocation
      parameters:
      - name: page
        in: query
        description: This page number. For example, if you specify "2" you will see all documents on page 2. By default, this is set to 1.
        required: false
        schema:
          type: integer
        examples:
          page 1:
            value: 1
          page 5:
            value: 5
      - name: perPage
        in: query
        description: The number of allocations displayed on each page. The maximum number of allocations as well as the default is 100.
        required: false
        schema:
          type: integer
        examples:
          perPage:
            value: 50
      - name: allocation_id
        in: query
        description: Returns exact allocation record for a specific id. Multiple ids are separated by a comma. Example:- allocation_id1, allocation_id2
        required: false
        schema:
          type: string
        examples:
          allocation_id single:
            value: allocation_id12
          allocation_id multiple:
            value: allocation_id1,allocation_id2
      - name: entity_id
        in: query
        description: Returns exact match on Entity ID that is directly associated to the allocation. Multiple ids are separated by a comma. Example:- entity_3
        required: false
        schema:
          type: string
        examples:
          entity_id single:
            value: entity_id1
          entity_id multiple:
            value: entity_id1,entity_id2
      - name: investment_id
        in: query
        description: Returns exact allocations related to a specific investment/term. Multiple ids are separated by a comma. Example:- investment_id1, investment_id2
        required: false
        schema:
          type: string
        examples:
          investment_id single:
            value: investment_id1
          investment_id multiple:
            value: investment_id1,investment_id2
      - name: custom_allocation_id
        in: query
        description: Returns exact allocations related to a specific tenant assigned investment id. Multiple ids are separated by a comma. Example:- customId1, customId2
        required: false
        schema:
          type: string
        examples:
          custom_allocation_id single:
            value: custom_allocation_id_1
          custom_allocation_id multiple:
            value: custom_allocation_id_1,custom_allocation_id_2
      - name: status
        in: query
        description: Returns allocations related to a specific status. Valid Status values are active, pending, retired, or transitional. Multiple ids are separated by a comma. Example:- active, pending
        required: false
        schema:
          type: string
        examples:
          status 1:
            value: active
          status 2:
            value: pending
          status multiple:
            value: active,pending
      - name: account_id
        in: query
        description: Returns allocations related to a specific account. Multiple ids are separated by a comma. Example:- account_1, account_2
        required: false
        schema:
          type: string
        examples:
          account_id single:
            value: account_1
          account_id multiple:
            value: account_1,account_2
      - name: custom_field
        in: query
        description: An indexed string of one or more custom field IDs, which relate to allocation specific custom fields, and one or more custom field values for each. Specify the custom field ID and then the custom field value(s). When filtering on multiple values, separate them by commas.  Filter on additional custom fields by separating with an ampersand. Example:- /v1/allocations?custom_field[bfa7ec21-9a73-4640-03b2-0e32aa1ae8a6]=value1,value2;custom_field[another-custom-field-id]=another-value1
        required: false
        schema:
          type: string
        examples:
          custom_field:
            value: custom_field[bfa7ec21-9a73-4640-03b2-0e32aa1ae8a6]=value1,value2
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Allocations'
        '403':
          description: No access to the document.
      x-codeSamples:
      - lang: bash
        label: Bash
        source: "curl -X GET \\\n      -G \"https://api.canoesoftware.com/v1/allocations?page=1&perPage=50&allocation_id=investment_1&entity_id=entity_3\" \\\n      -H \"Authorization: Bearer {token}\" \\\n      -H \"Accept: application/json\" \\\n      -H \"X-Requested-With: XMLHttpRequest\""
      - lang: javascript
        label: JavaScript
        source: "const url = new URL(\n          \"https://api.canoesoftware.com/v1/allocations\"\n      );\n\n      let params = {\n          \"page\": \"1\",\n          \"perPage\": \"50\",\n          \"allocation_id\":\"investment_1\",\n          \"entity_id\":\"entity_3\"\n      };\n\n      let headers = {\n          \"Authorization\": \"Bearer {token}\",\n          \"Accept\": \"application/json\",\n          \"X-Requested-With\": \"XMLHttpRequest\",\n          \"Content-Type\": \"application/json\",\n      };\n\n      fetch(url, {\n          method: \"GET\",\n          headers: headers,\n      })\n      .then(response => response.json())\n      .then(json => console.log(json));"
      - lang: php
        label: PHP
        source: "$client = new \\GuzzleHttp\\Client();\n      $response = $client->get(\n          'https://api.canoesoftware.com/v1/allocation',\n          [\n              'headers' => [\n                  'Authorization' => 'Bearer {token}',\n                  'Accept' => 'application/json',\n                  'X-Requested-With' => 'XMLHttpRequest',\n              ],\n          ]\n      );\n      $body = $response->getBody();\n      print_r(json_decode((string) $body));"
      - lang: python
        label: Python
        source: "import requests\n      import json\n\n      url = 'https://api.canoesoftware.com/v1/allocations'\n      params = {\n        'page': '1',\n        'perPage': '50',\n        'allocation_id':'investment_1',\n        'entity_id':'entity_3'\n      }\n      headers = {\n        'Authorization': 'Bearer {token}',\n        'Accept': 'application/json',\n        'X-Requested-With': 'XMLHttpRequest'\n      }\n      response = requests.request('GET', url, headers=headers, params=params)\n      response.json()"
      - lang: csharp
        label: CSharp
        source: "using RestSharp;\n\n      var client = new RestClient(\"https://api.canoesoftware.com/\");\n      var request = new RestRequest(\"v1/allocations\", Method.Get);\n      request.AddParameter(\"Authorization\", string.Format(\"Bearer {token}\"), ParameterType.HttpHeader);\n      request.AddHeader(\"Accept\", \"application/json\");\n      request.AddHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n      request.AddQueryParameter(\"page\", \"1\");\n      request.AddQueryParameter(\"perPage\", \"50\");\n      request.AddQueryParameter(\"allocation_id\", \"investment_1\");\n      request.AddQueryParameter(\"entity_id\", \"entity_3\");\n      var response = client.Execute(request);\n      Console.WriteLine(response.Content);"
    post:
      tags:
      - Allocations
      summary: Create A Single Allocation
      description: Create a new allocation based on the input parameters.
      operationId: CreateSingleAllocation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                entity_id:
                  type: string
                  description: The ID of the Entity in Canoe.
                  example: entity_1
                fund_id:
                  type: string
                  description: The ID of the Investment/Fund in Canoe.
                  example: investment_1
                term_id:
                  type: string
                  description: The ID of the term at canoe. If not provided, the default term will be assigned.
                  example: term_1
                initial_date:
                  type: string
                  description: Allocation inception Date. Its format is yyyy-mm-dd.
                  example: '2021-01-01'
                initial_amount:
                  type: string
                  description: The initial amount for the allocation. Value must be greater than 0.
                  example: '10000'
                status:
                  type: string
                  description: Indicates whether an allocation is active. The status can be active, pending, retired, or transitional. If not provided, the default is active.
                  example: active
                custom_allocation_id:
                  type: string
                  description: The custom allocation ID you'd like to associate the allocation with.
                  example: '700'
                downstream_ids:
                  type: array
                  example:
                  - id: black_diamond_account_name
                    value: sample_name
                custom_fields:
                  type: array
                  example:
                  - id: 1
                    value: 1000
                allocation_entity_aliases:
                  type: string
                  description: Aliases of the allocation entity name. These are user-created. If there are multiple aliases, they should be separated by commas.
                  example: Sample allocation entity alias 1,Sample allocation entity alias 2
                allocation_fund_aliases:
                  type: string
                  description: Aliases of the allocation fund name. These are user-created. If there are multiple aliases, they should be separated by commas.
                  example: Sample allocation fund alias 1,Sample allocation fund alias 2
                retired_at:
                  type: string
                  description: Allocation retire date. Retired date must be provided if the status is set to retired and should be at least one month after the initial investment date.
                  example: '2022-01-01'
                extraction_status:
                  type: string
                  description: The status of the allocation extraction. The status can be Ready For Extract and Not Ready For Extract
                  example: Ready For Extract
              required:
              - entity_id
              - fund_id
              - initial_date
              - initial_amount
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SingleAllocation'
        '403':
          description: Failed to create the allocation.
        '422':
          description: The date entered should have the format yyyy-mm-dd.
      x-codeSamples:
      - lang: bash
        label: Bash
        source: "curl -X POST \\\n          \"https://api.canoesoftware.com/v1/allocations\" \\\n          -H \"Authorization: Bearer {token}\" \\\n          -H \"Accept: application/json\" \\\n          -H \"X-Requested-With: XMLHttpRequest\" \\\n          -H \"Content-Type: application/json\" \\\n          -d '{\"entity_id\":\"entity_1\",\"fund_id\":\"investment_1\",\"initial_date\":\"2021-01-01\",\"initial_amount\":\"10000\",\"status\":\"active\",\"custom_allocation_id\":\"700\",\"downstream_ids\":[{\"id\":\"black_diamond_account_name\",\"value\":\"sample_name\"}],\"custom_fields\":[{\"id\":\"1\",\"value\":\"1000\"}],\"allocation_entity_aliases\":\"Sample allocation entity alias 1,Sample allocation entity alias 2\",\"allocation_fund_aliases\":\"Sample allocation fund alias 1,Sample allocation fund alias 2\"}'"
      - lang: javascript
        label: JavaScript
        source: "const url = new URL(\n        \"https://api.canoesoftware.com/v1/allocations\"\n      );\n\n      let headers = {\n        \"Authorization\": \"Bearer {token}\",\n        \"Accept\": \"application/json\",\n        \"X-Requested-With\": \"XMLHttpRequest\",\n        \"Content-Type\": \"application/json\",\n      };\n\n      let body = {\n        \"entity_id\": \"entity_1\",\n        \"fund_id\": \"investment_1\",\n        \"initial_date\": \"2021-01-01\",\n        \"initial_amount\": \"10000\",\n        \"status\": \"active\",\n        \"custom_allocation_id\": \"700\",\n        \"downstream_ids\": [\n          {\n            \"id\": \"black_diamond_account_name\",\n            \"value\": \"sample_name\"\n          }\n        ],\n        \"custom_fields\": [\n          {\n            \"id\": \"1\",\n            \"value\": \"1000\"\n          }\n        ],\n        \"allocation_entity_aliases\": \"Sample allocation entity alias 1,Sample allocation entity alias 2\",\n        \"allocation_fund_aliases\": \"Sample allocation fund alias 1,Sample allocation fund alias 2\"\n      }\n      fetch(url, {\n        method: \"POST\",\n        headers: headers,\n        body: body\n      })\n      .then(response => response.json())\n      .then(json => console.log(json));"
      - lang: php
        label: PHP
        source: "$client = new \\GuzzleHttp\\Client();\n      $response = $client->post(\n        'https://api.canoesoftware.com/v1/allocations',\n        [\n          'headers' => [\n            'Authorization' => 'Bearer {token}',\n                    'Accept' => 'application/json',\n            'X-Requested-With' => 'XMLHttpRequest',\n            'Content-Type' => 'application/json',\n          ],\n          'json' => [\n            'entity_id' => 'entity_1',\n            'fund_id' => 'investment_1',\n            'initial_date' => '2021-01-01',\n            'initial_amount' => '10000',\n            'status' => 'active',\n            'custom_allocation_id' => '700',\n            'downstream_ids' => [\n              [\n                'id' => 'black_diamond_account_name',\n                'value' => 'sample_name',\n              ],\n            ],\n            'custom_fields' => [\n              [\n                'id' => '1',\n                'value' => '1000',\n              ],\n            ],\n            'allocation_entity_aliases' => 'Sample allocation entity alias 1,Sample allocation entity alias 2',\n            'allocation_fund_aliases' => 'Sample allocation fund alias 1,Sample allocation fund alias 2',\n          ],\n        ]\n      );\n      $body = $response->getBody();\n      print_r(json_decode((string) $body));"
      - lang: python
        label: Python
        source: "import requests\n      import json\n\n      url = 'https://api.canoesoftware.com/v1/allocations'\n      params = {\n        'page': '1',\n        'perPage': '50',\n        'allocation_id':'investment_1',\n        'entity_id':'entity_3'\n      }\n      headers = {\n        'Authorization': 'Bearer {token}',\n        'Accept': 'application/json',\n        'X-Requested-With': 'XMLHttpRequest'\n      }\n      response = requests.request('GET', url, headers=headers, params=params)\n      response.json()"
      - lang: csharp
        label: CSharp
        source: "using RestSharp;\n\n      var client = new RestClient(\"https://api.canoesoftware.com/\");\n      var request = new RestRequest(\"v1/allocations\", Method.Post);\n      request.AddParameter(\"Authorization\", string.Format(\"Bearer {token}\"), ParameterType.HttpHeader);\n      request.AddHeader(\"Accept\", \"application/json\");\n      request.AddHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n      request.AddHeader(\"Content-Type\", \"application/json\");\n      var body = new\n      {\n        entity_id = \"entity_1\",\n        fund_id = \"investment_1\",\n        initial_date = \"2021-01-01\",\n        initial_amount = \"10000\",\n        status = \"active\",\n        custom_allocation_id = 700,\n        downstream_ids = new[]\n        {\n          new { id = black_diamond_account_name, value = sample_name }\n        },\n        custom_fields = new[]\n        {\n          new { id = 1, value = 100 }\n        },\n        allocation_entity_aliases = \"Sample allocation entity alias 1,Sample allocation entity alias 2\",\n        allocation_fund_aliases = \"Sample allocation fund alias 1,Sample allocation fund alias 2\"\n      };\n      request.AddJsonBody(body);\n      var response = client.Execute(request);\n      Console.WriteLine(response.Content);"
  /v1/allocations/{id}:
    put:
      tags:
      - Allocations
      summary: Update A Single Allocation
      description: Update an existing allocation based on the input parameters.
      operationId: UpdateSingleAllocation
      parameters:
      - name: id
        in: path
        description: The id of the allocation you want to edit.
        required: true
        schema:
          type: string
          example: '1'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                initial_date:
                  type: string
                  description: Allocation inception Date. Its format is yyyy-mm-dd.
                  example: '2021-01-01T00:00:00.000Z'
                initial_amount:
                  type: string
                  description: The initial amount for the allocation. Value must be greater than 0.
                  example: '10000'
                status:
                  type: string
                  description: Indicates whether an allocation is active. The status can be active, pending, retired, or transitional. If not provided, the default is active.
                  example: active
                custom_allocation_id:
                  type: string
                  description: The custom allocation ID you'd like to associate the allocation with.
                  example: '123'
                downstream_ids:
                  type: array
                  example:
                  - id: black_diamond_account_name
                    value: sample_name
                custom_fields:
                  type: array
                  example:
                  - id: 1
                    value: 1000
                allocation_entity_aliases:
                  type: string
                  description: Aliases of the allocation entity name. These are user-created. If there are multiple aliases, they should be separated by commas.
                  example: Sample allocation entity alias 1,Sample allocation entity alias 2
                allocation_fund_aliases:
                  type: string
                  description: Aliases of the allocation fund name. These are user-created. If there are multiple aliases, they should be separated by commas.
                  example: Sample allocation fund alias 1,Sample allocation fund alias 2
                retired_at:
                  type: string
                  description: Allocation retire date. Retired date must be provided if the status is set to retired and should be at least one month after the initial investment date.
                  example: '2022-01-01'
                extraction_status:
                  type: string
                  description: The status of the allocation extraction. The status can be Ready For Extract and Not Ready For Extract
                  example: Ready For Extract
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SingleAllocation'
        '403':
          description: Failed to create the allocation.
        '422':
          description: The date entered should have the format yyyy-mm-dd.
      x-codeSamples:
      - lang: bash
        label: Bash
        source: "curl -X POST \\\n          \"https://api.canoesoftware.com/v1/allocations\" \\\n          -H \"Authorization: Bearer {token}\" \\\n          -H \"Accept: application/json\" \\\n          -H \"X-Requested-With: XMLHttpRequest\" \\\n          -H \"Content-Type: application/json\" \\\n          -d '{\"entity_id\":\"entity_1\",\"fund_id\":\"investment_1\",\"initial_date\":\"2021-01-01\",\"initial_amount\":\"10000\",\"status\":\"active\",\"custom_allocation_id\":\"700\",\"downstream_ids\":[{\"id\":\"black_diamond_account_name\",\"value\":\"sample_name\"}],\"custom_fields\":[{\"id\":\"1\",\"value\":\"1000\"}],\"allocation_entity_aliases\":\"Sample allocation entity alias 1,Sample allocation entity alias 2\",\"allocation_fund_aliases\":\"Sample allocation fund alias 1,Sample allocation fund alias 2\"}'"
      - lang: javascript
        label: JavaScript
        source: "const url = new URL(\n          \"https://api.canoesoftware.com/v1/allocations\"\n      );\n\n      let headers = {\n          \"Authorization\": \"Bearer {token}\",\n          \"Accept\": \"application/json\",\n          \"X-Requested-With\": \"XMLHttpRequest\",\n          \"Content-Type\": \"application/json\",\n      };\n\n      let body = {\n          \"entity_id\": \"entity_1\",\n          \"fund_id\": \"investment_1\",\n          \"initial_date\": \"2021-01-01\",\n          \"initial_amount\": \"10000\",\n          \"status\": \"active\",\n          \"custom_allocation_id\": \"700\",\n          \"downstream_ids\": [\n              {\n                  \"id\": \"black_diamond_account_name\",\n                  \"value\": \"sample_name\"\n              }\n          ],\n          \"custom_fields\": [\n              {\n                  \"id\": \"1\",\n                  \"value\": \"1000\"\n              }\n          ],\n          \"allocation_entity_aliases\": \"Sample allocation entity alias 1,Sample allocation entity alias 2\",\n          \"allocation_fund_aliases\": \"Sample allocation fund alias 1,Sample allocation fund alias 2\"\n      }\n\n      fetch(url, {\n          method: \"POST\",\n          headers: headers,\n          body: body\n      })\n          .then(response => response.json())\n          .then(json => console.log(json));"
      - lang: php
        label: PHP
        source: "$client = new \\GuzzleHttp\\Client();\n      $response = $client->post(\n          'https://api.canoesoftware.com/v1/allocations',\n          [\n              'headers' => [\n                  'Authorization' => 'Bearer {token}',\n                  'Accept' => 'application/json',\n                  'X-Requested-With' => 'XMLHttpRequest',\n                  'Content-Type' => 'application/json',\n              ],\n              'json' => [\n                  'entity_id' => 'entity_1',\n                  'fund_id' => 'investment_1',\n                  'initial_date' => '2021-01-01',\n                  'initial_amount' => '10000',\n                  'status' => 'active',\n                  'custom_allocation_id' => '700',\n                  'downstream_ids' => [\n                      [\n                          'id' => 'black_diamond_account_name',\n                          'value' => 'sample_name',\n                      ],\n                  ],\n                  'custom_fields' => [\n                      [\n                          'id' => '1',\n                          'value' => '1000',\n                      ],\n                  ],\n                  'allocation_entity_aliases' => 'Sample allocation entity alias 1,Sample allocation entity alias 2',\n                  'allocation_fund_aliases' => 'Sample allocation fund alias 1,Sample allocation fund alias 2',\n              ],\n          ]\n      );\n      $body = $response->getBody();\n      print_r(json_decode((string) $body));"
      - lang: python
        label: Python
        source: "import requests\n      import json\n\n      url = 'https://api.canoesoftware.com/v1/allocations'\n      payload = {\n          \"entity_id\": \"entity_1\",\n          \"fund_id\": \"investment_1\",\n          \"initial_date\": \"2021-01-01\",\n          \"initial_amount\": \"10000\",\n          \"status\": \"active\",\n          \"custom_allocation_id\": \"700\",\n          \"downstream_ids\": [\n              {\n                  \"id\": \"black_diamond_account_name\",\n                  \"value\": \"sample_name\"\n              }\n          ],\n          \"custom_fields\": [\n              {\n                  \"id\": \"1\",\n                  \"value\": \"1000\"\n              }\n          ],\n          \"allocation_entity_aliases\": \"Sample allocation entity alias 1,Sample allocation entity alias 2\",\n          \"allocation_fund_aliases\": \"Sample allocation fund alias 1,Sample allocation fund alias 2\"\n      }\n      headers = {\n        'Authorization': 'Bearer {token}',\n        'Accept': 'application/json',\n        'X-Requested-With': 'XMLHttpRequest',\n        'Content-Type': 'application/json'\n      }\n      response = requests.request('POST', url, headers=headers, json=payload)\n      response.json()"
      - lang: csharp
        label: CSharp
        source: "using RestSharp;\n\n      var client = new RestClient(\"https://api.canoesoftware.com/\");\n      var request = new RestRequest(\"v1/allocations/1\", Method.Put);\n      request.AddParameter(\"Authorization\", string.Format(\"Bearer {token}\"), ParameterType.HttpHeader);\n      request.AddHeader(\"Accept\", \"application/json\");\n      request.AddHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n      request.AddHeader(\"Content-Type\", \"app

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canoe-intelligence/refs/heads/main/openapi/canoe-intelligence-allocations-api-openapi.yml