Sense6
Desarrolladores

API de Sense6

Lee y actúa sobre el correo, las tareas, los contactos, el calendario, los documentos y el chat desde tu propio código, Zapier u otra app de IA. Cada solicitud actúa como la persona dueña del token, con exactamente su acceso.

  1. En Sense6, abre Ajustes → Tokens de API y crea un token. Elige solo lectura si la app solo necesita mirar.
  2. Envíalo en cada solicitud como token bearer:
curl -H "Authorization: Bearer $SENSE6_TOKEN" https://sense6.io/api/v1/me

URL base: https://sense6.io/api/v1 · OpenAPI 3.1

Autenticación

Los tokens empiezan por s6_ y se muestran una sola vez, al crearlos. Un token de acceso completo puede hacer lo mismo que su dueño: enviar correo, crear y cambiar cosas. Un token de solo lectura solo puede mirar; los cambios responden 403 read_only_token. Revoca un token en Ajustes y todas las apps que lo usan pierden el acceso a la vez, junto con sus webhooks.

Sense6 solo guarda un hash de cada token. Los cambios hechos con la API quedan en el registro de auditoría del espacio de trabajo como hechos con la API.

Respuestas y errores

Todo es JSON. Un elemento vuelve como { data }; las listas, como { data, next_cursor }. Para la página siguiente, envía next_cursor como ?cursor= hasta que sea null.

Cada token puede hacer 300 solicitudes por minuto. Cada respuesta indica cuántas quedan en X-RateLimit-Remaining; pasado el límite recibes 429 con Retry-After.

400invalid_requestAlgo en la solicitud no está bien; el mensaje dice qué.
401unauthorizedFalta el token o fue revocado.
403read_only_token / forbiddenEl token es de solo lectura, o su dueño no puede hacer eso.
404not_foundNo existe, o su dueño no puede abrirlo.
409conflictCambió desde que lo leíste.
415unsupported_media_typeEnvía JSON con Content-Type: application/json.
429rate_limitedDemasiadas solicitudes; espera los segundos de Retry-After.
503ai_unavailableLa IA de Sense6 no puede responder ahora.
{ "error": { "code": "not_found", "message": "Task not found." } }

Account

Who the token acts for.

GET/api/v1/me

Who the token acts for

Devuelve: Me

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/me"

Mail

Read, send and sort email in the token owner's mailbox.

GET/api/v1/messages

List email

Newest first. Reading the list doesn't mark anything read.

Consulta
folderstringWhich folder (default inbox). One of: inbox, sent, drafts, archive, deleted, junk, snoozed.
bucketstringOnly what Sense6 sorted this way. One of: needs_you, fyi, done, untriaged.
qstringWords to look for.
unreadbooleanOnly unread email.
sincedate-timeOnly email that arrived after this.
limitintegerHow many to return (default 50, at most 200).
cursorstringnext_cursor from the previous page.

Devuelve: una página de Message

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/messages"
GET/api/v1/messages/{id}

Get an email

Ruta
idrequiredstringThe item's id.
Consulta
includestringhtml adds the HTML body. One of: html.

Devuelve: Message

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/messages/abc123"
POST/api/v1/messagesToken de acceso completo

Send an email

Sent from the token owner's address, like email written in Sense6. With draft: true it's saved in Drafts instead.

Cuerpo (JSON)
torequiredstring[]Recipients.
ccstring[]Copied.
bccstring[]Blind copies.
subjectstringThe subject.
textstringThe message, as plain text.
htmlstringThe message as HTML (the text is made from it).
reply_to_idstringA message this replies to (it joins that conversation).
draftbooleanSave it in Drafts instead of sending.

Devuelve: SentMessage

curl -X POST -H "Authorization: Bearer $SENSE6_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"to":["[email protected]"],"subject":"Proposal","text":"Hi Dana, here'\''s the proposal."}' \
  https://sense6.io/api/v1/messages
PATCH/api/v1/messages/{id}Token de acceso completo

