← Panoramica

Reference API

177 endpoint generati dal registry del server, con scope, parametri ed esempi. Base URL https://nido.logicaltech.it/api/v1. Scarica la specifica OpenAPI 3.1 per generare un client.

Utenti

GET/meautenticato

Utente, workspace e permessi del token corrente

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/me" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/me", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/me",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Contatti

GET/contactscontacts:read

Elenca e filtra contatti

Filtri: filter[lifecycle_stage]=customer, filter[lead_score][gt]=80, filter[properties.lead_source]=fiera. Ordinamento: sort=-created_at. Ricerca: q.

Query

limitinteger · default 50 · max 100
cursorstring
sortstring
qstring
trashedboolean

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/contacts" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/contacts",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/contactscontacts:write

Crea (deduplica per email)

Se l'email esiste già risponde 409 duplicate_email. Con ?upsert=true aggiorna il contatto esistente.

Query

upsertboolean

Corpo JSON

emailstring | null
first_namestring
last_namestring
phonestring | null
mobilestring | null
job_titlestring | null
company_idstring | null
owner_idstring | null
lifecycle_stage"subscriber" | "lead" | "mql" | "sql" | "opportunity" | "customer" | "evangelist" | "other"
lead_statusstring | null
lead_scoreinteger · max 100
lead_sourcestring | null
citystring | null
tagsstring[]
propertiesobject
gdpr_newsletterboolean

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/contacts" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "[email protected]",
  "first_name": "…",
  "last_name": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "email": "[email protected]",
    "first_name": "…",
    "last_name": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/contacts",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "email": "[email protected]",
      "first_name": "…",
      "last_name": "…"
    },
)
print(res.json())
GET/contacts/facetscontacts:read

Conteggi per fase e città (filtri)

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/contacts/facets" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts/facets", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/contacts/facets",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/contacts/scan-cardcontacts:write

Leggi un biglietto da visita (AI)

Estrae i campi del contatto da una foto (base64, max ~8 MB). Non crea il contatto: restituisce i campi, quanti ne ha riconosciuti e l'eventuale azienda già presente. 503 ai_unavailable se l'AI non è configurata.

Corpo JSON

image*string
media_type"image/jpeg" | "image/png" | "image/webp" · default "image/jpeg"

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/contacts/scan-card" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "image": "…",
  "media_type": "image/jpeg"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts/scan-card", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "image": "…",
    "media_type": "image/jpeg"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/contacts/scan-card",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "image": "…",
      "media_type": "image/jpeg"
    },
)
print(res.json())
GET/contacts/duplicatescontacts:read

Possibili duplicati

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/contacts/duplicates" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts/duplicates", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/contacts/duplicates",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/contacts/mergecontacts:write

Unisci duplicati

Corpo JSON

primary_id*string
duplicate_ids*string[]

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/contacts/merge" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "primary_id": "ct_29f1",
  "duplicate_ids": [
    "…"
  ]
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts/merge", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "primary_id": "ct_29f1",
    "duplicate_ids": [
      "…"
    ]
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/contacts/merge",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "primary_id": "ct_29f1",
      "duplicate_ids": [
        "…"
      ]
    },
)
print(res.json())
POST/contacts/batchcontacts:write

Azioni di massa (owner, fase, tag, cestino)

Corpo JSON

ids*string[]
owner_idstring | null
lifecycle_stage"subscriber" | "lead" | "mql" | "sql" | "opportunity" | "customer" | "evangelist" | "other"
add_tagsstring[]
remove_tagsstring[]
deleteboolean

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/contacts/batch" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "…"
  ],
  "owner_id": "ct_29f1",
  "lifecycle_stage": "subscriber"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts/batch", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "ids": [
      "…"
    ],
    "owner_id": "ct_29f1",
    "lifecycle_stage": "subscriber"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/contacts/batch",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "ids": [
        "…"
      ],
      "owner_id": "ct_29f1",
      "lifecycle_stage": "subscriber"
    },
)
print(res.json())
GET/contacts/{id}contacts:read

Dettaglio con proprietà

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/contacts/ct_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts/ct_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/contacts/ct_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/contacts/{id}contacts:write

Aggiorna proprietà

Parametri di percorso

id*string

Corpo JSON

emailstring | null
first_namestring
last_namestring
phonestring | null
mobilestring | null
job_titlestring | null
company_idstring | null
owner_idstring | null
lifecycle_stage"subscriber" | "lead" | "mql" | "sql" | "opportunity" | "customer" | "evangelist" | "other"
lead_statusstring | null
lead_scoreinteger · max 100
lead_sourcestring | null
citystring | null
tagsstring[]
propertiesobject
gdpr_newsletterboolean

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/contacts/ct_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "[email protected]",
  "first_name": "…",
  "last_name": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts/ct_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "email": "[email protected]",
    "first_name": "…",
    "last_name": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/contacts/ct_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "email": "[email protected]",
      "first_name": "…",
      "last_name": "…"
    },
)
print(res.json())
DELETE/contacts/{id}contacts:delete

Sposta nel cestino (30 gg)

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/contacts/ct_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts/ct_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/contacts/ct_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/contacts/{id}/restorecontacts:delete

Ripristina dal cestino

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/contacts/ct_29f1/restore" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts/ct_29f1/restore", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/contacts/ct_29f1/restore",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())
GET/contacts/{id}/timelineactivities:read

Attività, email, note

Parametri di percorso

id*string

Query

limitinteger · default 50 · max 100
cursorstring
typestring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/contacts/ct_29f1/timeline" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/contacts/ct_29f1/timeline", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/contacts/ct_29f1/timeline",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Aziende

GET/companiescompanies:read

Elenca aziende

Filtri: filter[industry]=Software, filter[city]=Milano, filter[owner_id]=me. Ordinamento: sort=-open_amount, sort=name. Ricerca: q (nome, dominio, città).

Query

limitinteger · default 50 · max 100
cursorstring
sortstring
qstring
trashedboolean

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/companies" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/companies", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/companies",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/companiescompanies:write

Crea azienda

Deduplica per dominio: se esiste già risponde 409 duplicate_domain.

Corpo JSON

namestring
domainstring | null
industrystring | null
sizestring | null
citystring | null
countrystring | null
vat_numberstring | null
phonestring | null
websitestring | null
owner_idstring | null
propertiesobject

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/companies" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "domain": "…",
  "industry": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/companies", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "domain": "…",
    "industry": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/companies",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "domain": "…",
      "industry": "…"
    },
)
print(res.json())
GET/companies/{id}companies:read

Dettaglio azienda

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/companies/co_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/companies/co_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/companies/co_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/companies/{id}companies:write

Aggiorna

Parametri di percorso

id*string

Corpo JSON

namestring
domainstring | null
industrystring | null
sizestring | null
citystring | null
countrystring | null
vat_numberstring | null
phonestring | null
websitestring | null
owner_idstring | null
propertiesobject

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/companies/co_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "domain": "…",
  "industry": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/companies/co_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "domain": "…",
    "industry": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/companies/co_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "domain": "…",
      "industry": "…"
    },
)
print(res.json())
DELETE/companies/{id}companies:delete

Sposta nel cestino (30 gg)

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/companies/co_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/companies/co_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/companies/co_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/companies/{id}/timelineactivities:read

Attività dell'azienda e dei suoi contatti

Parametri di percorso

id*string

Query

limitinteger · default 50 · max 100
cursorstring
typestring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/companies/co_29f1/timeline" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/companies/co_29f1/timeline", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/companies/co_29f1/timeline",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Deal & pipeline

GET/dealsdeals:read

Elenca deal

Filtri: pipeline_id, contact_id, filter[company_id], filter[stage]=proposta, filter[owner_id]=me, filter[status]=open, filter[amount][gt]=5000, filter[close_date][lt]=2026-12-31, period=this_quarter (chiusura). include=contacts aggiunge i contatti collegati; azienda e owner sono sempre inclusi. Ordinamento: sort=position, sort=-amount.

Query

limitinteger · default 50 · max 100
cursorstring
sortstring
qstring
pipeline_idstring
contact_idstring
periodstring
includestring
trashedboolean

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/deals" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/deals",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/dealsdeals:write

Crea deal

