Canoe Intelligence Organizations API

The Organizations API from Canoe Intelligence — 9 operation(s) for organizations.

Documentation

Specifications

Other Resources

OpenAPI Specification

canoe-intelligence-organizations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canoe API v1 Organizations 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: Organizations
  description: ''
paths:
  /v1/organizations:
    get:
      tags:
      - Organizations
      summary: Get Organizations
      description: "Get your organizations user info\n\n<span name=\"doc-alert-info\">\nThis endpoint offers optional pagination. \nPagination supports the return of large results and is highly recommended for all use cases. \nUnpaginated calls will be depreciated in future versions of the Canoe API.\n<br><br>\nWhen using pagination, the response will contain headers defining the <code>total</code> number of results, \nas well as the <code>first</code>, <code>next</code>, <code>prev</code>, and <code>last</code> page responses for your result set. \nTo enable pagination pass a header parameter of X-API-VERSION with a value of 2023-08-07.\n</span>"
      operationId: Organizations
      parameters:
      - name: page
        in: query
        description: This page number. For example, if you specify "2" you will see all organizations on page 2. By default, this is set to 1. <u>This parameter is only valid if the X-API-VERSION header is set to 2023-08-07.</u>
        required: false
        schema:
          type: string
        examples:
          page 1:
            value: '1'
          page 5 multiple:
            value: '5'
      - name: limit
        in: query
        description: The number of Organizations for each paginated download. The default is 100.
        required: false
        schema:
          type: string
        examples:
          3 per page:
            value: '3'
          50 per page:
            value: '50'
      - name: organization_id
        in: query
        description: This is the entity or account ID you would like to search for. When filtering on multiple values, separate them by commas.
        required: false
        schema:
          type: string
          example: organization_1,organization_2
      - name: entity_custom_field
        in: query
        description: An indexed string of one or more custom field IDs, which relate to entity 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/organizations?entity_custom_field[bfa7ec21-9a73-4640-03b2-0e32aa1ae8a6]=value1,value2&entity_custom_field[867e4563-c2b5-e788-d050-4ce151dec635]=value1
        required: false
        schema:
          type: string
        examples:
          entity_custom_field:
            value: entity_custom_field[bfa7ec21-9a73-4640-03b2-0e32aa1ae8a6]=value1,value2
      - name: type
        in: query
        description: The type of organizations to return. Available types are 'account' and 'entity'. Defaults to both types.
        required: false
        schema:
          type: string
        examples:
          account:
            value: account
          entity:
            value: entity
      - name: name
        in: query
        description: The names of the accounts or entities you wish to retrieve records for. When filtering for entities this can either be the formal entity name or any of its associated aliases. To search based on a part of an account name or part of an entity name or alias, just append an "*" character anywhere within the name parameter.
        schema:
          type: string
        examples:
          single name:
            value: Sample Organization 1
          partial name:
            value: Sample Org*
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetOrganization'
        '400':
          description: Bad request
        '404':
          description: Resource Not Found
        '422':
          description: Unprocessable Entity
      x-codeSamples:
      - lang: bash
        label: Bash
        source: "curl -X GET \\\n          -G \"https://api.canoesoftware.com/v1/organizations?type=account\" \\\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/organizations\"\n      );\n\n      let params = {\n          \"type\": \"account\",\n      };\n      Object.keys(params)\n          .forEach(key => url.searchParams.append(key, params[key]));\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/organizations',\n          [\n              'headers' => [\n                  'Authorization' => 'Bearer {token}',\n                  'Accept' => 'application/json',\n                  'X-Requested-With' => 'XMLHttpRequest',\n              ],\n              'query' => [\n                  'type' => 'account',\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/organizations'\n      params = {\n        'type': 'account'\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/organizations\", 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(\"type\", \"account\");\n      var response = client.Execute(request);\n      Console.WriteLine(response.Content);"
  /v1/organizations/{id}:
    get:
      tags:
      - Organizations
      summary: Get A Single Organization
      description: Fetch organization by the organization's ID
      operationId: FindById
      parameters:
      - name: id
        in: path
        description: The id of the organization.
        required: true
        schema:
          type: string
          example: '1'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetOrganization'
        '400':
          description: Bad request
        '404':
          description: Resource Not Found
        '422':
          description: Unprocessable Entity
      x-codeSamples:
      - lang: bash
        label: Bash
        source: "curl -X GET \\\n          -G \"https://api.canoesoftware.com/v1/organizations/1\" \\\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/organizations/1\"\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/organizations/1',\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/organizations/1'\n      headers = {\n        'Authorization': 'Bearer {token}',\n        'Accept': 'application/json',\n        'X-Requested-With': 'XMLHttpRequest'\n      }\n      response = requests.request('GET', url, headers=headers)\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/organizations/1\", 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      var response = client.Execute(request);\n      Console.WriteLine(response.Content);"
  /v1/organizations/{id}/document-data:
    get:
      tags:
      - Organizations
      summary: Get A Single Organization's Document Data
      description: 'Fetch the extracted data and metadata of a single organization''s documents.


        <span name="doc-alert-info">

        This endpoint offers optional pagination.

        Pagination supports the return of large results and is highly recommended for all use cases.

        Unpaginated calls will be depreciated in future versions of the Canoe API.

        <br><br>

        When using pagination, the response will contain headers defining the <code>total</code> number of results,

        as well as the <code>first</code>, <code>next</code>, <code>prev</code>, and <code>last</code> page responses for your result set.

        To enable pagination pass a header parameter of X-API-VERSION with a value of 2024-10-07.

        </span>'
      operationId: FindBySingleOrganizationId
      parameters:
      - name: id
        in: path
        description: The id of the organization.
        required: true
        schema:
          type: string
          example: '1'
      - 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. <u>This parameter is only valid if the X-API-VERSION header is set to 2024-10-07.</u> Example: 1'
        required: false
        schema:
          type: integer
        examples:
          page 1:
            value: 1
          page 5:
            value: 5
      - name: limit
        in: query
        description: 'The number of documents for each page. The maximum number of documents limit is 100. <u>This parameter is only valid if the X-API-VERSION header is set to 2024-10-07.</u> Example: 50'
        required: false
        schema:
          type: integer
        examples:
          limit:
            value: 50
      - name: fields
        in: query
        description: The fields you need in the partial response. The value of the fields parameter MUST be a comma-separated (U+002C COMMA, ",") list that refers to the name(s) of the fields to be returned.
        required: false
        schema:
          type: string
        examples:
          fields:
            value: name,validated_data
      - name: category
        in: query
        description: The category of the document. Our current categories are:<br><br><li>Capital Activity</li><br><li>Email & System Messages</li><br><li>Financial Statements & Performance</li><br><li>Investment & Transactional</li><br><li>Investor Administration & Communication</li><br><li>Legal, Compliance & Regulatory</li><br><li>Other</li><br><li>Tax</li><br><br>Multiple categories can be passed as a comma-delimited list (e.g. <code>Capital Activity,Tax</code>).
        required: false
        schema:
          type: string
        examples:
          category:
            value: Capital Activity, Email
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetSingleOrganizationData'
        '400':
          description: Bad request
        '404':
          description: Resource Not Found
        '422':
          description: Unprocessable Entity
      x-codeSamples:
      - lang: bash
        label: Bash
        source: "curl -X GET \\\n          -G \"https://api.canoesoftware.com/v1/organizations/1/document-data?fields=name%2Cvalidated_data&category=Capital%20Activity\" \\\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/organizations/1/document-data\"\n      );\n\n      let params = {\n          \"fields\": \"name,validated_data\",\n          \"category\": \"Capital Activity\"\n      };\n      Object.keys(params)\n          .forEach(key => url.searchParams.append(key, params[key]));\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/organizations/1/document-data',\n          [\n              'headers' => [\n                  'Authorization' => 'Bearer {token}',\n                  'Accept' => 'application/json',\n                  'X-Requested-With' => 'XMLHttpRequest',\n              ],\n              'query' => [\n                  'fields' => 'name,validated_data',\n                  'category'=> 'Capital Activity'\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/organizations/1/document-data'\n      params = {\n        'fields': 'name,validated_data',\n        'category': 'Capital Activity'\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/organizations/1/document-data\", 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(\"fields\", \"name,validated_data\");\n      request.AddQueryParameter(\"category\", \"Capital Activity\");\n      var response = client.Execute(request);\n      Console.WriteLine(response.Content);"
  /v1/organizations/{id}/documents:
    get:
      tags:
      - Organizations
      summary: Download A Single Organization's Documents
      description: Download a specific Organization's documents in a ZIP file. Each fetch will download up to 100 documents. By default, this will fetch the first 100 documents in the Intelligent Document Center. A successful call to this endpoint will only contain the binary file and not the JSON data.
      operationId: DownloadOrganizationDocuments
      parameters:
      - name: id
        in: path
        description: The id of the organization.
        required: true
        schema:
          type: string
          example: '1'
      - name: start_time
        in: query
        description: All documents downloaded will have an uploaded timestamp greater than or equal to the given start_time. Unless otherwise specified, the timestamp will be in EST (Eastern Standard Time). We suggest using the ISO 8601 format for the parameter. For example, '2019-09-18T00:00:00-07:00' represents the time in Pacific Daylight Time; this will be automatically converted to EST. In this case, the user will receive the documents uploaded on or after 2019-09-19 at 03:00:00.
        required: false
        schema:
          type: string
        examples:
          start_time:
            value: '2019-03-30T04:00:00Z'
      - name: page
        in: query
        description: This page number corresponds with the pagination in Canoe's Intelligent Document Center. There are up to 100 documents on each page. For example, if you specify "2" you will see all of an Organization's documents on page 2. By default, this is set to 1.
        required: false
        schema:
          type: string
        examples:
          page:
            value: '1'
      - name: limit
        in: query
        description: The number of documents for each download. The maximum number of documents as well as the default is 100.
        required: false
        schema:
          type: string
        examples:
          limit:
            value: '50'
      - name: file_name_type
        in: query
        description: The document attribute to use for the file name. Available options are name, original_file_name and id. The default value for this is name.
        required: false
        schema:
          type: string
        examples:
          file_name_type:
            value: original_file_name
      responses:
        '200':
          description: Success
        '400':
          description: Bad request
        '404':
          description: Resource Not Found
        '422':
          description: Unprocessable Entity
      x-codeSamples:
      - lang: bash
        label: Bash
        source: "curl -X GET \\\n          -G \"https://api.canoesoftware.com/v1/organizations/1/documents?start_time=2019-03-30T04%3A00%3A00Z&page=1&limit=50&file_name_type=original_file_name\" \\\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/organizations/1/documents\"\n      );\n\n      let params = {\n          \"start_time\": \"2019-03-30T04:00:00Z\",\n          \"page\": \"1\",\n          \"limit\": \"50\",\n          \"file_name_type\": \"original_file_name\"\n      };\n      Object.keys(params)\n          .forEach(key => url.searchParams.append(key, params[key]));\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/organizations/1/documents',\n          [\n              'headers' => [\n                  'Authorization' => 'Bearer {token}',\n                  'Accept' => 'application/json',\n                  'X-Requested-With' => 'XMLHttpRequest',\n              ],\n              'query' => [\n                  'start_time' => '2019-03-30T04:00:00Z',\n                  'page' => '1',\n                  'limit' => '50',\n                  'file_name_type' => 'original_file_name'\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/organizations/1/documents'\n      params = {\n        'start_time': '2019-03-30T04:00:00Z',\n        'page': '1',\n        'limit': '50',\n        'file_name_type': 'original_file_name'\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/organizations/1/documents\", 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(\"start_time\", \"2019-03-30T04:00:00Z\");\n      request.AddQueryParameter(\"page\", \"1\");\n      request.AddQueryParameter(\"limit\", \"50\");\n      request.AddQueryParameter(\"file_name_type\", \"original_file_name\");\n      var response = client.Execute(request);\n      foreach (var h in response.ContentHeaders) {\n          if (h.Name==\"Content-Disposition\") {\n              var disposition = h.Value.ToString();\n              var filename = disposition.Substring(disposition.IndexOf(\"filename=\") + \"filename=\".Length);\n              File.WriteAllBytes(filename, response.RawBytes);\n          }\n      }"
  /v1/organizations/{id}/document-ids:
    get:
      tags:
      - Organizations
      summary: Get A Single Organization's Document IDs
      description: Get a specific organization's document IDs for downloading the documents one by one.
      operationId: DownloadBySingleOrganizationId
      parameters:
      - name: id
        in: path
        description: The id of the organization.
        required: true
        schema:
          type: string
          example: '1'
      - name: start_time
        in: query
        description: All document IDs returned will have an uploaded timestamp greater than or equal to the given start_time. Unless otherwise specified, the timestamp will be in EST (Eastern Standard Time). We suggest using the ISO 8601 format for the parameter. For example, '2019-09-18T00:00:00-07:00' represents the time in Pacific Daylight Time; this will be automatically converted to EST. In this case, the user will receive the documents uploaded on or after 2019-09-19 at 03:00:00.
        required: false
        schema:
          type: string
        examples:
          start_time:
            value: '2019-03-30T04:00:00Z'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetSingleOrganizationId'
        '400':
          description: Bad request
        '404':
          description: Resource Not Found
        '422':
          description: Unprocessable Entity
      x-codeSamples:
      - lang: bash
        label: Bash
        source: "curl -X GET \\\n          -G \"https://api.canoesoftware.com/v1/organizations/1/document-ids?start_time=2019-03-30T04%3A00%3A00Z\" \\\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/organizations/1/document-ids\"\n      );\n\n      let params = {\n          \"start_time\": \"2019-03-30T04:00:00Z\",\n      };\n      Object.keys(params)\n          .forEach(key => url.searchParams.append(key, params[key]));\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/organizations/1/document-ids',\n          [\n              'headers' => [\n                  'Authorization' => 'Bearer {token}',\n                

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