Skip to main content
POST
https://api.getmetal.io
/
v1
/
data-entities
# Example Request
curl -X POST "https://api.getmetal.io/v1/data-entities" \
--header 'Content-Type: application/json' \
--header 'x-metal-api-key: <api-key>' \
--header 'x-metal-client-id: <client-id>' \
--data '{
  "datasource": "datasourceID",
  "name": "Song Lyrics",
  "sourceType": "file",
  "metadata": {
    "author": "Rolling Stone"
  }
}'
{
  "data": {
    "id": "dataEntityID",
    "datasource": "datasourceID",
    "name": "Song Lyrics",
    "extractedMetadata": [
      {
        "name": "band",
        "value": "Iron Maiden",
        "type": "string",
        "autoExtract": true
      }
    ],
    "sourcetype": "file",
    "status": "CREATED",
    "createdAt": "2023-08-29T17:00:55.002Z",
    "updatedAt": "1970-01-01T00:00:00Z",
    "metadata": {
      "author": "Rolling Stone",
      "band": "Iron Maiden"
    },
    "metadataFields": [
      {
        "name": "band",
        "type": "string",
        "description": "Which heavy metal band is represented by the iconic mascot Eddie?",
        "autoExtract": true
      },
      {
        "name": "author",
        "type": "string",
        "autoExtract": false
      }
    ],
    "url": "signed_upload_url",
    "createdBy": "userID"
  }
}

Two-step process

This endpoint is a two-step process. First, you create the data entity’s URL, and then you upload the file to the signed URL.
  • Step 1: POST https://api.getmetal.io/v1/data-entities
  • Step 2: PUT to the signed URL

Step 1: Request URL for the File

Auth Headers

x-metal-api-key
string
required
An API key for your org.
x-metal-client-id
string
required
A Client ID for your org.

Body

datasource
ObjectID
required
The datasource ID.
name
string
required
The name of the data entity.
metadata
object
An object of metdatadata keys/values. The key is the field key and the value is the field value for this entity.
sourceType
string
required
The type of the source (e.g., “PDF”, “Text”).

Response

data
Data Entity Object
# Example Request
curl -X POST "https://api.getmetal.io/v1/data-entities" \
--header 'Content-Type: application/json' \
--header 'x-metal-api-key: <api-key>' \
--header 'x-metal-client-id: <client-id>' \
--data '{
  "datasource": "datasourceID",
  "name": "Song Lyrics",
  "sourceType": "file",
  "metadata": {
    "author": "Rolling Stone"
  }
}'
{
  "data": {
    "id": "dataEntityID",
    "datasource": "datasourceID",
    "name": "Song Lyrics",
    "extractedMetadata": [
      {
        "name": "band",
        "value": "Iron Maiden",
        "type": "string",
        "autoExtract": true
      }
    ],
    "sourcetype": "file",
    "status": "CREATED",
    "createdAt": "2023-08-29T17:00:55.002Z",
    "updatedAt": "1970-01-01T00:00:00Z",
    "metadata": {
      "author": "Rolling Stone",
      "band": "Iron Maiden"
    },
    "metadataFields": [
      {
        "name": "band",
        "type": "string",
        "description": "Which heavy metal band is represented by the iconic mascot Eddie?",
        "autoExtract": true
      },
      {
        "name": "author",
        "type": "string",
        "autoExtract": false
      }
    ],
    "url": "signed_upload_url",
    "createdBy": "userID"
  }
}

Step 2: Upload the File to the Signed URL

# Example Request
curl --location --request PUT '<preSignedUrl>' \
--header 'Content-Type: application/pdf' \
--upload-file '/path/to/your/example.pdf'