Ingest Endpoints

Ingest endpoints let external systems push data into Vigdis. Each endpoint is a secret URL that accepts JSON payloads and creates or updates records automatically. No API key headers needed — the URL itself is the credential.

Create an endpoint

  1. Go to Settings > Ingest Endpoints.
  2. Click Create, give the endpoint a name, and pick the entity type it targets (e.g., Deal, Contact).
  3. Copy the generated URL. This is the only credential you need — anyone with the URL can push data.

Treat ingest URLs like passwords. Anyone with the URL can create records in your workspace.

Send data

POST a JSON payload to the endpoint URL. The fields object maps field slugs to values:

POST /api/v1/ingest/<token>
Content-Type: application/json

{
  "fields": {
    "name": "Ola Nordmann",
    "email": "ola@acme.no",
    "phone": "+4799887766"
  }
}

The endpoint detail page in Settings shows an example payload with all available fields for that entity type.

Create related records

If the target entity type has reference fields (e.g., a Deal referencing a Contact), you can create or match related records in the same request using the related key:

{
  "fields": {
    "title": "Acme Renewal",
    "value": 50000
  },
  "related": {
    "contact": {
      "name": "Ola Nordmann",
      "email": "ola@acme.no"
    }
  }
}

Keys under related must match a reference field slug on the primary entity type. The response tells you what happened to each entity:

{
  "record": { "id": "...", "action": "created" },
  "related": {
    "contact": { "id": "...", "action": "updated", "matched_on": ["email"] }
  }
}

Matching on unique fields

If any of your fields are marked unique (in Settings > Fields), the system matches incoming data against existing records before creating new ones:

  • No match — a new record is created.
  • Match — the existing record is updated with the incoming field values.
  • Conflicting matches (two unique fields point to different records) — the request fails and nothing is changed.

Matching normalizes values before comparing: emails are lowercased, phone numbers are stripped of spaces and dashes, text is trimmed.

If no unique fields exist on the entity type, every request creates a new record. The endpoint detail page shows which fields are unique.

Manage endpoints

  • Enable / disable — Toggle an endpoint on its detail page. Disabled endpoints return 404 to callers.
  • Regenerate token — Rotates the secret URL. The old URL stops working immediately.
  • Activity log — The detail page shows recent requests with status codes and a summary of what happened (record created, updated, or error details).

Errors

StatusMeaning
200Record created or updated successfully
400Validation error or unique field conflict
404Invalid or disabled endpoint
413Payload exceeds 100 KB