stage accetta id o key della fase (default: prima fase della pipeline predefinita).

Corpo JSON

namestring
amountnumber
currencystring
pipeline_idstring
stagestring
probabilitynumber | null
close_datestring | null
owner_idstring | null
company_idstring | null
contact_idsstring[]
positionnumber
propertiesobject

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/deals" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "amount": 0,
  "currency": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "amount": 0,
    "currency": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/deals",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "amount": 0,
      "currency": "…"
    },
)
print(res.json())
GET/deals/summarydeals:read

Totali per fase e previsione ponderata

Conteggio, totale e valore ponderato per fase, più la previsione per mese di chiusura. Accetta gli stessi filtri di GET /deals.

Query

pipeline_idstring
periodstring
qstring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/deals/summary" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/summary", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/deals/summary",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/deals/goaldeals:read

Avanzamento obiettivo di vendita

Query

period"month" | "quarter" · default "month"

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/deals/goal" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/goal", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/deals/goal",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/productsdeals:read

Catalogo prodotti

Query

qstring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/products" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/products", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/products",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/deals/{id}deals:read

Dettaglio con prodotti e contatti

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/deals/deal_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/deal_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/deals/deal_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/deals/{id}deals:write

Aggiorna / cambia fase

Con stage sposta il deal (emette deal.stage_changed, e deal.won/deal.lost se la fase è di chiusura). position riordina nella colonna.

Parametri di percorso

id*string

Corpo JSON

namestring
amountnumber
currencystring
pipeline_idstring
stagestring
probabilitynumber | null
close_datestring | null
owner_idstring | null
company_idstring | null
contact_idsstring[]
positionnumber
propertiesobject
reasonstring

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/deals/deal_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "amount": 0,
  "currency": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/deal_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "amount": 0,
    "currency": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/deals/deal_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "amount": 0,
      "currency": "…"
    },
)
print(res.json())
DELETE/deals/{id}deals:delete

Sposta nel cestino (30 gg)

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/deals/deal_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/deal_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/deals/deal_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/deals/{id}/wondeals:write

Chiudi come vinto

Parametri di percorso

id*string

Corpo JSON

amountnumber
close_datestring
reasonsstring[]
notestring

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/deals/deal_29f1/won" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "amount": 0,
  "close_date": "…",
  "reasons": [
    "…"
  ]
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/deal_29f1/won", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "amount": 0,
    "close_date": "…",
    "reasons": [
      "…"
    ]
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/deals/deal_29f1/won",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "amount": 0,
      "close_date": "…",
      "reasons": [
        "…"
      ]
    },
)
print(res.json())
POST/deals/{id}/lostdeals:write

Chiudi come perso

Parametri di percorso

id*string

Corpo JSON

reason*string
notestring

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/deals/deal_29f1/lost" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "reason": "…",
  "note": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/deal_29f1/lost", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "reason": "…",
    "note": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/deals/deal_29f1/lost",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "reason": "…",
      "note": "…"
    },
)
print(res.json())
POST/deals/{id}/reopendeals:write

Riapri deal chiuso

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/deals/deal_29f1/reopen" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/deal_29f1/reopen", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/deals/deal_29f1/reopen",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())
POST/deals/{id}/line-itemsdeals:write

Aggiungi prodotti

Da catalogo (product_id) o libero (name, unit_price). Il valore del deal diventa il totale dei prodotti.

Parametri di percorso

id*string

Corpo JSON

product_idstring
skustring | null
namestring
qtynumber · max 1000000
unit_pricenumber
discountnumber · max 1
positioninteger · max 9007199254740991

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/deals/deal_29f1/line-items" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "product_id": "ct_29f1",
  "sku": "…",
  "name": "Rinnovo licenze 2027"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/deal_29f1/line-items", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "product_id": "ct_29f1",
    "sku": "…",
    "name": "Rinnovo licenze 2027"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/deals/deal_29f1/line-items",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "product_id": "ct_29f1",
      "sku": "…",
      "name": "Rinnovo licenze 2027"
    },
)
print(res.json())
PATCH/deals/{id}/line-items/{item}deals:write

Aggiorna quantità, prezzo o sconto

Parametri di percorso

id*string
item*string

Corpo JSON

skustring | null
namestring
qtynumber · max 1000000
unit_pricenumber
discountnumber · max 1
positioninteger · max 9007199254740991

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/deals/deal_29f1/line-items/<item>" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "sku": "…",
  "name": "Rinnovo licenze 2027",
  "qty": 1
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/deal_29f1/line-items/<item>", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "sku": "…",
    "name": "Rinnovo licenze 2027",
    "qty": 1
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/deals/deal_29f1/line-items/<item>",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "sku": "…",
      "name": "Rinnovo licenze 2027",
      "qty": 1
    },
)
print(res.json())
DELETE/deals/{id}/line-items/{item}deals:write

Rimuovi prodotto

Parametri di percorso

id*string
item*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/deals/deal_29f1/line-items/<item>" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/deal_29f1/line-items/<item>", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/deals/deal_29f1/line-items/<item>",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/deals/{id}/timelineactivities:read

Attività e cronologia del deal

Parametri di percorso

id*string

Query

limitinteger · default 50 · max 100
cursorstring
typestring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/deals/deal_29f1/timeline" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deals/deal_29f1/timeline", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/deals/deal_29f1/timeline",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/pipelinesdeals:read

Pipeline e fasi

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/pipelines" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/pipelines", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/pipelines",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/pipelinesschema:write

Crea pipeline

Senza stages crea le fasi Nuovo, In corso, Vinto, Perso.

Corpo JSON

name*string
is_defaultboolean
stagesobject[]

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/pipelines" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "is_default": true,
  "stages": [
    {
      "name": "Rinnovo licenze 2027",
      "key": "…",
      "probability": 0
    }
  ]
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/pipelines", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "is_default": true,
    "stages": [
      {
        "name": "Rinnovo licenze 2027",
        "key": "…",
        "probability": 0
      }
    ]
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/pipelines",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "is_default": True,
      "stages": [
        {
          "name": "Rinnovo licenze 2027",
          "key": "…",
          "probability": 0
        }
      ]
    },
)
print(res.json())
GET/pipelines/{id}deals:read

Dettaglio pipeline

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/pipelines/pl_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/pipelines/{id}schema:write

Rinomina o riordina le fasi

stage_order: elenco completo degli id delle fasi nel nuovo ordine.

Parametri di percorso

id*string

Corpo JSON

namestring
is_defaultboolean
stage_orderstring[]

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "is_default": true,
  "stage_order": [
    "…"
  ]
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/pipelines/pl_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "is_default": true,
    "stage_order": [
      "…"
    ]
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "is_default": True,
      "stage_order": [
        "…"
      ]
    },
)
print(res.json())
DELETE/pipelines/{id}schema:write

Elimina pipeline vuota

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/pipelines/pl_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/pipelines/{id}/stagesschema:write

Aggiungi fase

Parametri di percorso

id*string

Corpo JSON

name*string
keystring
probabilitynumber · max 1
kind"open" | "won" | "lost"
colorstring
rotting_daysinteger | null
positioninteger · max 9007199254740991

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1/stages" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "key": "…",
  "probability": 0
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/pipelines/pl_29f1/stages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "key": "…",
    "probability": 0
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1/stages",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "key": "…",
      "probability": 0
    },
)
print(res.json())
PATCH/pipelines/{id}/stages/{stage}schema:write

Aggiorna fase (nome, probabilità, posizione)

Parametri di percorso

id*string
stage*string

Corpo JSON

namestring
keystring
probabilitynumber · max 1
kind"open" | "won" | "lost"
colorstring
rotting_daysinteger | null
positioninteger · max 9007199254740991

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1/stages/<stage>" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "key": "…",
  "probability": 0
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/pipelines/pl_29f1/stages/<stage>", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "key": "…",
    "probability": 0
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1/stages/<stage>",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "key": "…",
      "probability": 0
    },
)
print(res.json())
DELETE/pipelines/{id}/stages/{stage}schema:write

Elimina fase (con move_to se contiene deal)

Parametri di percorso

id*string
stage*string

Query

move_tostring

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1/stages/<stage>" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/pipelines/pl_29f1/stages/<stage>", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/pipelines/pl_29f1/stages/<stage>",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Attività

