Codat Push data API

Initiate and monitor Create, Update, and Delete operations.

OpenAPI Specification

codat-push-data-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bank Feeds Account mapping Push data API
  version: 3.0.0
  contact:
    email: support@codat.io
    name: Codat
  description: 'Bank Feeds solution enables your SMB users to set up bank feeds from accounts in your application to supported accounting software.


    A bank feed is a connection between a source bank account in your application and a target bank account in a supported accounting software.


    [Explore solution](https://docs.codat.io/bank-feeds-api/overview) | [See OpenAPI spec](https://github.com/codatio/oas)


    ---

    <!-- Start Codat Tags Table -->

    ## Endpoints


    | Endpoints | Description |

    | :- |:- |

    | Companies | Create and manage your SMB users'' companies. |

    | Connections | Create new and manage existing data connections for a company. |

    | Source accounts | Provide and manage lists of source bank accounts. |

    | Account mapping | Extra functionality for building an account management UI. |

    | Company information | Get detailed information about a company from the underlying platform. |

    | Transactions | Create new bank account transactions for a company''s connections, and see previous operations. |

    <!-- End Codat Tags Table -->'
  termsOfService: https://www.codat.io/legals/
servers:
- description: Production
  url: https://api.codat.io
security:
- auth_header: []
tags:
- name: Push data
  description: Initiate and monitor Create, Update, and Delete operations.
paths:
  /companies/{companyId}/connections/{connectionId}/options/{dataType}:
    parameters:
    - $ref: '#/components/parameters/companyId'
    - $ref: '#/components/parameters/connectionId'
    - $ref: '#/components/parameters/dataType'
    get:
      summary: Get push options
      tags:
      - Push data
      operationId: get-create-update-model-options-by-data-type
      x-speakeasy-name-override: get-model-options
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushOption'
              examples: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/Payment-Required'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/Not-Found'
        '429':
          $ref: '#/components/responses/Too-Many-Requests'
        '500':
          $ref: '#/components/responses/Internal-Server-Error'
        '503':
          $ref: '#/components/responses/Service-Unavailable'
      description: "This is the generic documentation for creation and updating of data. See the equivalent endpoint for a given data type for more specific information. \n\nBefore pushing data into accounting software, it is often necessary to collect some details from the user as to how they would like the data to be inserted. This includes names and amounts on transactional entities, but also factors such as categorisation of entities, which is often handled differently between different accounting software. A good example of this is specifying where on the balance sheet/profit and loss reports the user would like a newly-created nominal account to appear.\n\nCodat tries not to limit users to pushing to a very limited number of standard categories, so we have implemented \"options\" endpoints, which allow us to expose to our clients the fields which are required to be pushed for a specific linked company, and the options which may be selected for each field."
  /companies/{companyId}/push:
    parameters:
    - $ref: '#/components/parameters/companyId'
    get:
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/query'
      - $ref: '#/components/parameters/orderBy'
      summary: List push operations
      tags:
      - Push data
      operationId: get-company-push-history
      x-speakeasy-name-override: list-operations
      description: 'The **List push operations** endpoint returns a list of [push operations](/using-the-api/push) performed on the company.


        Write operations are actions that send requests to Codat, enabling the creation, updating, deletion of records, or uploading attachments in the connected accounting software.'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushOperations'
              examples: {}
        '400':
          $ref: '#/components/responses/Malformed-Query'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/Payment-Required'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/Not-Found'
        '429':
          $ref: '#/components/responses/Too-Many-Requests'
        '500':
          $ref: '#/components/responses/Internal-Server-Error'
        '503':
          $ref: '#/components/responses/Service-Unavailable'
  /companies/{companyId}/push/{pushOperationKey}:
    parameters:
    - $ref: '#/components/parameters/companyId'
    - schema:
        type: string
        format: uuid
      name: pushOperationKey
      in: path
      required: true
      description: Push operation key.
    get:
      summary: Get push operation
      tags:
      - Push data
      operationId: get-push-operation
      x-speakeasy-name-override: get-operation
      description: 'The **Get push operation** endpoint returns a specific [push operation](/using-the-api/push) identified by the `pushOperationKey` that was performed on the company.


        Write operations are actions that send requests to Codat, enabling the creation, updating, deletion of records, or uploading attachments in the connected accounting software.'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushOperation'
              examples: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/Payment-Required'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/Not-Found'
        '429':
          $ref: '#/components/responses/Too-Many-Requests'
        '500':
          $ref: '#/components/responses/Internal-Server-Error'
        '503':
          $ref: '#/components/responses/Service-Unavailable'
components:
  schemas:
    PushOption:
      title: Push option
      x-internal: true
      required:
      - displayName
      - required
      - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/PushOption/definitions/pushOptionType'
        displayName:
          $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty/properties/displayName'
        description:
          $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty/properties/description'
        required:
          $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty/properties/required'
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty'
          nullable: true
        options:
          type: array
          items:
            $ref: '#/components/schemas/PushOption/definitions/pushOptionChoice'
          nullable: true
        validation:
          $ref: '#/components/schemas/PushOption/definitions/pushValidationInfo'
          nullable: true
      definitions:
        pushOptionProperty:
          title: Push Option Property
          required:
          - description
          - displayName
          - required
          - type
          type: object
          properties:
            type:
              $ref: '#/components/schemas/PushOption/definitions/pushOptionType'
            displayName:
              minLength: 1
              type: string
              description: The property's display name.
            description:
              type: string
              description: A description of the property.
            required:
              type: boolean
              description: The property is required if `True`.
            properties:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty'
              nullable: true
            options:
              type: array
              items:
                $ref: '#/components/schemas/PushOption/definitions/pushOptionChoice'
              nullable: true
            validation:
              $ref: '#/components/schemas/PushOption/definitions/pushValidationInfo'
        pushValidationInfo:
          title: Push validation info
          type: object
          properties:
            warnings:
              type: array
              items:
                $ref: '#/components/schemas/PushOption/definitions/pushFieldValidation'
              nullable: true
            information:
              type: array
              items:
                $ref: '#/components/schemas/PushOption/definitions/pushFieldValidation'
              nullable: true
          additionalProperties: false
        pushFieldValidation:
          title: Push field validation
          required:
          - details
          type: object
          properties:
            field:
              type: string
              description: Field name that resulted in the validation issue.
            details:
              minLength: 1
              type: string
              description: Details on the validation issue.
            ref:
              type: string
              format: uri
              nullable: true
              description: Unique reference identifier for the validation issue.
          additionalProperties: false
        pushOptionType:
          title: Option Type
          description: The option type.
          enum:
          - Array
          - Object
          - String
          - Number
          - Boolean
          - DateTime
          - File
          - MultiPart
          type: string
        pushOptionChoice:
          title: Push Option Choice
          type: object
          properties:
            value:
              type: string
              minLength: 1
              description: Allowed value for field.
            type:
              $ref: '#/components/schemas/PushOption/definitions/pushOptionType'
            displayName:
              $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty/properties/displayName'
            description:
              $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty/properties/description'
            required:
              $ref: '#/components/schemas/PushOption/definitions/pushOptionProperty/properties/required'
    DateTime:
      title: Date time
      type: string
      examples:
      - '2022-10-23T00:00:00Z'
      - '2022-10-23'
      description: "In Codat's data model, dates and times are represented using the <a class=\"external\" href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601 standard</a>. Date and time fields are formatted as strings; for example:\n\n```\n2020-10-08T22:40:50Z\n2021-01-01T00:00:00\n```\n\n\n\nWhen syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:\n\n- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`\n- Unqualified local time: `2021-11-15T01:00:00`\n- UTC time offsets: `2021-11-15T01:00:00-05:00`\n\n> Time zones\n> \n> Not all dates from Codat will contain information about time zones.  \n> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced."
    DataStatus:
      title: Data status
      description: Describes the state of data in the Codat cache for a company and data type
      type: object
      required:
      - dataType
      - currentStatus
      properties:
        dataType:
          title: Data types
          x-internal: true
          type: string
          description: Available data types
          enum:
          - accountTransactions
          - balanceSheet
          - bankAccounts
          - bankTransactions
          - billCreditNotes
          - billPayments
          - bills
          - cashFlowStatement
          - chartOfAccounts
          - company
          - creditNotes
          - customers
          - directCosts
          - directIncomes
          - invoices
          - itemReceipts
          - items
          - journalEntries
          - journals
          - paymentMethods
          - payments
          - profitAndLoss
          - purchaseOrders
          - salesOrders
          - suppliers
          - taxRates
          - trackingCategories
          - transfers
          - banking-accountBalances
          - banking-accounts
          - banking-transactionCategories
          - banking-transactions
          - commerce-companyInfo
          - commerce-customers
          - commerce-disputes
          - commerce-locations
          - commerce-orders
          - commerce-paymentMethods
          - commerce-payments
          - commerce-productCategories
          - commerce-products
          - commerce-taxComponents
          - commerce-transactions
          example: invoices
        lastSuccessfulSync:
          $ref: '#/components/schemas/DateTime'
        currentStatus:
          $ref: '#/components/schemas/PullOperation/properties/status'
        latestSyncId:
          type: string
          description: Unique identifier for most recent sync of data type.
          format: uuid
          example: ad474a37-2003-478e-baee-9af9f1ec2fe3
        latestSuccessfulSyncId:
          type: string
          description: Unique identifier for the most recent successful sync of data type.
          format: uuid
          example: 8220fc90-55b6-47bc-9417-48ac6ea93101
      examples:
      - dataType: string
        lastSuccessfulSync: '2022-01-01T13:00:00.000Z'
        currentStatus: string
        latestSyncId: ad474a37-2003-478e-baee-9af9f1ec2fe3
        latestSuccessfulSyncId: 8220fc90-55b6-47bc-9417-48ac6ea93101
    PagingInfo:
      type: object
      title: Pagination information
      x-internal: true
      properties:
        pageNumber:
          type: integer
          description: Current page number.
        pageSize:
          type: integer
          description: Number of items to return in results array.
          maximum: 2000
        totalResults:
          type: integer
          description: Total number of items.
        _links:
          $ref: '#/components/schemas/PagingInfo/definitions/links'
      definitions:
        links:
          title: Hal Links
          type: object
          required:
          - self
          - current
          properties:
            self:
              $ref: '#/components/schemas/PagingInfo/definitions/halRef'
            current:
              $ref: '#/components/schemas/PagingInfo/definitions/halRef'
            next:
              $ref: '#/components/schemas/PagingInfo/definitions/halRef'
            previous:
              $ref: '#/components/schemas/PagingInfo/definitions/halRef'
          examples:
          - self:
              href: /companies
            current:
              href: /companies?page=1&pageSize=10
        halRef:
          title: Hypertext reference
          type: object
          properties:
            href:
              type: string
              format: uri-reference
              description: Uri hypertext reference.
      required:
      - pageNumber
      - pageSize
      - totalResults
      - _links
      examples:
      - pageNumber: 1
        pageSize: 10
        totalResults: 1
        _links:
          self:
            href: /companies/{id}/data/{dataType}
          current:
            href: /companies/{id}/data/{dataType}?page=1&pageSize=10
    PushOperation:
      title: Push operation
      type: object
      x-internal: true
      properties:
        changes:
          type: array
          nullable: true
          description: 'Contains a single entry that communicates which record has changed and the manner in which it changed. '
          items:
            $ref: '#/components/schemas/PushOperation/definitions/pushOperationChange'
        dataType:
          $ref: '#/components/schemas/DataStatus/properties/dataType'
          description: The type of data being pushed, eg invoices, customers.
        companyId:
          $ref: '#/paths/~1companies~1%7BcompanyId%7D~1syncSettings/post/requestBody/content/application~1json/schema/allOf/0/properties/companyId'
        pushOperationKey:
          type: string
          format: uuid
          description: A unique identifier generated by Codat to represent this single push operation. This identifier can be used to track the status of the push, and should be persisted.
        dataConnectionKey:
          $ref: '#/components/parameters/connectionId/schema'
        requestedOnUtc:
          $ref: '#/components/schemas/DateTime'
          description: The datetime when the push was requested.
        completedOnUtc:
          $ref: '#/components/schemas/DateTime'
          description: The datetime when the push was completed, null if Pending.
        timeoutInMinutes:
          type: integer
          format: int32
          nullable: true
          description: Number of minutes the push operation must complete within before it times out.
        timeoutInSeconds:
          type: integer
          format: int32
          nullable: true
          deprecated: true
          description: Number of seconds the push operation must complete within before it times out.
        status:
          $ref: '#/components/schemas/PushOperation/definitions/pushOperationStatus'
        errorMessage:
          type: string
          nullable: true
          description: A message about the error.
        validation:
          $ref: '#/components/schemas/PushOperation/definitions/validation'
        statusCode:
          type: integer
          description: Push status code.
      required:
      - companyId
      - pushOperationKey
      - dataConnectionKey
      - requestedOnUtc
      - status
      - statusCode
      definitions:
        validation:
          type: object
          title: Validation
          description: A human-readable object describing validation decisions Codat has made when pushing data into the platform. If a push has failed because of validation errors, they will be detailed here.
          properties:
            errors:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/PushOperation/definitions/validationItem'
            warnings:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/PushOperation/definitions/validationItem'
        validationItem:
          title: Validation item
          type: object
          properties:
            itemId:
              type: string
              nullable: true
              description: Unique identifier for a validation item.
            message:
              type: string
              nullable: true
              description: A message outlining validation item's issue.
            validatorName:
              type: string
              nullable: true
              description: Name of validator.
          additionalProperties: false
        pushChangeType:
          title: Push change type
          description: Type of change being applied to record in third party platform.
          type: string
          enum:
          - Unknown
          - Created
          - Modified
          - Deleted
          - AttachmentUploaded
        pushOperationRef:
          title: Push operation reference
          x-internal: true
          type: object
          properties:
            id:
              type: string
              description: Unique identifier for a push operation.
            dataType:
              $ref: '#/components/schemas/DataStatus/properties/dataType'
              nullable: true
          additionalProperties: false
        pushOperationStatus:
          title: Push operation status
          type: string
          enum:
          - Pending
          - Failed
          - Success
          - TimedOut
          description: The current status of the push operation.
        pushOperationChange:
          type: object
          properties:
            type:
              $ref: '#/components/schemas/PushOperation/definitions/pushChangeType'
            recordRef:
              $ref: '#/components/schemas/PushOperation/definitions/pushOperationRef'
            attachmentId:
              type: string
              description: Unique identifier for the attachment created otherwise null.
              nullable: true
    ErrorMessage:
      title: Error message
      type: object
      x-internal: true
      properties:
        statusCode:
          type: integer
          description: The HTTP status code returned by the error.
        service:
          type: string
          description: Codat's service the returned the error.
        error:
          type: string
          description: A brief description of the error.
        correlationId:
          type: string
          description: Unique identifier used to propagate to all downstream services and determine the source of the error.
        validation:
          $ref: '#/components/schemas/ErrorMessage/definitions/errorValidation'
        canBeRetried:
          type: string
          description: '`True` if the error occurred transiently and can be retried.'
        detailedErrorCode:
          type: integer
          description: Machine readable error code used to automate processes based on the code returned.
      definitions:
        errorValidation:
          title: Validation error
          type: object
          nullable: true
          description: A human-readable object describing validation decisions Codat has made. If an operation has failed because of validation errors, they will be detailed here.
          properties:
            errors:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ErrorMessage/definitions/errorValidationItem'
            warnings:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ErrorMessage/definitions/errorValidationItem'
        errorValidationItem:
          title: Validation error item
          type: object
          properties:
            itemId:
              type: string
              nullable: true
              description: Unique identifier for a validation item.
            message:
              type: string
              nullable: true
              description: A message outlining validation item's issue.
            validatorName:
              type: string
              nullable: true
              description: Name of validator.
    PushOperations:
      title: Push operations
      x-internal: true
      allOf:
      - type: object
        properties:
          results:
            type: array
            items:
              $ref: '#/components/schemas/PushOperation'
      - $ref: '#/components/schemas/PagingInfo'
    DataType:
      x-internal: true
      $ref: '#/components/schemas/DataStatus/properties/dataType'
  parameters:
    connectionId:
      name: connectionId
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: 2e9d2c44-f675-40ba-8049-353bfcb5e171
        description: Unique identifier for a company's data connection.
      description: Unique identifier for a connection.
    orderBy:
      name: orderBy
      in: query
      required: false
      schema:
        type: string
        example: -modifiedDate
      description: Field to order results by. [Read more](https://docs.codat.io/using-the-api/ordering-results).
    pageSize:
      name: pageSize
      in: query
      schema:
        type: integer
        format: int32
        default: 100
        example: 100
        minimum: 1
        maximum: 5000
      description: Number of records to return in a page. [Read more](https://docs.codat.io/using-the-api/paging).
    query:
      name: query
      in: query
      required: false
      schema:
        type: string
      example: id=e3334455-1aed-4e71-ab43-6bccf12092ee
      description: Codat query string. [Read more](https://docs.codat.io/using-the-api/querying).
    companyId:
      name: companyId
      in: path
      required: true
      schema:
        $ref: '#/paths/~1companies~1%7BcompanyId%7D~1syncSettings/post/requestBody/content/application~1json/schema/allOf/0/properties/companyId'
      description: Unique identifier for a company.
    page:
      name: page
      in: query
      schema:
        type: integer
        format: int32
        minimum: 1
        example: 1
        default: 1
      description: Page number. [Read more](https://docs.codat.io/using-the-api/paging).
    dataType:
      name: dataType
      description: The key of a Codat data type.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/DataType'
  responses:
    Unauthorized:
      description: Your API request was not properly authorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          examples:
            Unauthorized:
              value:
                statusCode: 401
                service: PublicApi
                error: Unauthorized
                correlationId: 7eb40d6b415d7bcd99ce658268284056
                canBeRetried: Unknown
                detailedErrorCode: 0
    Malformed-Query:
      description: Your `query` parameter was not correctly formed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          examples:
            Malformed query:
              value:
                statusCode: 400
                service: ClientsApi
                error: Error parsing query - Malformed query.
                correlationId: bc997528a9d7abb9161ef45f05d38599
                canBeRetried: Unknown
                detailedErrorCode: 0
            Unresolved property:
              value:
                statusCode: 400
                service: PullApi
                error: Error parsing query - Could not resolve property isCompleted on Dataset
                correlationId: 98457fb9956b7f9b4b2fd4f6e23bb5c8
                canBeRetried: Unknown
                detailedErrorCode: 0
    Payment-Required:
      description: 'An account limit has been exceeded. The type of limit is described in the error property:


        - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request.

        - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan.

        - Your Free account is older than 365 days and has expired. Contact support@codat.io.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          examples:
            Conflict:
              value:
                statusCode: 429
                service: PublicApi
                error: You have exceeded the 50-company limit that applies to a Free plan. We recommend that you delete any companies you no longer need and retry the request.
                correlationId: bc997528a9d7abb9161ef45f05d38599
                canBeRetried: Unknown
                detailedErrorCode: 0
    Too-Many-Requests:
      description: Too many requests were made in a given amount of time. Wait a short period and then try again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          examples:
            Conflict:
              value:
                statusCode: 429
                service: PublicApi
                error: You have made too many requests in a given amount of time; please retry later.
                correlationId: bc997528a9d7abb9161ef45f05d38599
                canBeRetried: Unknown
                detailedErrorCode: 0
    Not-Found:
      description: 'One or more of the resources you referenced could not be found.

        This might be because your company or data connection id is wrong, or was already deleted.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          examples:
            Data connection not found:
              value:
                statusCode: 404
                service: PublicApi
                error: Data connection a22dd66b-564a-4832-9b37-7b3ce4aeb7de not found
                correlationId: 8fa2b5f4794970a4ee73758f612e8df0
                canBeRetried: Unknown
                detailedErrorCode: 0
            Company not found:
              value:
                statusCode: 404
                service: ClientsApi
                error: No company was found with ID 846ed55c-974b-4392-a1f1-87b6fdbf3c5e
                correlationId: 0a40c2f31fc8f992fb88b0853e4166f3
                canBeRetried: Unknown
                detailedErrorCode: 0
            No data available:
              value:
                statusCode: 404
                service: PublicApi
                error: No data available for accounts for ID e5889b459f544926ac5b8e6756df2s
                correlationId: 0a40c2f31fc8f992fb88b0853e4166f3
                canBeRetried: Unknown
                detailedErrorCode: 0
    Internal-Server-Error:
      description: There is a problem with our server. Please try again later.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          examples:
            Conflict:
              value:
                statusCode: 500
                service: PublicApi
                error: There is a problem with our server. Please try again later.
                correlationId: bc997528a9d7abb9161ef45f05d38599
                canBeRetried: Unknown
                detailedErrorCode: 0
    Forbidden:
      description: You are using an outdated API key or a key not associated with that resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          examples:
            Conflict:
              value:
                statusCode: 403
                service: PublicApi
                error: You are using an outdated API key or a key not associated with that resource.
                correlationId: bc997528a9d7abb9161ef45f05d38599
                canBeRetried: Unknown
                detailedErrorCode: 0
    Service-Unavailable:
      description: The Codat API is temporarily offline for maintenance. Please try again later.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
          examples:
            Conflict:
              value:
                statusCode: 500
                service: PublicApi
                error: The Codat API is temporarily offline for maintenance. Please try again later.
                correlationId: bc997528a9d7abb9161ef45f05d38599
                canBeRetried: Unknown
                detailedErrorCode: 0
  securitySchemes:
    auth_header:
      name: Authorization
      description: The word "Basic" followed by a space and your API key. [API keys](https://docs.codat.io/platform-api#/schemas/ApiKeyDetails) are tokens used to control access to the API. You can get an API key via [the Codat Portal](https://app.codat.io/developers/api-keys), via [the API](https://docs.codat.io/platform-api#/operations/list-api-keys), or [read more](https://docs.codat.io/using-the-api/authentication) about authentication at Codat.
      type: apiKey
      in: header
      x-speakeasy-example: Basic BASE_64_ENCODED(API_KEY)
x-speakeasy-retries:
  strategy: backoff
  backo

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/codat/refs/heads/main/openapi/codat-push-data-api-openapi.yml