Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/softsync-ai:softsync-ai-templates-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Softsync Templates API
description: '## Introduction
The Softsync Platform API
This API lets you read and write your Softsync data from your own applications. Authenticate with a personal API key created in **Settings → API Keys**, sent as the `x-api-key` header.
**New here?** Read **Concepts** first, then **Authentication**, then **Quickstart: full cycle** — it walks the whole thing end to end. **Objects**, **Records**, **Groups & Views** and **Notes** cover each area in depth, and **Code Generation** shows how to turn this document into a typed client.
To try a request from this page, paste your API key into the **Authentication** panel on the right.
## Support
If you need help with API access or integration details, contact contact@softsync.ai.'
version: 0.1.0
contact: {}
servers: []
security:
- x-api-key: []
tags:
- name: Templates
paths:
/templates/catalog:
get:
operationId: getTemplateCatalog
parameters: []
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TemplateCatalogEntry'
security:
- bearer: []
summary: Add-on templates with their installed state
tags:
- Templates
x-feature: templates
/templates/cms/builder-prompt:
get:
operationId: getCmsBuilderPrompt
parameters:
- name: api
required: true
in: query
description: The API address
schema:
type: string
- name: app
required: true
in: query
description: The app address
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
properties:
prompt:
type: string
security:
- bearer: []
summary: The text to paste into an AI website builder so it uses this workspace as the…
tags:
- Templates
x-feature: templates
/templates/website/builder-prompt:
post:
operationId: getWebsiteBuilderPrompt
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebsiteBuilderPromptDto'
responses:
'200':
description: ''
content:
application/json:
schema:
properties:
prompt:
type: string
security:
- bearer: []
summary: 'The one text to paste into an AI website builder: the parts the app runs for…'
tags:
- Templates
x-feature: templates
/templates/examples:
get:
operationId: getExampleData
parameters: []
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ExampleDataStatus'
security:
- bearer: []
summary: How many example records templates added are left, and how many of the team's…
tags:
- Templates
x-feature: templates
/templates/examples/remove:
post:
operationId: removeExampleData
parameters: []
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/RemovedExampleData'
security:
- bearer: []
summary: Move every example record templates added to the Deleted Bin, locked ones…
tags:
- Templates
x-feature: templates
/templates/copy/preview:
post:
operationId: previewCopyToWorkspace
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CopyToWorkspaceDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CopyPlan'
security:
- bearer: []
summary: What copying setup from this organization into another would add, without…
tags:
- Templates
x-feature: templates
/templates/copy:
post:
operationId: copyToWorkspace
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CopyToWorkspaceDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CopyPlan'
security:
- bearer: []
summary: Copy setup (objects, groups with their views and dashboards, forms, email and…
tags:
- Templates
x-feature: templates
/templates/{name}/preview:
post:
operationId: previewTemplateInstall
parameters:
- name: name
required: true
in: path
description: Template name from GET /templates/catalog, e.g. real-estate
schema:
type: string
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/TemplatePlan'
security:
- bearer: []
summary: What installing a template would add, without changing anything
tags:
- Templates
x-feature: templates
/templates/{name}/install:
post:
operationId: installTemplate
parameters:
- name: name
required: true
in: path
description: Template name from GET /templates/catalog, e.g. real-estate
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/InstallTemplateDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/TemplatePlan'
security:
- bearer: []
summary: Install or update an add-on template.
tags:
- Templates
x-feature: templates
/templates/{name}/uninstall:
post:
operationId: uninstallTemplate
parameters:
- name: name
required: true
in: path
description: Template name from GET /templates/catalog, e.g. real-estate
schema:
type: string
responses:
'201':
description: How many of the template's groups were hidden
content:
application/json:
schema:
type: object
properties:
hiddenGroups:
type: number
security:
- bearer: []
summary: Hide an add-on template's groups. Its objects and records are kept
tags:
- Templates
x-feature: templates
/templates/seed/crm:
post:
operationId: seedCrm
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SeedTemplateDto'
responses:
'201':
description: The new organization
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'400':
description: The organization could not be created
'403':
description: Not an admin of the organization named
'404':
description: Organization or template not found
security:
- bearer: []
summary: 'Create an organization: set up from a template, or copied from another…'
tags:
- Templates
x-feature: templates
components:
schemas:
ExampleDataStatus:
type: object
properties:
examples:
type: number
description: Example records still in the workspace.
ownRecords:
type: number
description: The team's own records in the objects that hold examples.
required:
- examples
- ownRecords
Workspace:
type: object
properties:
id:
type: string
name:
type: string
metadata:
$ref: '#/components/schemas/WorkspaceMetadata'
isDeleted:
type: boolean
createdAt:
format: date-time
type: string
updatedAt:
format: date-time
type: string
plugins:
type: array
items:
type: string
managedBy:
type: string
description: Id of the organization this one is managed from.
required:
- id
- name
- isDeleted
- createdAt
- updatedAt
- plugins
WorkspacePreferenceDto:
type: object
properties:
country:
type: string
currency:
type: string
fiscalYearStartMonth:
type: number
minimum: 1
maximum: 12
preferredLanguage:
type: string
avatarUrl:
type: string
segmentation:
$ref: '#/components/schemas/WorkspaceSegmentationDto'
onboarding:
$ref: '#/components/schemas/WorkspaceOnboardingDto'
partnerStack:
$ref: '#/components/schemas/WorkspacePartnerStackDto'
businessProfileScanId:
type: string
description: The `scanId` from businessProfileScan. The finished profile is saved on the new workspace; it is not stored as a preference.
WorkspaceMetadata:
type: object
properties:
provider:
allOf:
- $ref: '#/components/schemas/WorkspaceProvider'
template:
type: string
installedTemplates:
type: array
items:
type: string
country:
type: string
currency:
type: string
fiscalYearStartMonth:
type: number
minimum: 1
maximum: 12
preferredLanguage:
type: string
avatarUrl:
type: string
segmentation:
type: object
description: Expandable workspace segmentation metadata
example:
role: Sales
teamSize: 11-50
industry: SaaS
usedSystem: HubSpot
onboarding:
type: object
description: Durable progress for workspace-creation onboarding across redirects and sessions.
partnerStack:
type: object
softLimitNotificationMonths:
type: object
businessProfile:
type: object
onboardingLater:
type: array
items:
type: string
enum:
- import
- mailbox
audienceSyncEnabled:
type: boolean
audienceSyncProviders:
description: Provider keys included when this workspace receives the platform audience projection. Empty means all providers.
type: array
items:
type: string
audienceLastSyncedAt:
format: date-time
type: string
sidebar:
type: object
InstallTemplateDto:
type: object
properties:
samples:
type: boolean
default: false
WorkspaceProvider:
type: string
enum:
- softsync
- doneai
- analystx
description: Provider configured in the requesting client. Defaults to the server default for older clients.
TemplatePlanView:
type: object
properties:
name:
type: string
table:
type: string
isNew:
type: boolean
required:
- name
- table
- isNew
TemplatePlanConflict:
type: object
properties:
table:
type: string
field:
type: string
reason:
type: string
enum:
- kind
- source
existing:
type: string
template:
type: string
required:
- table
- field
- reason
- existing
- template
RemovedExampleData:
type: object
properties:
removed:
type: number
description: Example records moved to the Deleted Bin.
required:
- removed
CopyPlan:
type: object
properties:
template:
type: string
version:
type: number
missingRequirements:
type: array
items:
type: string
installed:
type: boolean
installedVersion:
type: number
tables:
type: array
items:
$ref: '#/components/schemas/TemplatePlanTable'
conflicts:
type: array
items:
$ref: '#/components/schemas/TemplatePlanConflict'
groups:
type: array
items:
$ref: '#/components/schemas/TemplatePlanGroup'
sampleRecords:
type: number
description: 'Preview: example records on offer. Install: example records actually added.'
sampleIssues:
description: Example records refused when they were added (by this install, or the one that added them), e.g. by a table rule. Empty when all went in.
type: array
items:
$ref: '#/components/schemas/TemplateSampleIssue'
rules:
description: Rules on objects the workspace already has that installing adds or updates, and built-in rules kept as the team has them. New objects' rules aren't listed.
type: array
items:
$ref: '#/components/schemas/TemplatePlanRule'
records:
description: 'Copies only: forms, email and document templates.'
type: array
items:
$ref: '#/components/schemas/TemplatePlanRecord'
workflows:
description: 'Copies only: workflows, added switched off.'
type: array
items:
$ref: '#/components/schemas/TemplatePlanWorkflow'
warnings:
description: 'Copies only: references that can''t be found where the copy goes, so they are cleared.'
type: array
items:
$ref: '#/components/schemas/TemplatePlanWarning'
waitingOn:
description: Features the template has pieces for that are off in this workspace (e.g. meetings for its booking pages). Each piece is added once its feature is switched on.
type: array
items:
type: string
startsOff:
type: array
description: Pieces the template adds switched off (its portals, booking pages, website chats), for an admin to turn on afterwards.
items:
type: string
enum:
- forms
- emailTemplates
- documents
- bookingPages
- portals
- webAgents
- dashboards
- workflows
- other
notFound:
description: Selected names that matched nothing here.
type: array
items:
type: string
required:
- template
- version
- missingRequirements
- installed
- tables
- conflicts
- groups
- sampleRecords
- sampleIssues
- rules
- waitingOn
- startsOff
- notFound
TemplateSampleIssue:
type: object
properties:
table:
type: string
description: API name of the object.
sample:
type: string
description: 'The example''s lookup value (e.g. its name), or its position such as #3.'
stage:
type: string
enum:
- create
- link
description: 'create: the example was not added. link: it was added, but its links to examples added after it were refused.'
reason:
type: string
description: Why it was refused, e.g. the rule message.
required:
- table
- sample
- stage
- reason
CreateWorkspaceFromDto:
type: object
properties:
template:
type: string
description: A template by name, e.g. crm. The default.
workspaceId:
type: string
description: 'Copy this organization''s setup: objects, fields, groups, views, rules, forms, email and document templates, dashboards and workflows (switched off), with its language, country, currency, brand and sidebar. No records, members, mailboxes or connections. You must be its admin.'
TemplatePlanGroup:
type: object
properties:
title:
type: string
isNew:
type: boolean
restored:
type: boolean
description: Hidden by an earlier uninstall; shown again.
views:
type: array
items:
$ref: '#/components/schemas/TemplatePlanView'
required:
- title
- isNew
- restored
- views
SeedTemplateDto:
type: object
properties:
workspaceName:
type: string
description: The new organization’s name.
name:
type: string
description: Same as workspaceName.
provider:
description: Which product it is for. Taken from `from.workspaceId` or `managedBy` when not given.
allOf:
- $ref: '#/components/schemas/WorkspaceProvider'
from:
$ref: '#/components/schemas/CreateWorkspaceFromDto'
people:
description: People to invite, each with their role.
type: array
items:
$ref: '#/components/schemas/NewWorkspacePersonDto'
managedBy:
type: string
description: Create it as a client organization of this one. You must be its admin.
sampleData:
type: boolean
default: true
description: Whether to seed sample data
preferences:
$ref: '#/components/schemas/WorkspacePreferenceDto'
required:
- sampleData
TemplatePreview:
type: object
properties:
views:
type: array
items:
$ref: '#/components/schemas/TemplatePreviewView'
charts:
type: array
items:
$ref: '#/components/schemas/TemplatePreviewChart'
required:
- views
- charts
TemplatePreviewField:
type: object
properties:
apiName:
type: string
displayName:
type: string
kind:
type: string
options:
type: object
additionalProperties: true
required:
- apiName
- displayName
- kind
- options
TemplatePlanRecord:
type: object
properties:
table:
type: string
description: API name of the hidden object, e.g. forms.
title:
type: string
isNew:
type: boolean
description: False when one with the same name is already there; it is left as it is.
required:
- table
- title
- isNew
TemplatePlanRule:
type: object
properties:
table:
type: string
description: API name of the object.
rule:
type: string
description: Stable id of the rule.
change:
type: string
enum:
- added
- updated
- kept-edited
- kept-unknown
- invalid
description: 'added: new to the object. updated: the team never edited it, so it follows the template. kept-edited: the team edited it; theirs is kept. kept-unknown: installed before edits were tracked and not a version the template shipped; kept. invalid: doesn''t fit the object any more; not changed.'
required:
- table
- rule
- change
WebsiteBuilderPromptDto:
type: object
properties:
api:
type: string
description: The API address
app:
type: string
description: The app address
pieces:
type: array
items:
$ref: '#/components/schemas/WebsitePieceDto'
required:
- api
- app
- pieces
TemplatePlanField:
type: object
properties:
apiName:
type: string
displayName:
type: string
kind:
type: string
required:
- apiName
- displayName
- kind
PackageSelectionDto:
type: object
properties:
all:
type: boolean
description: The whole setup.
objects:
description: Objects, by API name or label.
type: array
items:
type: string
groups:
description: Groups by title, with their views and dashboards.
type: array
items:
type: string
forms:
description: Forms, by title.
type: array
items:
type: string
emailTemplates:
description: Email templates, by title.
type: array
items:
type: string
documentTemplates:
description: Document templates, by title.
type: array
items:
type: string
workflows:
description: Workflows, by name.
type: array
items:
type: string
TemplatePlanWarning:
type: object
properties:
kind:
type: string
enum:
- table
- field
- fieldPath
- group
- view
- workflow
- record
- user
- file
- connection
where:
type: string
description: Where it was, e.g. the form or workflow.
value:
type: string
description: What it pointed at, e.g. an email address.
reason:
type: string
description: Why it was cleared.
required:
- kind
- where
- value
- reason
WebsitePieceDto:
type: object
properties:
kind:
type: string
enum:
- chat
- booking
- help
- form
title:
type: string
description: Its name in the app.
code:
type: string
description: The line that puts it on a site.
url:
type: string
description: Its own address.
required:
- kind
- title
WorkspaceOnboardingDto:
type: object
properties:
version:
type: number
example: 1
status:
type: string
enum:
- in_progress
- completed
currentStep:
type: string
enum:
- intro
- welcome
- role
- team
- source
- acquisition-source
- loading
- payment
- story
- connection-flow
- contacts-import
- email-integration
- ready
connectionFlowConnectorKey:
type: string
connectionFlowKey:
type: string
connectionFlowImportWorkflowName:
type: string
pendingInviteEmails:
type: array
items:
type: string
startedAt:
type: string
format: date-time
completedAt:
type: string
format: date-time
required:
- version
- status
TemplateListing:
type: object
properties:
icon:
type: string
suggestedIndustries:
description: Onboarding industries that get a "Recommended" badge.
type: array
items:
type: string
section:
type: string
enum:
- common
- industry
description: 'Where it is listed: "common" suits any business and is shown first; "industry" suits one line of work.'
TemplatePlanTable:
type: object
properties:
apiName:
type: string
displayName:
type: string
isNew:
type: boolean
description: False when the object already exists.
newFields:
type: array
items:
$ref: '#/components/schemas/TemplatePlanField'
required:
- apiName
- displayName
- isNew
- newFields
NewWorkspacePersonDto:
type: object
properties:
email:
type: string
role:
allOf:
- $ref: '#/components/schemas/WorkspaceRole'
required:
- email
- role
TemplatePreviewView:
type: object
properties:
name:
type: string
group:
type: string
table:
type: string
description: The object the view shows.
viewType:
type: string
groupBy:
$ref: '#/components/schemas/TemplatePreviewField'
fields:
type: array
items:
$ref: '#/components/schemas/TemplatePreviewField'
rows:
type: array
items:
type: object
additionalProperties: true
description: Example records, keyed by field apiName.
required:
- name
- group
- table
- viewType
- fields
- rows
TemplatePlan:
type: object
properties:
template:
type: string
version:
type: number
missingRequirements:
type: array
items:
type: string
installed:
type: boolean
installedVersion:
type: number
tables:
type: array
items:
$ref: '#/components/schemas/TemplatePlanTable'
conflicts:
type: array
items:
$ref: '#/components/schemas/TemplatePlanConflict'
groups:
type: array
items:
$ref: '#/components/schemas/TemplatePlanGroup'
sampleRecords:
type: number
description: 'Preview: example records on offer. Install: example records actually added.'
sampleIssues:
description: Example records refused when they were added (by this install, or the one that added them), e.g. by a table rule. Empty when all went in.
type: array
items:
$ref: '#/components/schemas/TemplateSampleIssue'
rules:
description: Rules on objects the workspace already has that installing adds or updates, and built-in rules kept as the team has them. New objects' rules aren't listed.
type: array
items:
$ref: '#/components/schemas/TemplatePlanRule'
records:
description: 'Copies only: forms, email and document templates.'
type: array
items:
$ref: '#/components/schemas/TemplatePlanRecord'
workflows:
description: 'Copies only: workflows, added switched off.'
type: array
items:
$ref: '#/components/schemas/TemplatePlanWorkflow'
warnings:
description: 'Copies only: references that can''t be found where the copy goes, so they are cleared.'
type: array
items:
$ref: '#/components/schemas/TemplatePlanWarning'
waitingOn:
description: Features the template has pieces for that are off in this workspace (e.g. meetings for its booking pages). Each piece is added once its feature is switched on.
type: array
items:
type: string
startsOff:
type: array
description: Pieces the template adds switched off (its portals, booking pages, website chats), for an admin to turn on afterwards.
items:
type: string
enum:
- forms
- emailTemplates
- documents
- bookingPages
- portals
- webAgents
- dashboards
- workflows
- other
required:
- template
- version
- missingRequirements
- installed
- tables
- conflicts
- groups
- sampleRecords
- sampleIssues
- rules
- waitingOn
- startsOff
TemplateCatalogEntry:
type: object
properties:
name:
type: string
version:
type: number
requires:
type: array
items:
type: string
listing:
$ref: '#/components/schemas/TemplateListing'
installed:
type: boolean
installedVersion:
type: number
updateAvailable:
type: boolean
missingRequirements:
type: array
items:
type: string
recommended:
type: boolean
description: Its onboarding industry is suggested.
preview:
$ref: '#/components/schemas/TemplatePreview'
required:
- name
- version
- requires
- listing
- installed
- updateAvailable
- missingRequirements
- recommended
- preview
CopyToWorkspaceDto:
type: object
properties:
targetWorkspaceId:
type: string
description: The organization to copy into. You must be an admin of both.
selection:
$ref: '#/components/schemas/PackageSelectionDto'
required:
- targetWorkspaceId
- selection
WorkspaceSegmentationDto:
type: object
properties:
role:
type: string
teamSize:
type: string
industry:
type: string
usedSystem:
type: string
usedSystemDetail:
type: string
acquisitionSource:
type: string
acquisitionSourceDetail:
type: string
referralCode:
type: string
TemplatePreviewChart:
type: object
properties:
chartType:
type: string
measure:
type: string
table:
type: string
by:
type: string
description: Field the chart splits by.
of:
type: string
description: Field the chart adds up.
required:
- chartType
- measure
- table
WorkspaceRole:
type: string
enum:
- ADMIN
- EDITOR
- VIEWER
- GUEST
description: Roles that see it besides its managers
WorkspacePartnerStackDto:
type: object
properties:
xid:
type: string
partnerKey:
type: string
TemplatePlanWorkflow:
type: object
properties:
name:
type: string
isNew:
type: boolean
description: False when the workspace already has it; it is left as it is.
required:
- name
- isNew
securitySchemes:
bearer:
scheme: bearer
bearerFormat: JWT
type: http
x-api-key:
type: apiKey
in: header
name: x-api-key