GET/tasksactivities:read

Elenca task

Filtri: owner=me|all|<user_id> (default me), due=overdue|today|until_today|week|upcoming|none, status=open|completed|all (default open), type=call|email|todo|meeting|follow_up, contact_id, deal_id, company_id, created_by=me, from/to (ISO, sulla scadenza).

Query

limitinteger · default 50 · max 100
cursorstring
sortstring
qstring
ownerstring
created_bystring
status"open" | "completed" | "all"
due"overdue" | "today" | "until_today" | "week" | "upcoming" | "none"
type"todo" | "call" | "email" | "meeting" | "follow_up"
contact_idstring
deal_idstring
company_idstring
fromstring
tostring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/tasks" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/tasks", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/tasks",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/tasks/statsactivities:read

Contatori task (aperti, in ritardo, oggi, chiamate in coda)

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/tasks/stats" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/tasks/stats", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/tasks/stats",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/tasksactivities:write

Crea task

Corpo JSON

title*string
descriptionstring | null
type"todo" | "call" | "email" | "meeting" | "follow_up"
priority"low" | "normal" | "high"
due_atstring | null
owner_idstring | null
contact_idstring | null
company_idstring | null
deal_idstring | null

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/tasks" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Chiamata di follow-up",
  "description": "…",
  "type": "todo"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/tasks", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "title": "Chiamata di follow-up",
    "description": "…",
    "type": "todo"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/tasks",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "title": "Chiamata di follow-up",
      "description": "…",
      "type": "todo"
    },
)
print(res.json())
GET/tasks/{id}activities:read

Dettaglio task

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/tasks/task_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/tasks/task_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/tasks/task_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/tasks/{id}activities:write

Aggiorna o completa task

completed: true completa il task ed emette task.completed.

Parametri di percorso

id*string

Corpo JSON

titlestring
descriptionstring | null
type"todo" | "call" | "email" | "meeting" | "follow_up"
priority"low" | "normal" | "high"
due_atstring | null
owner_idstring | null
contact_idstring | null
company_idstring | null
deal_idstring | null
completedboolean

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/tasks/task_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Chiamata di follow-up",
  "description": "…",
  "type": "todo"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/tasks/task_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "title": "Chiamata di follow-up",
    "description": "…",
    "type": "todo"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/tasks/task_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "title": "Chiamata di follow-up",
      "description": "…",
      "type": "todo"
    },
)
print(res.json())
DELETE/tasks/{id}activities:write

Elimina task

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/tasks/task_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/tasks/task_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/tasks/task_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/notesactivities:write

Aggiungi nota a contatto, azienda o deal

Le menzioni @Nome notificano i colleghi. Emette note.created.

Corpo JSON

body*string
contact_idstring | null
company_idstring | null
deal_idstring | null

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/notes" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "body": "…",
  "contact_id": "ct_29f1",
  "company_id": "ct_29f1"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/notes", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "body": "…",
    "contact_id": "ct_29f1",
    "company_id": "ct_29f1"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/notes",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "body": "…",
      "contact_id": "ct_29f1",
      "company_id": "ct_29f1"
    },
)
print(res.json())
POST/callsactivities:write

Registra chiamata ed esito

Esiti: interested, callback, no_answer, not_interested (o testo libero). Opzionali: task_id (completa il task della coda), follow_up (crea task), move_to_stage (sposta il deal). Emette call.logged.

Corpo JSON

contact_idstring | null
company_idstring | null
deal_idstring | null
outcome*string
duration_secinteger | null
direction"outbound" | "inbound"
notesstring | null
occurred_atstring
task_idstring | null
follow_upobject | null
move_to_stagestring | null

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/calls" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "outcome": "…",
  "contact_id": "ct_29f1",
  "company_id": "ct_29f1"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/calls", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "outcome": "…",
    "contact_id": "ct_29f1",
    "company_id": "ct_29f1"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/calls",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "outcome": "…",
      "contact_id": "ct_29f1",
      "company_id": "ct_29f1"
    },
)
print(res.json())
GET/calls/queueactivities:read

Coda chiamate di oggi

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/calls/queue" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/calls/queue", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/calls/queue",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/meetingsactivities:read

Elenca meeting

Filtri: from/to (ISO), owner=me|all|<user_id>, contact_id, deal_id, company_id.

Query

fromstring
tostring
ownerstring
contact_idstring
deal_idstring
company_idstring
limitinteger · max 500

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/meetings" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/meetings", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/meetings",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/meetingsactivities:write

Fissa meeting

Emette meeting.booked e registra l'attività sul record collegato.

Corpo JSON

title*string
starts_at*string
ends_at*string
kind"in_person" | "video" | "phone"
locationstring | null
video_urlstring | null
notesstring | null
owner_idstring | null
attendeesobject[]
contact_idstring | null
company_idstring | null
deal_idstring | null

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/meetings" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Chiamata di follow-up",
  "starts_at": "2026-10-06T09:00:00+02:00",
  "ends_at": "2026-10-06T09:00:00+02:00"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/meetings", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "title": "Chiamata di follow-up",
    "starts_at": "2026-10-06T09:00:00+02:00",
    "ends_at": "2026-10-06T09:00:00+02:00"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/meetings",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "title": "Chiamata di follow-up",
      "starts_at": "2026-10-06T09:00:00+02:00",
      "ends_at": "2026-10-06T09:00:00+02:00"
    },
)
print(res.json())
GET/meetings/{id}activities:read

Dettaglio meeting con partecipanti

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/meetings/mtg_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/meetings/mtg_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/meetings/mtg_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/meetings/{id}activities:write

Modifica meeting

Parametri di percorso

id*string

Corpo JSON

titlestring
starts_atstring
ends_atstring
kind"in_person" | "video" | "phone"
locationstring | null
video_urlstring | null
notesstring | null
owner_idstring | null
attendeesobject[]
contact_idstring | null
company_idstring | null
deal_idstring | null

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/meetings/mtg_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Chiamata di follow-up",
  "starts_at": "2026-10-06T09:00:00+02:00",
  "ends_at": "2026-10-06T09:00:00+02:00"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/meetings/mtg_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "title": "Chiamata di follow-up",
    "starts_at": "2026-10-06T09:00:00+02:00",
    "ends_at": "2026-10-06T09:00:00+02:00"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/meetings/mtg_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "title": "Chiamata di follow-up",
      "starts_at": "2026-10-06T09:00:00+02:00",
      "ends_at": "2026-10-06T09:00:00+02:00"
    },
)
print(res.json())
DELETE/meetings/{id}activities:write

Annulla meeting

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/meetings/mtg_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/meetings/mtg_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/meetings/mtg_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Dashboard

GET/dashboardautenticato

Dati della Home: KPI, pipeline per fase, agenda e task

view=me|team, period=this_month|this_quarter|this_year|all (per il grafico pipeline). Le sezioni senza permesso di lettura sono null.

Query

view"me" | "team"
period"this_month" | "this_quarter" | "this_year" | "all"
pipeline_idstring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/dashboard" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/dashboard", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/dashboard",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Inbox

GET/email-accountsemails:read

Caselle email collegate e provider disponibili

Restituisce le caselle personali dell'utente e quelle condivise del workspace (mai le credenziali) e, in providers, quali provider sono configurati.

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/email-accounts" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/email-accounts", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/email-accounts",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/email-accountsemails:send

Collega una casella (Gmail, Outlook o IMAP/SMTP)

Per gmail e outlook risponde con authorize_url da aprire nel browser (OAuth). Per imap verifica la connessione IMAP e SMTP e crea la casella. Le caselle condivise (shared: true) richiedono settings:manage.

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/email-accounts" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "provider": "gmail",
  "shared": false
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/email-accounts", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "provider": "gmail",
    "shared": false
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/email-accounts",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "provider": "gmail",
      "shared": False
    },
)
print(res.json())
DELETE/email-accounts/{id}emails:send

Scollega una casella

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/email-accounts/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/email-accounts/id_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/email-accounts/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/email-accounts/{id}/syncemails:read

Sincronizza ora

Parametri di percorso

id*string

Risposta 202 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/email-accounts/id_29f1/sync" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/email-accounts/id_29f1/sync", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/email-accounts/id_29f1/sync",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())
GET/conversationsemails:read