Mark, move or sort an email

Ruta
idrequiredstringThe item's id.
Cuerpo (JSON)
readbooleanMark it read or unread.
folderstringMove it. One of: inbox, archive, deleted.
bucketstringSort it. One of: needs_you, fyi, done.

Devuelve: Message

curl -X PATCH -H "Authorization: Bearer $SENSE6_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}' \
  https://sense6.io/api/v1/messages/abc123

Tasks

Tasks assigned to you, ones you gave others, and finished ones.

GET/api/v1/tasks

List tasks

Consulta
filterstringmine: assigned to you (default); assigned: ones you gave others; all: every open task you can see. One of: mine, assigned, all.
statusstringopen (default) or done. One of: open, done.
qstringOnly tasks with these words in the title or notes.
limitintegerHow many to return (default 50, at most 200).
cursorstringnext_cursor from the previous page.

Devuelve: una página de Task

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/tasks"
GET/api/v1/tasks/{id}

Get a task

Ruta
idrequiredstringThe item's id.

Devuelve: Task

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/tasks/abc123"
POST/api/v1/tasksToken de acceso completo

Create a task

Cuerpo (JSON)
titlerequiredstringWhat to do.
notesstringDetails.
duedateThe day it's due.
assignee_emailstringSomeone in your workspace to give it to (default: you).

Devuelve: Task

curl -X POST -H "Authorization: Bearer $SENSE6_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Send the signed lease","due":"2026-10-01"}' \
  https://sense6.io/api/v1/tasks
PATCH/api/v1/tasks/{id}Token de acceso completo

Change or finish a task

Ruta
idrequiredstringThe item's id.
Cuerpo (JSON)
titlestringWhat to do.
notesstringDetails.
duedateThe day it's due (null clears it).
assignee_emailstringGive it to someone else in your workspace.
statusstringdone or open. One of: open, done.

Devuelve: Task

curl -X PATCH -H "Authorization: Bearer $SENSE6_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}' \
  https://sense6.io/api/v1/tasks/abc123
DELETE/api/v1/tasks/{id}Token de acceso completo

Delete a task

Ruta
idrequiredstringThe item's id.

Devuelve: 204 No Content

curl -X DELETE -H "Authorization: Bearer $SENSE6_TOKEN" \
  https://sense6.io/api/v1/tasks/abc123

Contacts

Your contacts, including the ones synced from connected accounts.

GET/api/v1/contacts

List contacts

Consulta
qstringName, email, phone, company or tag.
tagstringOnly contacts with this tag.
limitintegerHow many to return (default 50, at most 200).
cursorstringnext_cursor from the previous page.

Devuelve: una página de Contact

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/contacts"
GET/api/v1/contacts/{id}

Get a contact (with recent activity)

Ruta
idrequiredstringThe item's id.

Devuelve: Contact

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/contacts/abc123"
POST/api/v1/contactsToken de acceso completo

Add a contact

With an email address you already have, the details are added to that person (merged: true in the response).

Cuerpo (JSON)
namestringTheir name.
emailstringAn email address (or emails: a list).
phonestringA phone number (or phones: a list).
companystringCompany.
job_titlestringJob title.
notesstringNotes.
tagsstring[]Tags.
starredbooleanStar them.

Devuelve: Contact

curl -X POST -H "Authorization: Bearer $SENSE6_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Dana Kim","email":"[email protected]"}' \
  https://sense6.io/api/v1/contacts
PATCH/api/v1/contacts/{id}Token de acceso completo

Change a contact

Send only the fields to change (the same ones as when adding). Synced contacts only take notes, tags and the star.

Ruta
idrequiredstringThe item's id.

Devuelve: Contact

curl -X PATCH -H "Authorization: Bearer $SENSE6_TOKEN" \
  https://sense6.io/api/v1/contacts/abc123
DELETE/api/v1/contacts/{id}Token de acceso completo

Delete a contact

Ruta
idrequiredstringThe item's id.

Devuelve: 204 No Content

