Skip to content
StatusSupportDashboard

Add data

client.data.add(stringnamespace, DataAddParams { data, schema } body?, RequestOptionsoptions?): DataAddResponse { requestId, status }
post/v1/data/{namespace}

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

ParametersExpand Collapse
namespace: string

The namespace to ingest data into

body: DataAddParams { data, schema }
data?: Array<Data>
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?: Record<string, Schema>

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?: "image_url" | "video_url" | "website_url" | 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?: DisplayHint { type }

Display hint for UI rendering of this field

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

The display hint type

Accepts one of the following:
"title"
"subtitle"
"description"
"primary_image_url"
"video_url"
"location"
"email.replyTo"
"email.body"
"email.subject"
namespace_ref?: string

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

ReturnsExpand Collapse
DataAddResponse { requestId, status }

Response confirming data was accepted for asynchronous processing. The requestId can be used for debugging and tracking.

requestId: string

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

status: "accepted"

Request was accepted for processing

Add data
import Safetykit from 'safetykit';

const client = new Safetykit({
  apiKey: process.env['SAFETYKIT_API_KEY'], // This is the default and can be omitted
});

const response = await client.data.add('namespace', {
  data: null,
  schema: {
    profile_image: { content_type: 'image_url' },
    cover_photo: { content_type: 'image_url' },
    website: { content_type: 'website_url' },
  },
});

console.log(response.requestId);
{
  "requestId": "req_01h2m7qdmdjckc30e1mnq6xqfd",
  "status": "accepted"
}
Returns Examples
{
  "requestId": "req_01h2m7qdmdjckc30e1mnq6xqfd",
  "status": "accepted"
}