Conversazioni dell'inbox condivisa

Filtri: status=open|snoozed|closed|all (default open), assignee=me|unassigned|<user_id>, unread=true, channel=email|whatsapp|form|chat, contact_id, deal_id, q. Include i contatori per stato.

Query

limitinteger · default 50 · max 100
cursorstring
sortstring
qstring
status"open" | "snoozed" | "closed" | "all"
assigneestring
unreadboolean
channelstring
contact_idstring
deal_idstring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/conversations" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/conversations", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/conversations",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/conversations/{id}emails:read

Dettaglio conversazione con contatto e deal

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/conversations/conv_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/conversations/conv_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/conversations/conv_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/conversations/{id}emails:read

Assegna, chiudi, posticipa o segna come letta

assignee_id emette conversation.assigned e notifica l'assegnatario. status: snoozed richiede snoozed_until.

Parametri di percorso

id*string

Corpo JSON

status"open" | "snoozed" | "closed"
snoozed_untilstring | null
assignee_idstring | null
unreadboolean
contact_idstring | null
deal_idstring | null

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/conversations/conv_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "open",
  "snoozed_until": "2026-10-06T09:00:00+02:00",
  "assignee_id": "ct_29f1"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/conversations/conv_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "status": "open",
    "snoozed_until": "2026-10-06T09:00:00+02:00",
    "assignee_id": "ct_29f1"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/conversations/conv_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "status": "open",
      "snoozed_until": "2026-10-06T09:00:00+02:00",
      "assignee_id": "ct_29f1"
    },
)
print(res.json())
GET/conversations/{id}/messagesemails:read

Messaggi e note interne del thread

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/conversations/conv_29f1/messages" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/conversations/conv_29f1/messages", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/conversations/conv_29f1/messages",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/conversations/{id}/messagesemails:read

Rispondi o aggiungi una nota interna

type: reply invia l'email (richiede emails:send), type: note aggiunge una nota interna visibile solo al team. Allegati in base64 (max 10 MB).

Parametri di percorso

id*string

Corpo JSON

type"reply" | "note" · default "reply"
body*string
ccstring[]
template_idstring | null
attachmentsobject[]

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/conversations/conv_29f1/messages" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "body": "…",
  "type": "reply",
  "cc": [
    "[email protected]"
  ]
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/conversations/conv_29f1/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "body": "…",
    "type": "reply",
    "cc": [
      "[email protected]"
    ]
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/conversations/conv_29f1/messages",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "body": "…",
      "type": "reply",
      "cc": [
        "[email protected]"
      ]
    },
)
print(res.json())
GET/conversations/{id}/attachments/{attachment_id}emails:read

Scarica allegato

Parametri di percorso

id*string
attachment_id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/conversations/conv_29f1/attachments/<attachment_id>" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/conversations/conv_29f1/attachments/<attachment_id>", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/conversations/conv_29f1/attachments/<attachment_id>",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/emails/sendemails:send

Invia email tracciata

Invia dalla casella collegata dell'utente (Gmail, Outlook, IMAP) o, se assente, da Nido con reply-to dell'utente. Crea la conversazione, registra l'attività su contatto/deal e traccia l'apertura (email.opened). Con draft_id invia una bozza.

Corpo JSON

draft_idstring
tostring[]
ccstring[]
subjectstring
bodystring
contact_idstring | null
deal_idstring | null
conversation_idstring | null
template_idstring | null
attachmentsobject[]

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/emails/send" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "draft_id": "ct_29f1",
  "to": [
    "[email protected]"
  ],
  "cc": [
    "[email protected]"
  ]
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/emails/send", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "draft_id": "ct_29f1",
    "to": [
      "[email protected]"
    ],
    "cc": [
      "[email protected]"
    ]
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/emails/send",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "draft_id": "ct_29f1",
      "to": [
        "[email protected]"
      ],
      "cc": [
        "[email protected]"
      ]
    },
)
print(res.json())
POST/emails/draftsemails:send

Crea bozza email

Corpo JSON

to*string | string[]
subjectstring
body*string
contact_idstring | null
deal_idstring | null
conversation_idstring | null

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/emails/drafts" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "to": "[email protected]",
  "body": "…",
  "subject": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/emails/drafts", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "to": "[email protected]",
    "body": "…",
    "subject": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/emails/drafts",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "to": "[email protected]",
      "body": "…",
      "subject": "…"
    },
)
print(res.json())
GET/templatesemails:read

Template di risposta

Include l'elenco delle variabili disponibili ({{contatto.nome}}, {{deal.valore}}…).

Query

qstring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/templates" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/templates", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/templates",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/templatesemails:send

Crea template

Corpo JSON

name*string
categorystring | null
subjectstring · default ""
body*string

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/templates" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "body": "…",
  "category": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/templates", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "body": "…",
    "category": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/templates",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "body": "…",
      "category": "…"
    },
)
print(res.json())
GET/templates/{id}emails:read

Dettaglio template

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/templates/tpl_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/templates/tpl_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/templates/tpl_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/templates/{id}emails:send

Modifica template

Parametri di percorso

id*string

Corpo JSON

namestring
categorystring | null
subjectstring · default ""
bodystring

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/templates/tpl_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "category": "…",
  "subject": ""
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/templates/tpl_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "category": "…",
    "subject": ""
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/templates/tpl_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "category": "…",
      "subject": ""
    },
)
print(res.json())
DELETE/templates/{id}emails:send

Elimina template

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/templates/tpl_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/templates/tpl_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/templates/tpl_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/templates/{id}/renderemails:read

Compila le variabili del template

Sostituisce le variabili con i dati di contatto, deal e utente. Restituisce le variabili compilate e quelle mancanti.

Parametri di percorso

id*string

Corpo JSON

conversation_idstring | null
contact_idstring | null
deal_idstring | null

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/templates/tpl_29f1/render" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "conversation_id": "ct_29f1",
  "contact_id": "ct_29f1",
  "deal_id": "ct_29f1"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/templates/tpl_29f1/render", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "conversation_id": "ct_29f1",
    "contact_id": "ct_29f1",
    "deal_id": "ct_29f1"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/templates/tpl_29f1/render",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "conversation_id": "ct_29f1",
      "contact_id": "ct_29f1",
      "deal_id": "ct_29f1"
    },
)
print(res.json())

Proprietà

GET/properties/{object}schema:read

Schema proprietà

object = contact, company o deal. Con archived=true include le proprietà archiviate.

Parametri di percorso

object*string

Query

archivedboolean

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/properties/contact" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/properties/contact", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/properties/contact",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/properties/{object}schema:write

Crea proprietà personalizzata

Parametri di percorso

object*string

Corpo JSON

key*string
label*string
type*"text" | "textarea" | "number" | "currency" | "date" | "boolean" | "select" | "multiselect" | "url" | "email" | "phone" | "user"
optionsobject[]
group_namestring
requiredboolean
descriptionstring | null
positioninteger · max 9007199254740991

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/properties/contact" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "key": "…",
  "label": "…",
  "type": "text"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/properties/contact", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "key": "…",
    "label": "…",
    "type": "text"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/properties/contact",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "key": "…",
      "label": "…",
      "type": "text"
    },
)
print(res.json())
PATCH/properties/{object}/{key}schema:write

Aggiorna proprietà

Parametri di percorso

object*string
key*string

Corpo JSON

labelstring
optionsobject[]
group_namestring
requiredboolean
descriptionstring | null
positioninteger · max 9007199254740991
archivedboolean

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/properties/contact/<key>" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "label": "…",
  "options": [
    {
      "value": "…",
      "label": "…",
      "color": "…"
    }
  ],
  "group_name": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/properties/contact/<key>", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "label": "…",
    "options": [
      {
        "value": "…",
        "label": "…",
        "color": "…"
      }
    ],
    "group_name": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/properties/contact/<key>",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "label": "…",
      "options": [
        {
          "value": "…",
          "label": "…",
          "color": "…"
        }
      ],
      "group_name": "…"
    },
)
print(res.json())
DELETE/properties/{object}/{key}schema:write

Elimina proprietà e valori

Parametri di percorso

object*string
key*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/properties/contact/<key>" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/properties/contact/<key>", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/properties/contact/<key>",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Viste