curl -X DELETE -H "Authorization: Bearer $SENSE6_TOKEN" \
  https://sense6.io/api/v1/contacts/abc123

Calendar

Meetings and events from Sense6 and connected calendars, with their notes.

GET/api/v1/events

List meetings and events

Consulta
fromdate-timeStart of the range (default now).
todate-timeEnd of the range (default 30 days after from).
limitintegerHow many to return (default 50, at most 200).
cursorstringnext_cursor from the previous page.

Devuelve: una página de Event

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/events"
GET/api/v1/events/{id}

Get an event with its notes and transcript

Ruta
idrequiredstringThe item's id.

Devuelve: Event

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/events/abc123"
POST/api/v1/eventsToken de acceso completo

Create a meeting

People in the workspace are added to it. With send_invites (the default when there are attendees), calendar invitations go out from the owner's connected Microsoft 365 or Google calendar.

Cuerpo (JSON)
titlestringIts title.
startrequireddate-timeWhen it starts.
endrequireddate-timeWhen it ends.
attendeesstring[]Email addresses to invite.
locationstringWhere.
descriptionstringThe agenda.
send_invitesbooleanSend calendar invitations.
online_meetingbooleanAdd a Teams or Meet link to the invitation.

Devuelve: Event

curl -X POST -H "Authorization: Bearer $SENSE6_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Kickoff","start":"2026-10-01T15:00:00Z","end":"2026-10-01T15:30:00Z"}' \
  https://sense6.io/api/v1/events
DELETE/api/v1/events/{id}Token de acceso completo

Delete an event

It's deleted from the calendar it came from too; upcoming ones are cancelled for the guests. Events on someone else's calendar are only hidden for you.

Ruta
idrequiredstringThe item's id.

Devuelve: Event

curl -X DELETE -H "Authorization: Bearer $SENSE6_TOKEN" \
  https://sense6.io/api/v1/events/abc123

Docs

Documents you can open, and new ones from Markdown.

GET/api/v1/docs

List documents

Consulta
wikibooleanOnly the workspace wiki.
limitintegerHow many to return (default 50, at most 200).
cursorstringnext_cursor from the previous page.

Devuelve: una página de Doc

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/docs"
GET/api/v1/docs/{id}

Get a document with its text

Ruta
idrequiredstringThe item's id.

Devuelve: Doc

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/docs/abc123"
POST/api/v1/docsToken de acceso completo

Create a document

Cuerpo (JSON)
titlestringIts title.
textstringIts content, as Markdown.
wikibooleanPut it in the workspace wiki (everyone can read it).

Devuelve: Doc

curl -X POST -H "Authorization: Bearer $SENSE6_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Meeting notes","text":"# Notes\n\n- Ship Friday"}' \
  https://sense6.io/api/v1/docs

Chat

Channels and direct messages.

GET/api/v1/channels

List channels

Consulta
limitintegerHow many to return (default 50, at most 200).
cursorstringnext_cursor from the previous page.

Devuelve: una página de Channel

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/channels"
GET/api/v1/channels/{id}/messages

Latest messages in a channel

Ruta
idrequiredstringThe item's id.
Consulta
limitintegerHow many (default 50, at most 200).

Devuelve: una página de ChatMessage

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/channels/ch_123/messages"
POST/api/v1/channels/{id}/messagesToken de acceso completo

Post a message

Ruta
idrequiredstringThe item's id.
Cuerpo (JSON)
textrequiredstringWhat to say.
parent_idstringReply in this message's thread.

Devuelve: ChatMessage

curl -X POST -H "Authorization: Bearer $SENSE6_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"Deploy is done ✅"}' \
  https://sense6.io/api/v1/channels/ch_123/messages

Pipeline

Deals in the workspace's sales pipeline.

GET/api/v1/deals

List deals

Consulta
stagestringOnly deals in this stage (its id).
qstringWords in the name, company, people or next step.
emailstringOnly deals with this person.
minebooleanOnly deals you own.
limitintegerHow many to return (default 50, at most 200).
cursorstringnext_cursor from the previous page.

