Skip to content
StatusSupportDashboard

Add data

post/v1/data/{namespace}

Add data to a namespace. This method returns immediately; data is processed asynchronously.

Path ParametersExpand Collapse
namespace: string

The namespace to ingest data into

Body ParametersExpand Collapse
data: object { id } or array of object { id }

A data object to ingest. Must have an id field. All other fields are flexible and can any JSON types.

Accepts one of the following:
ID = object { id }

A data object to ingest. Must have an id field. All other fields are flexible and can any JSON types.

id: string

Unique identifier for this data object. This should be a meaningful identifier in the customer's system, as it is the main way to search for specific items between systems.

UnionMember1 = array of object { id }
id: string

Unique identifier for this data object. This should be a meaningful identifier in the customer's system, as it is the main way to search for specific items between systems.

schema: optional map[object { content_type, display_hint, field_limit, namespace_ref } ]

Schema mapping field names to their definitions. Use content_type to specify which fields contain URLs that should be processed (images, videos, or websites), datetime fields, or 'metadata' for fields that should be stored but not indexed. Use display_hint to provide UI rendering hints.

content_type: optional "image_url" or "video_url" or "website_url" or 2 more

The type of content (image_url, video_url, website_url, datetime, or metadata). When specified as a URL type, SafetyKit will process the URL. Use 'metadata' for fields that should be stored but not indexed.

Accepts one of the following:
"image_url"
"video_url"
"website_url"
"datetime"
"metadata"
display_hint: optional object { type }

Display hint for UI rendering of this field

type: "title" or "subtitle" or "description" or 6 more

The display hint type

Accepts one of the following:
"title"
"subtitle"
"description"
"primary_image_url"
"video_url"
"location"
"email.reply_to"
"email.body"
"email.subject"
field_limit: optional number

Maximum amount of this field to include when sending to AI models. For text fields, this is the character limit. For array fields (e.g. image URLs), this is the maximum number of items.

minimum0
exclusiveMinimum
namespace_ref: optional string

The namespace which an id refers to, creating a parent-child relationship with that namespace.

ReturnsExpand Collapse
requestId: string

Unique identifier for tracking this request. Data processing happens asynchronously after this response.

status: "accepted"

Request was accepted for processing

Add data
curl https://api.safetykit.com/v1/data/$NAMESPACE \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $SAFETYKIT_API_KEY" \
    -d '{
          "data": {
            "id": "user-12345"
          },
          "schema": {
            "profile_image": {
              "content_type": "image_url"
            },
            "cover_photo": {
              "content_type": "image_url"
            },
            "website": {
              "content_type": "website_url"
            }
          }
        }'
{
  "requestId": "req_01h2m7qdmdjckc30e1mnq6xqfd",
  "status": "accepted"
}
Returns Examples
{
  "requestId": "req_01h2m7qdmdjckc30e1mnq6xqfd",
  "status": "accepted"
}