> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conare.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Conare's API is at https://api.conare.ai. Authenticate with `Authorization: Bearer $CONARE_API_KEY`.
> The full OpenAPI spec is at https://api.conare.ai/openapi.yaml; each endpoint has a page under /api-reference, and appending .md to any page URL returns its Markdown.
> Embed with model conare-embed-1; send input_type "query" for search queries. Rerank with conare-rerank-1.
> Prefer the TypeScript SDK (`npm install conare`) or plain HTTP in examples.
> Install the Conare skill with `npx skills add https://docs.conare.ai`; search these docs over MCP at https://docs.conare.ai/mcp; the whole site is at https://docs.conare.ai/llms-full.txt.

# Fuentes

> Conecta una app como HubSpot, Gmail o GitHub a un namespace y luego obtén, lista, sincroniza, cambia el intervalo o desconecta cada fuente.

Una fuente sincroniza una app con un namespace: los registros nuevos y modificados se escriben, y los eliminados se eliminan. Las fuentes necesitan una [clave](https://docs.conare.ai/es/console.md#claves) de acceso completo; para un bucket, consulta [Google Cloud Storage](https://docs.conare.ai/es/gcs.md).

## Conectar una fuente

`POST /sources`

```bash curl theme={null}
curl https://api.conare.ai/sources \
  -H "Authorization: Bearer $CONARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "hubspot", "namespace": "crm", "redirect_url": "https://yourapp.com/settings"}'
```

```ts TypeScript theme={null}
const { source, connectUrl } = await conare.sources.connect({
  type: "hubspot",
  namespace: "crm",
  redirectUrl: "https://yourapp.com/settings",
});
```

```json Response theme={null}
{
  "source": {
    "id": "src_1cff2c6ea888bbc8343b6e38",
    "type": "hubspot",
    "name": "HubSpot",
    "namespace": "crm",
    "status": "connecting",
    "error": null,
    "documents": 0,
    "last_synced_at": null,
    "created_at": "2026-10-21T21:40:39.704618Z",
    "sync_interval_s": null,
    "sync_interval_auto": true,
    "next_sync_at": null,
    "cost": { "rows_billed": true, "usd_per_million_rows": 100, "options": [ ... ] }
  },
  "connect_url": "https://..."
}
```

Envía al propietario de la app a `connect_url` (válida durante 7 días); la primera sincronización empieza cuando se conecta.

| Opción | Tipo | Qué hace |
| - | - | - |
| `type` | string, obligatorio | La app, de [la lista](#listar-las-apps) |
| `namespace` | string, obligatorio | El namespace en el que sincronizar |
| `name` | string | Un nombre visible, de hasta 100 caracteres |
| `redirect_url` | string | Adónde enviar al usuario tras conectarse |
| `sync_interval_s` | integer | Segundos entre sincronizaciones, de 300 a 2.592.000 (30 días); Conare elige uno si se omite |
| `config` | object | Para apps que se conectan con una clave (Twenty, Granola, GitHub): `api_key`, y `base_url` para un Twenty autoalojado; estas se sincronizan al instante, sin `connect_url` |

Para conectar las apps de tus usuarios, da a cada usuario un namespace, como `user-42`. Esquema completo: [Conectar una fuente](https://docs.conare.ai/es/api-reference/sources/connect-a-source.md).

## Documentos sincronizados

| | |
| - | - |
| Id | `<source id>:<schema>:<record key>` |
| Metadatos | `source`, `source_id`, `schema`, `title`, y `url`, `author`, `created_at`, `updated_at` cuando el registro los tiene |
| Buscar en una fuente | [Filtra](https://docs.conare.ai/es/filters.md) por `source_id` |

## Obtener una fuente

`GET /sources/:id`

```bash curl theme={null}
curl https://api.conare.ai/sources/src_1cff2c6ea888bbc8343b6e38 \
  -H "Authorization: Bearer $CONARE_API_KEY"
```

| Campo | Significado |
| - | - |
| `id`, `type`, `name`, `namespace` | Tal como se conectó |
| `status` | `connecting` (esperando el inicio de sesión), `syncing`, `ready` o `error` |
| `error` | Qué falló, o `null` |
| `documents` | Documentos que ha sincronizado |
| `progress` | Durante la sincronización, los `records_pulled` hasta el momento |
| `created_at`, `last_synced_at`, `next_sync_at` | Cuándo se conectó, cuándo se sincronizó por última vez y cuándo se sincroniza de nuevo |
| `sync_interval_s`, `sync_interval_auto` | Segundos entre sincronizaciones, y si Conare los elige |
| `cost` | Qué lee una sincronización, y cuánto cuesta al mes cada frecuencia de sincronización |

Esquema completo: [Obtener una fuente](https://docs.conare.ai/es/api-reference/sources/get-a-source.md).

## Listar fuentes

`GET /sources`

Devuelve `sources`, cada una como la devuelve Get; una fuente con un `kind`, como `files` o `gcs`, tiene en su lugar un objeto `sync`.

| Opción | Tipo | Qué hace |
| - | - | - |
| `namespace`, `user`, `type` | string | Solo las fuentes cuyo campo es igual al valor, como `?namespace=crm&type=hubspot` |

Esquema completo: [Listar fuentes](https://docs.conare.ai/es/api-reference/sources/list-sources.md).

## Sincronizar ahora

`POST /sources/:id/sync`

Inicia una sincronización en segundos y devuelve la fuente; una fuente aún en `connecting` devuelve `409 conflict`.

| Opción | Tipo | Qué hace |
| - | - | - |
| `full` | boolean, por defecto `false` | Vuelve a leerlo todo, no solo los cambios (Gmail, Twenty, Granola, GitHub); una sincronización completa de Gmail se factura como una primera sincronización, y `resync` lo indica |

Esquema completo: [Sincronizar una fuente ahora](https://docs.conare.ai/es/api-reference/sources/sync-a-source-now.md).

## Cambiar el intervalo de sincronización

`PATCH /sources/:id`

| Opción | Tipo | Qué hace |
| - | - | - |
| `sync_interval_s` | integer o null | De 300 a 2.592.000 segundos; `null` deja que Conare elija |

Devuelve la fuente. Esquema completo: [Definir con qué frecuencia se sincroniza una fuente](https://docs.conare.ai/es/api-reference/sources/set-how-often-a-source-syncs.md).

## Desconectar una fuente

`DELETE /sources/:id`

Detiene la sincronización y devuelve `{ "deleted": true }`.

| Opción | Tipo | Qué hace |
| - | - | - |
| `delete_documents` | boolean, por defecto `false` | Elimina también los documentos que sincronizó |

Esquema completo: [Desconectar una fuente](https://docs.conare.ai/es/api-reference/sources/disconnect-a-source.md).

## Listar las apps

`GET /sources/types`

```json Response theme={null}
{
  "types": [
    { "type": "affinity", "name": "Affinity", "logo_url": "https://..." },
    { "type": "airtable", "name": "Airtable", "logo_url": "https://..." }
  ]
}
```

* Cada una tiene el `type` para conectarla, su `name` y `logo_url`, y `auth: "api_key"` para las apps que se conectan con `config`.
* `partial` es `true` cuando solo se pudieron listar esas apps: inténtalo de nuevo más tarde.

Esquema completo: [Listar tipos de fuentes](https://docs.conare.ai/es/api-reference/sources/list-source-types.md).


## Related topics

- [Google Cloud Storage](https://docs.conare.ai/es/gcs.md)
- [Namespaces](https://docs.conare.ai/es/namespaces.md)
- [Connect a source](https://docs.conare.ai/es/api-reference/sources/connect-a-source.md)
- [Disconnect a source](https://docs.conare.ai/es/api-reference/sources/disconnect-a-source.md)
- [List sources](https://docs.conare.ai/es/api-reference/sources/list-sources.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.