Devuelve: una página de Deal

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/deals"
GET/api/v1/deals/{id}

Get a deal

Ruta
idrequiredstringThe item's id.

Devuelve: Deal

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/deals/abc123"
POST/api/v1/dealsToken de acceso completo

Add a deal

Shared with the workspace unless private.

Cuerpo (JSON)
titlerequiredstringIts name.
valueintegerIts value, in cents.
currencystringThree-letter code (default USD).
stagestringA stage id (default: the first open stage).
companystringThe company.
peoplestring[]Email addresses of the people involved.
owner_idstringWho owns it (default: you).
close_datedateExpected close date.
next_stepstringThe next step.
notesstringNotes.
privatebooleanOnly you and the owner see it.

Devuelve: Deal

curl -X POST -H "Authorization: Bearer $SENSE6_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"123 Main St listing","value":45000000,"people":["[email protected]"]}' \
  https://sense6.io/api/v1/deals
PATCH/api/v1/deals/{id}Token de acceso completo

Move or change a deal

Send only what changes (the same fields as when adding, plus lost_reason). Changing stage fires deal.stage_changed (and deal.won or deal.lost).

Ruta
idrequiredstringThe item's id.

Devuelve: Deal

curl -X PATCH -H "Authorization: Bearer $SENSE6_TOKEN" \
  https://sense6.io/api/v1/deals/abc123
DELETE/api/v1/deals/{id}Token de acceso completo

Delete a deal

Ruta
idrequiredstringThe item's id.

Devuelve: 204 No Content

curl -X DELETE -H "Authorization: Bearer $SENSE6_TOKEN" \
  https://sense6.io/api/v1/deals/abc123

Webhooks

Get a signed POST when something happens (how Zapier triggers work).

GET/api/v1/hooks

List this token's webhooks

Devuelve: una página de Hook

curl -H "Authorization: Bearer $SENSE6_TOKEN" \
  "https://sense6.io/api/v1/hooks"
POST/api/v1/hooks

Subscribe to events

Works with read-only tokens too: a subscription only hears about what the token's owner can see.

Cuerpo (JSON)
urlrequiredstringAn https URL to POST events to.
eventsrequiredstring[]Events to hear (see the list below).

Devuelve: Hook

curl -X POST -H "Authorization: Bearer $SENSE6_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/sense6","events":["task.created"]}' \
  https://sense6.io/api/v1/hooks
DELETE/api/v1/hooks/{id}

Unsubscribe

Ruta
idrequiredstringThe item's id.

Devuelve: 204 No Content

curl -X DELETE -H "Authorization: Bearer $SENSE6_TOKEN" \
  https://sense6.io/api/v1/hooks/abc123

Objetos

Me

The person a token acts for.

Campos
idstringTheir user id.
namestringTheir name.
emailstringTheir email address.
rolestringmember, admin or guest.
time_zonestringIANA time zone, like America/New_York.
workspaceobjectThe workspace: { id, name }.
tokenobjectThis token: { scope: "read" | "write" }.

Message

An email.

Campos
idstringThe message id.
thread_idstringThe conversation it belongs to.
folderstringinbox, sent, drafts, archive, deleted or junk.
subjectstringThe subject line.
fromobject{ name, email }.
toobject[]Recipients: [{ name, email }].
ccobject[]Copied: [{ name, email }].
received_atdate-timeWhen it arrived (or was sent).
is_readbooleanWhether it's been read.
bucketstringHow Sense6 sorted it: needs_you, fyi or done. Can be null.
snippetstringThe start of the text.
has_attachmentsbooleanWhether it has files attached.
attachmentsobject[][{ name, content_type, size }].
textstringThe full text (one message only).
htmlstringThe HTML body, with ?include=html (one message only). Can be null.
urlstringOpens it in Sense6.

SentMessage

What happened to an email you sent.

