Skip to main content
GET https://app.vern.so/api/v1/templates
Returns the templates in your account — the importable objects (Contacts, Companies, and so on), each with its columns and validation rules. Use it to show your customer what they can import and let them choose, then pass the chosen IDs as template_ids when you provision a company. Templates are scoped to your account, not to a single source — the same object set is available to every source you’ve authored. List sources and templates separately and let your customer pick each.
Preview. Part of the Migration API — in active design and not yet generally available; the shapes below may change. Until this ships, read template IDs from the Vern dashboard; provisioning with no template_ids defaults to every template in your account. See the overview.

Authentication

Requires an x-api-key header. See Authentication.

Response

200 OK. Each template carries its columns, so you can render a preview of exactly what each object holds.
{
  "templates": [
    {
      "id": "01234567-89ab-cdef-0123-456789abcdef",
      "name": "Contacts",
      "description": "People at the customer's accounts.",
      "columns": [
        {
          "name": "Email",
          "description": "Primary email address.",
          "required": true,
          "unique": true,
          "desiredRule": "strict",
          "strictRule": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"
        },
        {
          "name": "Account",
          "description": "The company this contact belongs to.",
          "required": true,
          "unique": false,
          "desiredRule": "link",
          "linkRule": [{ "templateId": "…", "columnName": "Name" }]
        }
      ]
    }
  ]
}
id
string (uuid)
The template’s UUID. Pass it in template_ids when you provision a company.
name
string
The template’s display name — the object (e.g. “Contacts”). Becomes the sheet name on the company’s workbook.
description
string | null
An optional human description of the object.
columns
object[]
The object’s fields and validation rules, in order. Each column has:

Errors

StatusMeaning
401API key missing or invalid.
429Rate limit hit — back off and retry.
500Server error.

Example

curl https://app.vern.so/api/v1/templates \
  -H "x-api-key: $VERN_API_KEY"

Next