GET/viewsautenticato

Viste salvate per oggetto

Query

object*"contact" | "company" | "deal"

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/views" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/views", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/views",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/viewsautenticato

Crea vista

Corpo JSON

object*"contact" | "company" | "deal"
name*string
filtersobject[] · default []
columnsstring[] | null
sortstring | null
sharedboolean · default true

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/views" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "object": "contact",
  "name": "Rinnovo licenze 2027",
  "filters": []
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/views", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "object": "contact",
    "name": "Rinnovo licenze 2027",
    "filters": []
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/views",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "object": "contact",
      "name": "Rinnovo licenze 2027",
      "filters": []
    },
)
print(res.json())
PATCH/views/{id}autenticato

Aggiorna vista

Parametri di percorso

id*string

Corpo JSON

object"contact" | "company" | "deal"
namestring
filtersobject[] · default []
columnsstring[] | null
sortstring | null
sharedboolean · default true

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/views/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "object": "contact",
  "name": "Rinnovo licenze 2027",
  "filters": []
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/views/id_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "object": "contact",
    "name": "Rinnovo licenze 2027",
    "filters": []
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/views/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "object": "contact",
      "name": "Rinnovo licenze 2027",
      "filters": []
    },
)
print(res.json())
DELETE/views/{id}autenticato

Elimina vista

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/views/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/views/id_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/views/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Ricerca

POST/searchautenticato

Ricerca globale full-text

Cerca in contatti, aziende, deal e note (types per restringere). Restituisce solo i tipi che il token può leggere (*:read).

Corpo JSON

query*string
types"contacts" | "companies" | "deals" | "notes"[]
limitinteger · max 25

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/search" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "query": "…",
  "types": [
    "contacts"
  ],
  "limit": 1
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/search", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "query": "…",
    "types": [
      "contacts"
    ],
    "limit": 1
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/search",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "query": "…",
      "types": [
        "contacts"
      ],
      "limit": 1
    },
)
print(res.json())

Utenti e team

GET/usersusers:read

Utenti e team

Membri del workspace con ruolo, 2FA e ultimo accesso, più gli inviti in sospeso.

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/users" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/users", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/users",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/users/invitationsusers:manage

Invita un membro

Invia l'email d'invito (valida 7 giorni). Se esiste già un invito per l'email lo reinvia.

Corpo JSON

email*string
rolestring · default "member"

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/users/invitations" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "[email protected]",
  "role": "member"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/users/invitations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "email": "[email protected]",
    "role": "member"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/users/invitations",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "email": "[email protected]",
      "role": "member"
    },
)
print(res.json())
DELETE/users/invitations/{id}users:manage

Annulla invito

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/users/invitations/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/users/invitations/id_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/users/invitations/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/users/{id}users:manage

Cambia ruolo

Parametri di percorso

id*string

Corpo JSON

role*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/users/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "role": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/users/id_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "role": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/users/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "role": "…"
    },
)
print(res.json())
DELETE/users/{id}users:manage

Rimuovi dal workspace

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/users/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/users/id_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/users/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Ruoli e permessi

GET/rolesusers:read

Ruoli e matrice permessi

Ruoli di sistema e personalizzati con gli scope concessi e il numero di membri.

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/roles" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/roles", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/roles",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/rolessettings:manage

Crea ruolo personalizzato

Piano Business. scopes = elenco risorsa:azione (es. contacts:read).

Corpo JSON

name*string
scopesstring[] · default []

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/roles" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "scopes": []
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/roles", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "scopes": []
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/roles",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "scopes": []
    },
)
print(res.json())
PATCH/roles/{name}settings:manage

Aggiorna permessi del ruolo

Parametri di percorso

name*string

Corpo JSON

scopes*string[]

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/roles/<name>" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "scopes": [
    "…"
  ]
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/roles/<name>", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "scopes": [
      "…"
    ]
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/roles/<name>",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "scopes": [
        "…"
      ]
    },
)
print(res.json())
DELETE/roles/{name}settings:manage

Elimina ruolo personalizzato

Parametri di percorso

name*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/roles/<name>" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/roles/<name>", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/roles/<name>",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Import

POST/importscontacts:write

Carica un CSV di contatti

Corpo JSON { filename, csv } con il testo del file (max 5 MB, 20.000 righe). Risponde con l'import in bozza, l'anteprima delle colonne e l'abbinamento automatico proposto.

Corpo JSON

filename*string
csv*string
object"contact" · default "contact"

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/imports" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "filename": "…",
  "csv": "…",
  "object": "contact"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/imports", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "filename": "…",
    "csv": "…",
    "object": "contact"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/imports",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "filename": "…",
      "csv": "…",
      "object": "contact"
    },
)
print(res.json())
GET/imports/{id}contacts:read

Stato e progresso dell'import

Parametri di percorso

id*string

Query

previewboolean

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/imports/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/imports/id_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/imports/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/imports/{id}/startcontacts:write

Avvia l'import in background

mapping = { "Colonna CSV": "email" | "first_name" | … | "properties.<chiave>" }. dedupe: update aggiorna i contatti con la stessa email, skip li salta.

Parametri di percorso

id*string

Corpo JSON

mappingobject
dedupe"skip" | "update" · default "update"
tagstring

Risposta 202 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/imports/id_29f1/start" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "mapping": {},
  "dedupe": "update",
  "tag": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/imports/id_29f1/start", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "mapping": {},
    "dedupe": "update",
    "tag": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/imports/id_29f1/start",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "mapping": {},
      "dedupe": "update",
      "tag": "…"
    },
)
print(res.json())

Onboarding

GET/onboarding/statusautenticato

Checklist «Configura Nido»

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/onboarding/status" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/onboarding/status", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/onboarding/status",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/onboardingautenticato

Salva settore, dimensione, obiettivi e avanzamento dell'onboarding

Corpo JSON

industrystring
sizestring
goalsstring[]
onboarding_stepinteger · max 4
onboarding_doneboolean
app_installedboolean

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/onboarding" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "industry": "…",
  "size": "…",
  "goals": [
    "…"
  ]
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/onboarding", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "industry": "…",
    "size": "…",
    "goals": [
      "…"
    ]
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/onboarding",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "industry": "…",
      "size": "…",
      "goals": [
        "…"
      ]
    },
)
print(res.json())

Report

GET/reportsreports:read

Report predefiniti

Vendite per periodo, pipeline per fase, attività del team, sorgenti lead, previsione.

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/reports" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/reports", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/reports",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/reports/{id}reports:read

Esegui un report

Filtri: filter[period]=2026-Q4 (anche 2026-10, 2026, last_30d, ytd), filter[pipeline_id], filter[owner_id]. Con format=csv restituisce un file CSV.

Parametri di percorso

id*string

Query

format"json" | "csv"

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/reports/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/reports/id_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/reports/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/goalsreports:read

Obiettivi di vendita

Query

periodstring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/goals" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/goals", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/goals",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/goalssettings:manage

Crea obiettivo

Senza user_id è l'obiettivo del workspace (o della pipeline).

Corpo JSON

period*string
metric"revenue_won" | "deals_won" | "calls" | "meetings" · default "revenue_won"
target*number
user_idstring | null
pipeline_idstring | null

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/goals" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "period": "…",
  "target": 1,
  "metric": "revenue_won"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/goals", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "period": "…",
    "target": 1,
    "metric": "revenue_won"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/goals",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "period": "…",
      "target": 1,
      "metric": "revenue_won"
    },
)
print(res.json())
PATCH/goals/{id}settings:manage

Aggiorna obiettivo

Parametri di percorso

id*string

Corpo JSON

periodstring
metric"revenue_won" | "deals_won" | "calls" | "meetings" · default "revenue_won"
targetnumber
user_idstring | null
pipeline_idstring | null

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/goals/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "period": "…",
  "metric": "revenue_won",
  "target": 1
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/goals/id_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "period": "…",
    "metric": "revenue_won",
    "target": 1
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/goals/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "period": "…",
      "metric": "revenue_won",
      "target": 1
    },
)
print(res.json())
DELETE/goals/{id}settings:manage

Elimina obiettivo

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/goals/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/goals/id_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/goals/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Notifiche

GET/notificationsautenticato

Notifiche dell'utente