Campos
idstringThe sent message (or the draft).
statusstringsent, draft or failed (an outside address didn't accept it).
deliverystringHow outside delivery went. Can be null.
externalstring[]Recipients outside the workspace.

Task

A task.

Campos
idstringThe task id.
titlestringWhat to do.
notesstringDetails.
statusstringopen or done.
duedateThe day it's due. Can be null.
assigneeobject{ id, name } of who it's for. Can be null.
created_byobject{ id, name } of who made it. Can be null.
created_atdate-timeWhen it was made.
completed_atdate-timeWhen it was finished. Can be null.
urlstringOpens it in Sense6.

Contact

A person in your contacts.

Campos
idstringThe contact id.
namestringTheir name.
emailsobject[][{ address, label }].
phonesobject[][{ number, label }].
companystringCompany.
job_titlestringJob title.
addressesstring[]Postal addresses.
websitesstring[]Websites.
birthdaystringBirthday. Can be null.
notesstringYour notes.
tagsstring[]Your tags.
starredbooleanStarred.
sourcesstring[]Where it comes from: sense6, google, m365, icloud…
editablebooleanAll fields can be changed (false: synced, only notes, tags and the star).
colleaguebooleanSomeone in your workspace.
urlstringOpens it in Sense6.

Event

A meeting or calendar event.

Campos
idstringThe event id.
titlestringIts title.
startdate-timeWhen it starts.
enddate-timeWhen it ends.
all_daybooleanAn all-day event.
locationstringWhere.
join_urlstringThe video call link. Can be null.
sourcestringsense6, or calendar (from a connected calendar).
organizerobject{ name, email }. Can be null.
attendeesobject[][{ name, email, response, guest }].
descriptionstringAgenda or description.
has_notesbooleanSense6 wrote notes for it.
notesobject{ summary, decisions, action_items } (one event only). Can be null.
transcriptstringThe transcript (one event only). Can be null.
urlstringOpens it in Sense6.

Doc

A document.

Campos
idstringThe document id.
titlestringIts title.
wikibooleanIn the workspace wiki.
created_atdate-timeWhen it was made.
updated_atdate-timeWhen it last changed.
textstringIts text, as Markdown (one document only).
urlstringOpens it in Sense6.

Channel

A chat channel or direct message.

Campos
idstringThe channel id.
kindstringchannel or dm.
visibilitystringpublic or private.
namestringIts name.
titlestringHow it's shown: #name, or the people in a direct message.
topicstringIts topic.
unreadintegerMessages you haven't read.
last_message_atdate-timeThe latest message. Can be null.
urlstringOpens it in Sense6.

ChatMessage

A chat message.

Campos
idstringThe message id.
channel_idstringIts channel.
textstringWhat it says.
authorobject{ id, name }.
sent_atdate-timeWhen it was posted.
edited_atdate-timeWhen it was last edited. Can be null.
parent_idstringThe thread it replies to. Can be null.
reply_countintegerReplies in its thread.
reactionsobjectEmoji → the ids of who reacted.

Deal

A deal in the pipeline.

Campos
idstringThe deal id.
titlestringIts name.
stageobject{ id, name, kind (open, won or lost), probability }.
valueintegerIts value, in cents.
currencystringThree-letter currency code.
companystringThe company.
peoplestring[]Email addresses of the people involved.
ownerobject{ id, name }.
close_datedateExpected close date. Can be null.
next_stepstringThe next step.
notesstringNotes.
privatebooleanOnly its creator and owner see it.
lost_reasonstringWhy it was lost. Can be null.
suggestionobjectWhat Sense6 suggests from recent email and meetings: { stage, next_step, close_date, summary }. Can be null.
stage_changed_atdate-timeWhen it last changed stage.
closed_atdate-timeWhen it was won or lost. Can be null.
created_atdate-timeWhen it was added.
updated_atdate-timeWhen it last changed.
urlstringOpens it in Sense6.

SearchHit

Something search found.

Campos
idstringThe item's id.
kindstringmessage, document, sheet, meeting, task, person or file.
titlestringIts title.
snippetstringWhere the words were found.
urlstringOpens it in Sense6. Can be null.

Answer

Sense6's answer.

Campos
answerstringThe answer, as Markdown.
linksobject[]What it used or made: [{ label, href }].
approvals_waitingintegerActions waiting for the person's approval in Sense6.

Hook

A webhook subscription.

Campos
idstringThe subscription id.
urlstringWhere events are sent.
eventsstring[]The events it hears.
created_atdate-timeWhen it was made.
secretstringThe signing secret (only when it's made).

Eventos de webhook

Suscríbete con POST /api/v1/hooks. Sense6 envía entonces cada evento a tu URL como JSON con POST, y solo te avisa de lo que puede ver el dueño del token. Una entrega que falla se reintenta cada vez más espaciada, hasta 8 veces en aproximadamente un día. Los administradores también pueden enviar todos los eventos del espacio de trabajo a un endpoint desde Administración → Webhooks.

mail.receivedMail arrived in someone's inbox
mail.sentSomeone sent mail
task.createdA task was created
task.completedA task was completed
meeting.createdA meeting was created
meeting.notes_readyMeeting notes were generated
doc.createdA document was created
approval.requestedAn agent action is waiting for approval
chat.messageA chat message was posted
member.joinedSomeone joined the workspace
form.responseSomeone answered a form
booking.createdSomeone booked a time through a booking link
contact.createdSomeone added a contact
deal.createdA deal was added to the pipeline
deal.stage_changedA deal moved to another stage
deal.wonA deal was won
deal.lostA deal was lost

Cada entrega se ve así. data trae los detalles del evento y el id del elemento: pide el elemento a la API para todo lo demás.

{
  "id": "evt_3f2a…",
  "event": "task.created",
  "createdAt": "2026-10-01T15:04:05.000Z",
  "workspace": "tenant_…",
  "data": {
    "id": "task_…",
    "title": "Send the signed lease",
    "assigneeId": "user_…",
    "due": "2026-10-03",
    "createdBy": "user_…"
  }
}

Encabezados: X-Sense6-Event, X-Sense6-Delivery, X-Sense6-Timestamp y X-Sense6-Signature. Comprueba la firma con el secreto que recibiste al suscribirte:

import { createHmac, timingSafeEqual } from "node:crypto";

// rawBody: the request body exactly as received (before JSON.parse).
export function isFromSense6(headers, rawBody, secret) {
  const ts = headers["x-sense6-timestamp"];
  const sig = headers["x-sense6-signature"] ?? "";
  if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false; // older than 5 minutes
  const expected = "sha256=" + createHmac("sha256", secret).update(`${ts}.${rawBody}`).digest("hex");
  return sig.length === expected.length && timingSafeEqual(Buffer.from(sig), Buffer.from(expected));
}

Zapier

Conecta Sense6 con miles de apps sin código. Disparadores: correo nuevo, tarea nueva o terminada, reunión nueva, notas de reunión listas, documento nuevo, contacto nuevo, negocio nuevo o cambio de etapa, mensaje de chat nuevo y respuesta nueva a un formulario. Acciones: enviar un correo, crear una tarea, un contacto, una reunión, un negocio o un documento, actualizar un negocio, publicar en el chat y preguntar a Sense6.

La app de Sense6 para Zapier está en camino. Mientras tanto, usa los pasos de Webhooks y de solicitud a la API de Zapier con un token.

MCP

Las apps de IA que hablan el Model Context Protocol (Claude, ChatGPT, Cursor y otras) pueden usar las herramientas de Sense6 directamente, con los mismos tokens. Todo lo que fueran a enviar o publicar espera tu aprobación en Sense6.

{
  "mcpServers": {
    "sense6": {
      "url": "https://sense6.io/api/mcp",
      "headers": {
        "Authorization": "Bearer s6_…"
      }
    }
  }
}

Centro de confianza · Términos del servicio