Orange Logic Batchupsert 4FY V1 API

The Batchupsert 4FY V1 API from Orange Logic — 1 operation(s) for batchupsert 4fy v1.

Operations 1

POST /batchupsert_4FY_v1 Batch upsert a JSON array #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/orangelogic:orangelogic-batchupsert-4fy-v1-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

orangelogic-batchupsert-4fy-v1-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: object-management-batch-upsert Batchupsert 4FY V1 API
  version: '1.0'
servers:
- url: https://{OrangeLogicURL}/webapi/objectmanagement/multiobjectstools/datatable
  variables:
    OrangeLogicURL:
      default: OrangeLogicURL
security:
- sec0: []
tags:
- name: Batchupsert 4FY V1
paths:
  /batchupsert_4FY_v1:
    post:
      summary: Batch upsert a JSON array
      description: Perform batch upserts of JSON arrays
      operationId: batch-upsert-a-json-array
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - dataOptions
              - records
              properties:
                dataOptions:
                  type: object
                  description: The information that determines the behavior of the batch upsert operations.
                  required:
                  - table
                  - fieldToMatch
                  properties:
                    table:
                      type: string
                      description: The type of records to alter. Can be either <code>Documents</code> or <code>Contacts</code>.
                    subtypeForNewRecords:
                      type: string
                      description: The contact or asset subtype of any newly-created records. This is required when your call creates new records.  <br/> This parameter uses the DataTable API syntax for <a href="https://developer.orangelogic.com/reference/base-calls-for-managing-assets">assets</a> and <a href="https://developer.orangelogic.com/reference/base-calls-for-managing-contacts">Contacts</a> in the format <code>{Documents-or-Contacts}.{Asset_type}.{Asset_subtype}</code>. For example, for a standard video you would use <code>Documents.Video.Default</code>. <br/> For more information on asset types and subtypes, go to the <a href="https://developer.orangelogic.com/reference/assets#asset-type-and-subtype">Assets</a> article.
                    fieldToMatch:
                      type: string
                      description: The field used to identify records to update in Orange Logic. This field <strong>must</strong> match the field used to identify records to update or create in the <code>records</code> object.<ul><li>The <code>MediaEncryptedIdentifier</code> is the Record ID.</li><li>The <code>CoreField.Identifier</code> is the Unique ID.</li><li>The <code>CoreField.Id_client</code> is the Legacy ID.</li><li>The <code>CoreField.OriginalFileName</code> is the Original File Name.</li></ul>
                      enum:
                      - MediaEncryptedIdentifier
                      - CoreField.Identifier
                      - CoreField.Id_client
                      - CoreField.OriginalFileName
                    ignoreExistingRecords:
                      type: boolean
                      description: Whether to <strong>update</strong> records that already exist in the Orange Logic database.  <ul> <li>When <code>true</code>, the call returns the code <code>IGNORED_EXISTING_RECORD</code> if a provided record is found in the Orange Logic database.</li> <li>When <code>false</code>, the call updates the provided record.</li> </ul>
                      default: false
                    ignoreMissingRecords:
                      type: boolean
                      description: Whether to <strong>create</strong> new records if a provided record does not match any records in the Orange Logic database.  <ul> <li>When <code>true</code>, the call returns the code <code>IGNORED_MISSING_RECORD</code> if a provided record is not found.</li> <li>When <code>false</code>, the call creates a new database entry with the provided record if that record is not found in the Orange Logic database.</li> </ul>
                      default: false
                    multiValueSeparator:
                      type: string
                      description: The separator used to pass values to a multi-valued field, including an authority list, with a single string.  For example, let’s say you want a multi-valued field to include the values <code>red</code>, <code>blue</code>, and <code>yellow</code>. If you leave the default <code>multiValueSeparator</code> pipe (<code>|</code>), your field entry would be <code>"red|blue|yellow"</code>. </br> However, we recommend instead using an array of strings with the syntax <code>["red", "blue", "yellow"]</code> because it allows more flexibility in your field entries.
                      default: '|'
                    augmentAuthorityListsOnTheFly:
                      type: boolean
                      description: Whether to create new tags if the provided tags do not exist in a multi-valued field’s authority list.  <ul> <li>When <code>true</code>, if one of the values assigned to a multi-valued field doesn’t exist in that field’s authority list, Orange Logic creates a new tag for that value, includes it in the authority list, and assigns it to the multi-value field.</li> <li>When <code>false</code>, if a value assigned to a multi-valued field doesn’t exist in that field’s authority list, Orange Logic does not create a new tag or assign the value to that field.</li> </ul>
                      default: false
                    maxRecordsAffected:
                      type: integer
                      description: The maximum number of Orange Logic database records that the call alters for each record submitted in the call. If Orange Logic finds more records than the maximum specified, it returns an error and doesn’t make any updates.  </br> For example, let’s say you want to update the record with the Original File Name “London sunset.” If you set this parameter to one and more than one Orange Logic record has “London sunset” as the Original File Name, Orange Logic will not change any records.
                      default: 1
                      format: int32
                    indexInBackground:
                      type: boolean
                      description: Set to `true` to delay indexing and speed up the API call processing time. </br> This parameter is available beginning in [Orange Logic Ottawa](https://developer.orangelogic.com/reference/about#orange-logic-api-versioning).
                      default: false
                    indexingPriority:
                      type: string
                      description: Forces the records to be indexed in a lower-priority queue to avoid impacting the primary indexing queue. For example, if you are calling large batches of records, the calls might fire faster than the database can index them. You can append IndexingPriority=Low to avoid overloading the queue. Leave this parameter blank to keep the call in a high priority indexing queue. </br> This parameter is available beginning in [Orange Logic Ottawa](https://developer.orangelogic.com/reference/about#orange-logic-api-versioning).
                      enum:
                      - Medium
                      - Low
                      - VeryLow
                executionOptions:
                  type: object
                  description: Determines how Orange Logic completes the call.
                  properties:
                    executeSynchronously:
                      type: boolean
                      description: Whether the batch job is executed synchronously (foreground) or asynchronously via the agent job (background). <ul> <li>When <code>true</code>, the API call is executed synchronously and you must wait until the server returns the response, including all the results of the batch operation.</li> <li>When <code>false</code>, the API call is executed asynchronously. The batch job is passed to the agent and the API responds immediately with the <a href="https://developer.orangelogic.com/reference/batch-upsert#call-responses">jobRecordID</a> of the asynchronous processing task. You can use this processing task recordID to query the status and the result of the batch job via the <a href="https://developer.orangelogic.com/reference/query-asynchronous-batch-upsert-calls">Query asynchronous batch upsert calls API</a> or in the Orange Logic interface in <strong>Administration</strong> > <strong>Maintenance</strong> > <strong>Show Processing Tasks</strong>.</li> </ul>
                      default: true
                    successWebHookEndpoint:
                      type: string
                      description: The <a href="https://developer.orangelogic.com/reference/webhooks">webhook</a> that receives success notifications for each upsert operation in an asynchronous batch.
                    failureWebHookEndpoint:
                      type: string
                      description: The <a href="https://developer.orangelogic.com/reference/webhooks">webhook</a> that receives failure notifications for each upsert operation in an asynchronous batch.
                    webHookCustomHttpHeaders:
                      type: object
                      description: 'The custom header is included in the <span style="color:#0171C2">**POST**</span> request to the webhook endpoints. You can use this to add extra context to the webhook notifications with the format <code>"description": "string"</code>.'
                      properties:
                        jobID:
                          type: string
                          description: Example custom webhook header.
                records:
                  type: array
                  description: An array that includes one object for each record you want to update or create. Each object must include the field you used in the <code>fieldsToMatch</code> parameter. This field is used to find the record in the Orange Logic platform. You can update multiple fields for each record.
                  items:
                    properties:
                      CoreField.Identifier:
                        type: string
                        description: The record's <a href="https://developer.orangelogic.com/reference/assets#unique-identifiers">Unique ID</a>. Enter only if you selected this in the <code>fieldToMatch</code> parameter.
                      CoreField.MediaEncryptedIdentifier:
                        type: string
                        description: The record's Media Encrypted Identifier, or <a href="https://developer.orangelogic.com/reference/assets#record_id">Record ID</a>. Enter only if you selected this in the <code>fieldToMatch</code> parameter.
                      CoreField.Id_client:
                        type: string
                        description: The record’s Legacy Identifier. Enter only if you selected this in the <code>fieldToMatch</code> parameter.
                      Corefield.OriginalFileName:
                        type: string
                        description: The record's Original File Name. Enter only if you selected this in the <code>fieldToMatch</code> parameter.
                      CoreField.Title:
                        type: string
                        description: The title of the updated or newly created record. (The title is not required; this is just an example of metadata you might want to add to the asset.)
                      CoreField.Keywords:
                        type: array
                        description: The keywords to add to the title as an array, in the format <code>["Tower of London", "sightseeing"]</code>. (Keywords are not required; this is just an example of metadata you might want to add to the asset.)
                        default: []
                        items:
                          type: string
                      '[Custom_Metadata]':
                        type: string
                        description: 'You can add other metadata fields with this syntax <code>"FieldAPIname": "value"</code>.'
                    type: object
            examples:
              'Example 1: Synchronous execution':
                value:
                  dataOptions:
                    table: Documents
                    subtypeForNewRecords: Documents.Image.Default
                    fieldToMatch: CoreField.Identifier
                    ignoreExistingRecords: false
                    ignoreMissingRecords: false
                    multiValueSeparator: '|'
                    augmentAuthorityListsOnTheFly: true
                    maxRecordsAffected: 1
                  executionOptions:
                    executeSynchronously: true
                    successWebHookEndpoint: https://webhook.site/e87774b5-3598-49d4-91a5-8bf2a9a29184
                    failureWebHookEndpoint: https://webhook.site/e87774b5-3598-49d4-91a5-8bf2a9a29184
                    webHookCustomHttpHeaders:
                      jobID: demo
                  records:
                  - CoreField.Identifier: ZZ13UJ5
                    CoreField.Title: Tower bridge reflection at dusk
                    CoreField.Keywords:
                    - Tower of London
                    - sightseeing
                  - CoreField.Identifier: ''
                    CoreField.Title: New image
                    CoreField.Keywords: Tower of London|sightseeing|UK
              'Example 2: Asynchronous execution':
                value:
                  dataOptions:
                    table: Documents
                    subtypeForNewRecords: Documents.Image.Default
                    fieldToMatch: CoreField.Identifier
                    ignoreExistingRecords: false
                    ignoreMissingRecords: false
                    multiValueSeparator: '|'
                    augmentAuthorityListsOnTheFly: true
                    maxRecordsAffected: 1
                  executionOptions:
                    executeSynchronously: false
                    successWebHookEndpoint: https://webhook.site/e87774b5-3598-49d4-91a5-8bf2a9a29184
                    failureWebHookEndpoint: https://webhook.site/e87774b5-3598-49d4-91a5-8bf2a9a29184
                    webHookCustomHttpHeaders:
                      jobID: demo
                  records:
                  - CoreField.Identifier: ZZ13UJ5
                    CoreField.Title: Tower bridge reflection at dusk
                    CoreField.Keywords:
                    - Tower of London
                    - sightseeing
                  - CoreField.Identifier: ''
                    CoreField.Title: New image
                    CoreField.Keywords: Tower of London|sightseeing|UK
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                'Example 1: Synchronous execution':
                  value: "{\n   \"transactionID\": \"ZZ1VT000000001413\",\n   \"results\": [\n       {\n           \"recordID\": \"2QDTWAWJ378\",\n           \"matchedFieldValue\": \"\",\n           \"code\": \"SUCCESS\",\n           \"error\": null\n       },\n       {\n           \"recordID\": \"2QDTWAWJ9A4\",\n           \"matchedFieldValue\": \"ZZ13UJ2\",\n           \"code\": \"SUCCESS\",\n           \"error\": null\n       }\n   ],\n   \"executeInBackground\": false,\n   \"jobRecordID\": null\n}"
                'Example 2: Asynchronous execution':
                  value: "{\n  \"transactionID\": null,\n  \"results\": null,\n  \"executeInBackground\": true,\n  \"jobRecordID\": \"ZZ1AP000000010181\"\n}"
              schema:
                oneOf:
                - title: 'Example 1: Synchronous execution'
                  type: object
                  properties:
                    transactionID:
                      type: string
                      example: ZZ1VT000000001413
                    results:
                      type: array
                      items:
                        type: object
                        properties:
                          recordID:
                            type: string
                            example: 2QDTWAWJ378
                          matchedFieldValue:
                            type: string
                            example: ''
                          code:
                            type: string
                            example: SUCCESS
                          error: {}
                    executeInBackground:
                      type: boolean
                      example: false
                      default: true
                    jobRecordID: {}
                - title: 'Example 2: Asynchronous execution'
                  type: object
                  properties:
                    transactionID: {}
                    results: {}
                    executeInBackground:
                      type: boolean
                      example: true
                      default: true
                    jobRecordID:
                      type: string
                      example: ZZ1AP000000010181
      deprecated: false
      tags:
      - Batchupsert 4FY V1
components:
  securitySchemes:
    sec0:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://example.com/oauth2/token
          scopes: {}
x-readme-fauxas: true
x-provenance:
  method: searched
  source: https://developer.orangelogic.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developer.orangelogic.com/reference/batch-upsert-a-csv-file.md
  - https://developer.orangelogic.com/reference/batch-upsert-a-json-array.md
  - https://developer.orangelogic.com/reference/query-asynchronous-batch-upsert-calls.md
  merge:
    pages: 3
    deduped: 2
    conflicts_kept_first: 0