tab=all|mentions|assigned|system, unread=true. Include i contatori non lette per tab.

Query

limitinteger · default 50 · max 100
cursorstring
tab"all" | "mentions" | "assigned" | "system"
unreadboolean

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/notifications" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/notifications", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/notifications",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/notifications/readautenticato

Segna come lette

{ ids: [...] } oppure { all: true, tab? }. Con read: false le segna come non lette.

Corpo JSON

idsstring[]
allboolean
tab"all" | "mentions" | "assigned" | "system"
readboolean

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/notifications/read" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "…"
  ],
  "all": true,
  "tab": "all"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/notifications/read", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "ids": [
      "…"
    ],
    "all": true,
    "tab": "all"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/notifications/read",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "ids": [
        "…"
      ],
      "all": True,
      "tab": "all"
    },
)
print(res.json())
GET/notifications/preferencesautenticato

Preferenze notifiche push

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/notifications/preferences" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/notifications/preferences", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/notifications/preferences",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/notifications/preferencesautenticato

Aggiorna preferenze notifiche push

Corpo JSON

tasksboolean
mentionsboolean
dealsboolean
automationsboolean
emailboolean

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/notifications/preferences" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "tasks": true,
  "mentions": true,
  "deals": true
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/notifications/preferences", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "tasks": true,
    "mentions": true,
    "deals": true
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/notifications/preferences",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "tasks": True,
      "mentions": True,
      "deals": True
    },
)
print(res.json())

Workflow

GET/workflowsworkflows:read

Elenca workflow

Ogni workflow include stats (iscritti, esecuzioni 30 gg, tasso di successo, ultima esecuzione).

Query

status"draft" | "active" | "paused"

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/workflows" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflows", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/workflows",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/workflowsworkflows:write

Crea workflow (anche da modello)

Con template_key copia trigger e passi di un modello di GET /workflow-templates. Il workflow nasce in bozza.

Corpo JSON

namestring
descriptionstring | null
object"contact" | "company" | "deal"
triggerobject
stepsobject[]
template_keystring
created_by_aiboolean

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/workflows" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "description": "…",
  "object": "contact"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflows", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "description": "…",
    "object": "contact"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/workflows",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "description": "…",
      "object": "contact"
    },
)
print(res.json())
GET/workflow-templatesworkflows:read

Modelli di workflow

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/workflow-templates" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflow-templates", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/workflow-templates",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/workflows/{id}workflows:read

Dettaglio con trigger, passi e statistiche

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/workflows/wf_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflows/wf_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/workflows/wf_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/workflows/{id}workflows:write

Aggiorna nome, trigger o passi

Parametri di percorso

id*string

Corpo JSON

namestring
descriptionstring | null
object"contact" | "company" | "deal"
triggerobject
stepsobject[]
template_keystring
created_by_aiboolean

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/workflows/wf_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "description": "…",
  "object": "contact"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflows/wf_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "description": "…",
    "object": "contact"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/workflows/wf_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "description": "…",
      "object": "contact"
    },
)
print(res.json())
DELETE/workflows/{id}workflows:write

Elimina workflow e cronologia

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/workflows/wf_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflows/wf_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/workflows/wf_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/workflows/{id}/publishworkflows:write

Pubblica e attiva

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/workflows/wf_29f1/publish" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflows/wf_29f1/publish", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/workflows/wf_29f1/publish",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())
POST/workflows/{id}/pauseworkflows:write

Metti in pausa

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/workflows/wf_29f1/pause" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflows/wf_29f1/pause", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/workflows/wf_29f1/pause",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())
POST/workflows/{id}/enrollworkflows:write

Iscrivi un record

Avvia un'esecuzione asincrona sul record indicato. Il workflow deve essere attivo.

Parametri di percorso

id*string

Corpo JSON

object"contact" | "company" | "deal"
id*string

Risposta 202 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/workflows/wf_29f1/enroll" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "ct_29f1",
  "object": "contact"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflows/wf_29f1/enroll", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "id": "ct_29f1",
    "object": "contact"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/workflows/wf_29f1/enroll",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "id": "ct_29f1",
      "object": "contact"
    },
)
print(res.json())
POST/workflows/{id}/testworkflows:write

Testa su un record reale (nessun effetto esterno)

Esegue i passi in modalità prova e restituisce subito il log passo-passo.

Parametri di percorso

id*string

Corpo JSON

object"contact" | "company" | "deal"
record_id*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/workflows/wf_29f1/test" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "record_id": "ct_29f1",
  "object": "contact"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflows/wf_29f1/test", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "record_id": "ct_29f1",
    "object": "contact"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/workflows/wf_29f1/test",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "record_id": "ct_29f1",
      "object": "contact"
    },
)
print(res.json())
GET/workflows/{id}/runsworkflows:read

Cronologia esecuzioni

Parametri di percorso

id*string

Query

limitinteger · default 50 · max 100
cursorstring
status"running" | "waiting" | "success" | "failed" | "cancelled"
testboolean

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/workflows/wf_29f1/runs" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflows/wf_29f1/runs", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/workflows/wf_29f1/runs",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/workflow-runs/{id}workflows:read

Dettaglio esecuzione con log

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/workflow-runs/run_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflow-runs/run_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/workflow-runs/run_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/workflow-runs/{id}/retryworkflows:write

Riprova un'esecuzione fallita

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/workflow-runs/run_29f1/retry" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workflow-runs/run_29f1/retry", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/workflow-runs/run_29f1/retry",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())

Form

POST/forms/submissionscontacts:write

Invia un form (crea o aggiorna il contatto)

Deduplica per email, registra l'attività in timeline ed emette form.submitted, che avvia i workflow con trigger «Form inviato».

Corpo JSON

form_name*string
form_idstring
page_urlstring
fields*object

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/forms/submissions" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "form_name": "…",
  "fields": {
    "email": "[email protected]"
  },
  "form_id": "ct_29f1"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/forms/submissions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "form_name": "…",
    "fields": {
      "email": "[email protected]"
    },
    "form_id": "ct_29f1"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/forms/submissions",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "form_name": "…",
      "fields": {
        "email": "[email protected]"
      },
      "form_id": "ct_29f1"
    },
)
print(res.json())

Webhook

GET/event-typesautenticato

Catalogo eventi (webhook e trigger)

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/event-types" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/event-types", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/event-types",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/eventswebhooks:manage

Registro eventi recenti

Gli stessi eventi inviati ai webhook, con data.object e data.previous. Filtra con type=deal.won.

Query

limitinteger · default 50 · max 100
cursorstring
typestring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/events" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/events", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/events",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/webhookswebhooks:manage

Elenca endpoint

Ogni endpoint include stats delle ultime 24 h (consegne, fallite, latenza, 12 fasce da 2 h).

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/webhooks" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/webhooks", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/webhooks",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/webhookswebhooks:manage

Crea endpoint + secret

La risposta contiene secret (whsec_…) una sola volta: usalo per verificare X-Nido-Signature. events accetta i tipi del catalogo o *.

Corpo JSON

url*string
namestring
descriptionstring | null
events*string[]
api_versionstring
secretstring

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/webhooks" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://esempio.it/hook",
  "events": [
    "…"
  ],
  "name": "Rinnovo licenze 2027"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/webhooks", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "url": "https://esempio.it/hook",
    "events": [
      "…"
    ],
    "name": "Rinnovo licenze 2027"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/webhooks",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "url": "https://esempio.it/hook",
      "events": [
        "…"
      ],
      "name": "Rinnovo licenze 2027"
    },
)
print(res.json())
POST/webhooks/testwebhooks:manage

Invia un evento di prova a un URL

Utile prima di salvare l'endpoint: invia un contact.created di esempio firmato con il secret indicato.

Corpo JSON

url*string
secretstring
eventstring

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/webhooks/test" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://esempio.it/hook",
  "secret": "…",
  "event": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/webhooks/test", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "url": "https://esempio.it/hook",
    "secret": "…",
    "event": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/webhooks/test",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "url": "https://esempio.it/hook",
      "secret": "…",
      "event": "…"
    },
)
print(res.json())
GET/webhooks/{id}webhooks:manage

Dettaglio endpoint

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/webhooks/wh_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/webhooks/{id}webhooks:manage

Aggiorna, metti in pausa o riattiva

