← All documentationContents ↓

Getting Started with the Simply360 API

Set up your environment, install the TypeScript SDK, create an API key, and make your first Simply360 API call.

Overview

This guide walks you through setting up your environment, installing the Simply360 TypeScript SDK, creating an API key, and making your first API call. You can be up and running in under five minutes.

Prerequisites

Before you begin, make sure you have:

  • A Simply360 account with access to at least one team.
  • An API key generated from your Simply360 dashboard. Navigate to Team Administration → API Keys and click Create API Key. Copy the key immediately — the full value is only shown once.
  • Node.js 18+ installed if using the TypeScript SDK.

Your API key will look like this:

s360_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

The examples below use production, which is the default environment. Staging is a paid add-on or an included offer benefit, while Development is a separate, limited preview add-on or beta grant. If your Simply360-powered app has non-production access, create a separate API key in that environment and use the matching endpoint from Environments.

Install the SDK

The SDK is currently in developer preview and is not yet published to the public npm registry — contact developers@simply360.app for access, and watch the API Changelog for the public release announcement. Once available, install it with:

npm install @simply360/sdk
# or
yarn add @simply360/sdk
# or
pnpm add @simply360/sdk

The SDK ships with full TypeScript declarations — no separate @types package is needed.

Configure the Client

Create a client instance with your API key. Store the key in an environment variable rather than hard-coding it.

import { Simply360 } from '@simply360/sdk';

const s360 = new Simply360({
  apiKey: process.env.S360_API_KEY!, // s360_live_...
});

The client handles authentication, request building, and JSON serialization for you.

Your First API Call: List Records

Retrieve a list of records from one of your DataCollections. You will need the collection's simplyId, which you can find in the Simply360 dashboard under the collection's settings.

TypeScript SDK

import { Simply360 } from '@simply360/sdk';

const s360 = new Simply360({
  apiKey: process.env.S360_API_KEY!,
});

async function main() {
  const response = await s360.dataRecords.list({
    dataCollectionSimplyId: 'XXXX-XXXX-XXXX',
    limit: 10,
  });

  console.log(`Found ${response.data.length} records out of ${response.meta.pagination.total}`);
  for (const record of response.data) {
    console.log(`  ${record.simplyId}:`, record.fields);
  }
}

main();

Raw HTTP (fetch)

const apiKey = process.env.S360_API_KEY!;
const dataCollectionSimplyId = 'XXXX-XXXX-XXXX';

const response = await fetch(
  `https://api.simply360.app/v1/data-records?dataCollectionSimplyId=${dataCollectionSimplyId}&limit=10`,
  {
    headers: {
      Authorization: `Bearer ${apiKey}`,
      'Content-Type': 'application/json',
    },
  },
);

const body = await response.json();
console.log(`Found ${body.data.length} records out of ${body.meta.pagination.total}`);

cURL

curl -s "https://api.simply360.app/v1/data-records?dataCollectionSimplyId=XXXX-XXXX-XXXX&limit=10" \
  -H "Authorization: Bearer $S360_API_KEY" | jq '.data[] | {simplyId, fields}'

Create a Record

Create a new record by providing the collection's simplyId and field values. Field keys are each DataField's simplyId, not the human-readable label.

const created = await s360.dataRecords.create({
  dataCollectionSimplyId: 'XXXX-XXXX-XXXX',
  fields: {
    'FLDS-FRST-NAME': 'Jane',
    'FLDS-LAST-NAME': 'Doe',
    'FLDS-EMAL-ADDR': 'jane.doe@example.com',
  },
});

console.log(`Created record: ${created.data.simplyId}`);

To find the field simplyIds for a collection, call s360.dataCollections.listFields(dataCollectionSimplyId) or open the collection in the dashboard.

Error Handling

The SDK throws an ApiError for any non-2xx response. Each ApiError includes the HTTP statusCode, an error code, a message, and optional details.

import { Simply360, ApiError } from '@simply360/sdk';

const s360 = new Simply360({ apiKey: process.env.S360_API_KEY! });

try {
  await s360.dataRecords.get('NONE-XIST-ENT0');
} catch (error) {
  if (error instanceof ApiError) {
    console.error(`API error ${error.statusCode} (${error.code}): ${error.message}`);
    if (error.statusCode === 404) {
      console.error('Record not found.');
    }
  } else {
    throw error;
  }
}

Next Steps