Skip to main content
POST
/
upload
/
multipart
/
{username}
/
{namespace}
/
{datasetName}
/
finish
Finish multipart upload
curl --request POST \
  --url https://api.datalinks.com/api/v1/upload/multipart/{username}/{namespace}/{datasetName}/finish \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data @- <<EOF
{
  "uploadId": "2~VmxqYXRlRDZWfjJrRWRiZ2FEQXk3dHI4DGhGLygtTmQNXEZPQXFzMVZOZTUgdEdrXCEyNStkQUp3U3Q2RjJqSkV4MFNBOWxJCk0yIHEkfcQ",
  "key": "uploads/data/20240301-143022-uuid.json",
  "parts": [
    {
      "partNumber": 1,
      "etag": "d41d8cd98f00b204e9800998ecf8427e"
    }
  ],
  "name": "sales-data-2024.csv",
  "infer": {
    "steps": [
      {
        "type": "table",
        "deriveFrom": "<string>",
        "additionalInstructions": "This text contains a table comma separated, but instead of line breaks we are using a ';'.",
        "model": "<string>",
        "provider": "<string>",
        "replaceOriginalColumn": false
      }
    ]
  },
  "link": {
    "ExactMatch": {
      "minDistinct": 123,
      "minVariation": 123,
      "bidirectional": true,
      "targetColumns": [
        "<string>"
      ],
      "ignorePrivateColumns": true
    },
    "GeoMatch": {
      "distance": 123,
      "distanceUnit": "<string>",
      "bidirectional": true,
      "targetColumns": [
        "<string>"
      ],
      "ignorePrivateColumns": true
    }
  },
  "inferBatchSize": 100,
  "dataDescription": "Employee dataset containing demographics and compensation.",
  "schemaDefinition": {
    "id": "unique employee identifier",
    "name": "full employee name",
    "age": "employee age in years",
    "department": "work department",
    "salary": "annual salary in USD"
  }
}
EOF
{
  "id": "550e8400-e29b-41d4-a716-446655440000"
}

Documentation Index

Fetch the complete documentation index at: https://docs.datalinks.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Use a Bearer token for authentication. Submit the token using the Authorization header: Authorization: Bearer <token>.

Path Parameters

username
string
required

The username associated with the request.

namespace
string
required

Namespace for the dataset.

datasetName
string
required

Name of the dataset.

Body

application/json
uploadId
string
required

Upload ID from the prepare response.

Example:

"2~VmxqYXRlRDZWfjJrRWRiZ2FEQXk3dHI4DGhGLygtTmQNXEZPQXFzMVZOZTUgdEdrXCEyNStkQUp3U3Q2RjJqSkV4MFNBOWxJCk0yIHEkfcQ"

key
string
required

S3 object key from the prepare response.

Example:

"uploads/data/20240301-143022-uuid.json"

parts
object[]
required

Array of completed parts with their ETags.

Minimum array length: 1
name
string

Optional name/label for the ingestion (e.g., original filename).

Example:

"sales-data-2024.csv"

infer
object

Optional inference pipeline steps to run on each batch of data after reading from S3.

Optional entity resolution configuration.

inferBatchSize
integer | null

Number of rows per LLM inference batch. Defaults to 1000. Reduce for large files to avoid S3 read timeouts caused by slow LLM processing.

Example:

100

dataDescription
string | null

A description of the dataset to help the AI system understand the context.

Maximum string length: 10000
Example:

"Employee dataset containing demographics and compensation."

schemaDefinition
object

A schema definition mapping field names to descriptions, to guide the AI system in structuring the extracted data.

Example:
{
"id": "unique employee identifier",
"name": "full employee name",
"age": "employee age in years",
"department": "work department",
"salary": "annual salary in USD"
}

Response

Completes the multipart upload and returns the ingestion id.

id
string<uuid>
required

Ingestion id created for background ingestion.

Example:

"550e8400-e29b-41d4-a716-446655440000"