Parametri di percorso

id*string

Corpo JSON

urlstring
namestring
descriptionstring | null
eventsstring[]
api_versionstring
status"active" | "paused"

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://esempio.it/hook",
  "name": "Rinnovo licenze 2027",
  "description": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/webhooks/wh_29f1", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "url": "https://esempio.it/hook",
    "name": "Rinnovo licenze 2027",
    "description": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "url": "https://esempio.it/hook",
      "name": "Rinnovo licenze 2027",
      "description": "…"
    },
)
print(res.json())
DELETE/webhooks/{id}webhooks:manage

Elimina endpoint

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/webhooks/wh_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/webhooks/{id}/testwebhooks:manage

Invia evento di prova

Parametri di percorso

id*string

Corpo JSON

eventstring

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/test" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "event": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/test", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "event": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/test",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "event": "…"
    },
)
print(res.json())
POST/webhooks/{id}/rotate-secretwebhooks:manage

Ruota il secret di firma

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/rotate-secret" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/rotate-secret", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/rotate-secret",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())
GET/webhooks/{id}/deliverieswebhooks:manage

Log consegne

Parametri di percorso

id*string

Query

limitinteger · default 50 · max 100
cursorstring
status"pending" | "success" | "failed" | "retrying"

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/deliveries" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/deliveries", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/deliveries",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/webhooks/{id}/retry-failedwebhooks:manage

Reinvia le consegne fallite

Parametri di percorso

id*string

Corpo JSON

idsstring[]

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/retry-failed" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "…"
  ]
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/retry-failed", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "ids": [
      "…"
    ]
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/webhooks/wh_29f1/retry-failed",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "ids": [
        "…"
      ]
    },
)
print(res.json())
GET/deliveries/{id}webhooks:manage

Dettaglio consegna (richiesta, risposta, tentativi)

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/deliveries/dlv_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deliveries/dlv_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/deliveries/dlv_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/deliveries/{id}/retrywebhooks:manage

Reinvia consegna

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/deliveries/dlv_29f1/retry" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/deliveries/dlv_29f1/retry", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/deliveries/dlv_29f1/retry",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())

Chiavi API

GET/api-keyssettings:manage

Elenca chiavi API

Query

include_revokedboolean

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/api-keys" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/api-keys", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/api-keys",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/api-keyssettings:manage

Crea chiave (mostrata una sola volta)

La risposta contiene key (nido_sk_live_…): non sarà più recuperabile. Gli scope ammessi sono quelli pubblici e non oltre i permessi di chi la crea.

Corpo JSON

name*string
scopes*"contacts:read" | "contacts:write" | "contacts:delete" | "companies:read" | "companies:write" | "companies:delete" | "deals:read" | "deals:write" | "deals:delete" | "activities:read" | "activities:write" | "emails:read" | "emails:send" | "workflows:read" | "workflows:write" | "webhooks:manage" | "schema:read" | "users:read" | "reports:read"[]
environment"live" | "sandbox" · default "live"
expires_atstring | null

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/api-keys" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "scopes": [
    "contacts:read"
  ],
  "environment": "live"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/api-keys", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "scopes": [
      "contacts:read"
    ],
    "environment": "live"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/api-keys",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "scopes": [
        "contacts:read"
      ],
      "environment": "live"
    },
)
print(res.json())
DELETE/api-keys/{id}settings:manage

Revoca chiave

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/api-keys/key_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/api-keys/key_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/api-keys/key_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Integrazioni

GET/integrationsautenticato

Catalogo integrazioni e stato di collegamento

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/integrations" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/integrations", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/integrations",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/integrations/{slug}/connectsettings:manage

Collega (chiave del provider o incoming webhook)

Parametri di percorso

slug*string

Corpo JSON

api_keystring
webhook_urlstring
configobject

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/integrations/slack/connect" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "…",
  "webhook_url": "https://esempio.it/hook",
  "config": {}
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/integrations/slack/connect", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "api_key": "…",
    "webhook_url": "https://esempio.it/hook",
    "config": {}
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/integrations/slack/connect",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "api_key": "…",
      "webhook_url": "https://esempio.it/hook",
      "config": {}
    },
)
print(res.json())
POST/integrations/{slug}/testsettings:manage

Verifica il collegamento

Parametri di percorso

slug*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/integrations/slack/test" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/integrations/slack/test", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/integrations/slack/test",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())
DELETE/integrations/{slug}settings:manage

Scollega

Parametri di percorso

slug*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/integrations/slack" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/integrations/slack", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/integrations/slack",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Nido AI

GET/ai/settingsai:use

Impostazioni AI, stato del provider e utilizzo del mese

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/ai/settings" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/settings", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/ai/settings",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/ai/settingsai:manage

Aggiorna modalità, modello, limiti, conferme e policy dei tool

mode: nido (crediti Nido) · byok (chiave propria) · chatgpt (piano ChatGPT) · off. tool_policy: { "create_task": "confirm" }.

Corpo JSON

mode"nido" | "byok" | "chatgpt" | "off"
byok_provider"openai" | "anthropic" | "openrouter"
modelstring | null
fast_modelstring | null
monthly_spend_limit_centsinteger | null
confirm_writes"always" | "sensitive" | "never"
copilot_enabledboolean
mcp_enabledboolean
tool_policyobject
featuresobject

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/ai/settings" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "mode": "nido",
  "byok_provider": "openai",
  "model": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/settings", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "mode": "nido",
    "byok_provider": "openai",
    "model": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/ai/settings",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "mode": "nido",
      "byok_provider": "openai",
      "model": "…"
    },
)
print(res.json())
GET/ai/credentialsai:manage

Chiavi AI salvate (mascherate)

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/ai/credentials" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/credentials", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/ai/credentials",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/ai/credentialsai:manage

Salva una chiave propria (verificata e cifrata)

Corpo JSON

provider*"openai" | "anthropic" | "openrouter"
api_key*string
labelstring

Risposta 201 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/ai/credentials" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "provider": "openai",
  "api_key": "…",
  "label": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/credentials", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "provider": "openai",
    "api_key": "…",
    "label": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/ai/credentials",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "provider": "openai",
      "api_key": "…",
      "label": "…"
    },
)
print(res.json())
DELETE/ai/credentials/{id}ai:manage

Elimina una chiave o scollega ChatGPT

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/ai/credentials/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/credentials/id_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/ai/credentials/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/ai/modelsai:manage

Modelli disponibili per la modalità attiva

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/ai/models" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/models", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/ai/models",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/ai/actionsai:use

Audit log AI (chiamate, tool, conferme)

Filtri: status=pending_confirmation, surface=mcp, client=Claude, tool=move_deal_stage, tools_only=true, q.

Query

limitinteger · default 50 · max 100
cursorstring
status"executed" | "pending_confirmation" | "confirmed" | "rejected" | "error"
surface"copilot" | "inbox" | "workflow_builder" | "mcp" | "summary"
clientstring
toolstring
tools_onlyboolean
mineboolean
sincestring
qstring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/ai/actions" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/actions", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/ai/actions",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/ai/actions/statsai:use

Azioni AI del mese e richieste in attesa

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/ai/actions/stats" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/actions/stats", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/ai/actions/stats",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/ai/actions/{id}ai:use

Dettaglio di un'azione AI

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/ai/actions/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/actions/id_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/ai/actions/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/ai/actions/{id}/confirmai:use

Approva ed esegue una scrittura in attesa di conferma

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/ai/actions/id_29f1/confirm" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/actions/id_29f1/confirm", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/ai/actions/id_29f1/confirm",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())
POST/ai/actions/{id}/rejectai:use

Rifiuta una scrittura in attesa di conferma

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/ai/actions/id_29f1/reject" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/actions/id_29f1/reject", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/ai/actions/id_29f1/reject",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())
GET/ai/connectionsai:use

Client MCP/OAuth collegati al workspace

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/ai/connections" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/connections", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/ai/connections",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
DELETE/ai/connections/{client_id}ai:use

Revoca subito l'accesso di un client

Parametri di percorso

client_id*string

Query

user_idstring

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/ai/connections/<client_id>" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/connections/<client_id>", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/ai/connections/<client_id>",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/ai/summarizeai:use

Riassunto di un contatto, azienda o deal con prossima azione

Corpo JSON

object*"contact" | "company" | "deal"
id*string
refreshboolean

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/ai/summarize" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "object": "contact",
  "id": "ct_29f1",
  "refresh": true
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/summarize", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "object": "contact",
    "id": "ct_29f1",
    "refresh": true
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/ai/summarize",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "object": "contact",
      "id": "ct_29f1",
      "refresh": True
    },
)
print(res.json())
POST/ai/draft-replyai:use

Bozza di risposta a una conversazione dell'inbox

Corpo JSON

conversation_id*string
tone"auto" | "formale" | "cordiale" | "breve" · default "auto"
length"breve" | "media" | "lunga" · default "media"
language"it" | "en" · default "it"
instructionsstring
currentstringBozza attuale da riscrivere

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/ai/draft-reply" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "conversation_id": "ct_29f1",
  "tone": "auto",
  "length": "media"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/draft-reply", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "conversation_id": "ct_29f1",
    "tone": "auto",
    "length": "media"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/ai/draft-reply",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "conversation_id": "ct_29f1",
      "tone": "auto",
      "length": "media"
    },
)
print(res.json())
POST/ai/workflow-draftai:use

Workflow in bozza da una descrizione in italiano

Corpo JSON

sentence*string
answerstring
previousany

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/ai/workflow-draft" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "sentence": "…",
  "answer": "…",
  "previous": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/workflow-draft", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "sentence": "…",
    "answer": "…",
    "previous": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/ai/workflow-draft",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "sentence": "…",
      "answer": "…",
      "previous": "…"
    },
)
print(res.json())
GET/ai/conversationsai:use

Conversazioni con il copilota

Query

limitinteger · default 20 · max 50
objectstring
idstring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/ai/conversations" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/conversations", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/ai/conversations",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/ai/conversations/{id}ai:use

Messaggi di una conversazione

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/ai/conversations/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/conversations/id_29f1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/ai/conversations/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
DELETE/ai/conversations/{id}ai:use

Elimina una conversazione

Parametri di percorso

id*string

Risposta 200 · errori nel formato standard

curl
curl -X DELETE "https://nido.logicaltech.it/api/v1/ai/conversations/id_29f1" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/ai/conversations/id_29f1", {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.delete(
    "https://nido.logicaltech.it/api/v1/ai/conversations/id_29f1",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Workspace

GET/workspaceautenticato

Workspace e brand

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/workspace" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workspace", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/workspace",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/workspacesettings:manage

Aggiorna nome, logo, colore, fuso, valuta, lingua

Corpo JSON

namestring
logostring | null
brand_colorstring | null
timezonestring
currency"EUR" | "USD" | "GBP" | "CHF"
locale"it-IT" | "en-US"
industrystring | null

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/workspace" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Rinnovo licenze 2027",
  "logo": "…",
  "brand_color": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workspace", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Rinnovo licenze 2027",
    "logo": "…",
    "brand_color": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/workspace",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "name": "Rinnovo licenze 2027",
      "logo": "…",
      "brand_color": "…"
    },
)
print(res.json())
POST/workspace/deleteorganization:delete

Elimina il workspace

Irreversibile: annulla l'abbonamento ed elimina tutti i dati. confirm = nome esatto del workspace.

Corpo JSON

confirm*string

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/workspace/delete" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "confirm": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/workspace/delete", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "confirm": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/workspace/delete",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "confirm": "…"
    },
)
print(res.json())
GET/settings/securitysettings:manage

Impostazioni di sicurezza

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/settings/security" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/settings/security", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/settings/security",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/settings/securitysettings:manage

2FA obbligatoria, domini consentiti, durata sessioni

Corpo JSON

require_2faboolean
allowed_domainsstring[]
session_daysinteger · max 90

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/settings/security" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "require_2fa": true,
  "allowed_domains": [
    "…"
  ],
  "session_days": 1
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/settings/security", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "require_2fa": true,
    "allowed_domains": [
      "…"
    ],
    "session_days": 1
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/settings/security",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "require_2fa": True,
      "allowed_domains": [
        "…"
      ],
      "session_days": 1
    },
)
print(res.json())
GET/audit-logsettings:manage

Audit log del workspace

Filtri: action (prefisso, es. contact.), actor_type, actor_id, from, to, q. Piano Business.

Query

limitinteger · default 50 · max 100
cursorstring
qstring
actionstring
actor_type"user" | "staff" | "api_key" | "oauth" | "ai" | "system"
actor_idstring
fromany
toany

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/audit-log" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/audit-log", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/audit-log",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())

Privacy ed export

GET/exportssettings:manage

Oggetti esportabili

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/exports" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/exports", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/exports",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/exports/{object}settings:manage

Scarica i dati

object = all (JSON completo) o un oggetto di /exports. format = json o csv.

Parametri di percorso

object*string

Query

format"json" | "csv" · default "json"

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/exports/contact" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/exports/contact", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/exports/contact",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
GET/trashautenticato

Cestino (30 giorni)

Contatti, aziende e deal eliminati negli ultimi 30 giorni, secondo i permessi di eliminazione.

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/trash" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/trash", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/trash",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/trash/restoreautenticato

Ripristina dal cestino

Corpo JSON

object*"contact" | "company" | "deal"
ids*string[]

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/trash/restore" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "object": "contact",
  "ids": [
    "…"
  ]
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/trash/restore", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "object": "contact",
    "ids": [
      "…"
    ]
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/trash/restore",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "object": "contact",
      "ids": [
        "…"
      ]
    },
)
print(res.json())

Fatturazione

GET/billingbilling:manage

Piano, posti, utilizzo e crediti AI

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/billing" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/billing", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/billing",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
PATCH/billing/detailsbilling:manage

Dati di fatturazione

Ragione sociale, P.IVA, codice fiscale, codice SDI o PEC, indirizzo. Sincronizzati sul customer Stripe.

Corpo JSON

legal_namestring | null
vat_numberstring | null | ""
tax_codestring | null | ""
sdi_codestring | null | ""
pecstring | null | ""
billing_emailstring | null | ""
addressobject

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/billing/details" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "legal_name": "…",
  "vat_number": "…",
  "tax_code": "…"
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/billing/details", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "legal_name": "…",
    "vat_number": "…",
    "tax_code": "…"
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/billing/details",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "legal_name": "…",
      "vat_number": "…",
      "tax_code": "…"
    },
)
print(res.json())
GET/billing/invoicesbilling:manage

Fatture e note di credito

Query

limitinteger · default 50 · max 100
cursorstring

Risposta 200 · errori nel formato standard

curl
curl -X GET "https://nido.logicaltech.it/api/v1/billing/invoices" \
  -H "Authorization: Bearer $NIDO_API_KEY"
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/billing/invoices", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
  },
})
const data = await res.json()
python.py
import os, requests

res = requests.get(
    "https://nido.logicaltech.it/api/v1/billing/invoices",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
)
print(res.json())
POST/billing/ai-cardbilling:manage

Collega una carta per Nido AI a consumo

Crea una sessione Stripe Checkout in modalità setup e restituisce url.

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X POST "https://nido.logicaltech.it/api/v1/billing/ai-card" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/billing/ai-card", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({}),
})
const data = await res.json()
python.py
import os, requests

res = requests.post(
    "https://nido.logicaltech.it/api/v1/billing/ai-card",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={},
)
print(res.json())
PATCH/billing/ai-limitbilling:manage

Limite di spesa mensile AI

Corpo JSON

monthly_limit_cents*integer | null

Risposta 200 · errori nel formato standard · supporta Idempotency-Key

curl
curl -X PATCH "https://nido.logicaltech.it/api/v1/billing/ai-limit" \
  -H "Authorization: Bearer $NIDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "monthly_limit_cents": 0
}'
Node.js e Python
node.ts
const res = await fetch("https://nido.logicaltech.it/api/v1/billing/ai-limit", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.NIDO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "monthly_limit_cents": 0
  }),
})
const data = await res.json()
python.py
import os, requests

res = requests.patch(
    "https://nido.logicaltech.it/api/v1/billing/ai-limit",
    headers={"Authorization": f"Bearer {os.environ['NIDO_API_KEY']}"},
    json={
      "monthly_limit_cents": 0
    },
)
print(res.json())