> ## 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.

# Sources

> Connectez une application comme HubSpot, Gmail ou GitHub à un namespace, puis listez, synchronisez, réglez l'intervalle ou déconnectez chaque source.

Une source synchronise une application dans un namespace : les enregistrements nouveaux et modifiés sont écrits, les supprimés sont supprimés. Les sources exigent une [clé](https://docs.conare.ai/fr/console.md#clés) Full access ; pour un bucket, voir [Google Cloud Storage](https://docs.conare.ai/fr/gcs.md).

## Connecter une source

`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://..."
}
```

Envoyez le propriétaire de l'application vers `connect_url` (valide 7 jours) ; la première synchronisation démarre dès sa connexion.

| Option | Type | Rôle |
| - | - | - |
| `type` | string, obligatoire | L'application, issue de [la liste](#lister-les-applications) |
| `namespace` | string, obligatoire | Le namespace à alimenter |
| `name` | string | Un nom d'affichage, jusqu'à 100 caractères |
| `redirect_url` | string | Où renvoyer l'utilisateur après sa connexion |
| `sync_interval_s` | integer | Secondes entre deux synchronisations, de 300 à 2 592 000 (30 jours) ; Conare en choisit une si omis |
| `config` | object | Pour les applications qui se connectent par clé (Twenty, Granola, GitHub) : `api_key`, et `base_url` pour un Twenty auto-hébergé ; elles se synchronisent aussitôt, sans `connect_url` |

Pour connecter les applications de vos utilisateurs, donnez à chacun un namespace, comme `user-42`. Schéma complet : [Connecter une source](https://docs.conare.ai/fr/api-reference/sources/connect-a-source.md).

## Documents synchronisés

| | |
| - | - |
| Id | `<source id>:<schema>:<record key>` |
| Métadonnées | `source`, `source_id`, `schema`, `title`, ainsi que `url`, `author`, `created_at`, `updated_at` si l'enregistrement les possède |
| Rechercher dans une source | [Filtrez](https://docs.conare.ai/fr/filters.md) sur `source_id` |

## Obtenir une source

`GET /sources/:id`

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

| Champ | Signification |
| - | - |
| `id`, `type`, `name`, `namespace` | Tels que connectés |
| `status` | `connecting` (en attente de connexion), `syncing`, `ready` ou `error` |
| `error` | Ce qui a échoué, ou `null` |
| `documents` | Documents synchronisés |
| `progress` | Pendant la synchronisation, `records_pulled` jusqu'ici |
| `created_at`, `last_synced_at`, `next_sync_at` | Date de connexion, de dernière et de prochaine synchronisation |
| `sync_interval_s`, `sync_interval_auto` | Secondes entre deux synchronisations, et si Conare les choisit |
| `cost` | Ce qu'une synchronisation lit, et le coût mensuel de chaque fréquence |

Schéma complet : [Obtenir une source](https://docs.conare.ai/fr/api-reference/sources/get-a-source.md).

## Lister les sources

`GET /sources`

Renvoie `sources`, chacune telle que Get la renvoie ; une source avec un `kind`, comme `files` ou `gcs`, a plutôt un objet `sync`.

| Option | Type | Rôle |
| - | - | - |
| `namespace`, `user`, `type` | string | Seulement les sources dont le champ vaut cette valeur, comme `?namespace=crm&type=hubspot` |

Schéma complet : [Lister les sources](https://docs.conare.ai/fr/api-reference/sources/list-sources.md).

## Synchroniser maintenant

`POST /sources/:id/sync`

Lance une synchronisation en quelques secondes et renvoie la source ; une source encore `connecting` renvoie `409 conflict`.

| Option | Type | Rôle |
| - | - | - |
| `full` | boolean, `false` par défaut | Tout relire, pas seulement les changements (Gmail, Twenty, Granola, GitHub) ; une synchronisation Gmail complète est facturée comme une première, et `resync` l'indique |

Schéma complet : [Synchroniser une source maintenant](https://docs.conare.ai/fr/api-reference/sources/sync-a-source-now.md).

## Modifier l'intervalle de synchronisation

`PATCH /sources/:id`

| Option | Type | Rôle |
| - | - | - |
| `sync_interval_s` | integer ou null | De 300 à 2 592 000 secondes ; `null` laisse Conare choisir |

Renvoie la source. Schéma complet : [Définir la fréquence de synchronisation](https://docs.conare.ai/fr/api-reference/sources/set-how-often-a-source-syncs.md).

## Déconnecter une source

`DELETE /sources/:id`

Arrête la synchronisation et renvoie `{ "deleted": true }`.

| Option | Type | Rôle |
| - | - | - |
| `delete_documents` | boolean, `false` par défaut | Supprimer aussi les documents synchronisés |

Schéma complet : [Déconnecter une source](https://docs.conare.ai/fr/api-reference/sources/disconnect-a-source.md).

## Lister les applications

`GET /sources/types`

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

* Chacune a le `type` à connecter, son `name` et son `logo_url`, et `auth: "api_key"` pour les applications qui se connectent avec `config`.
* `partial` vaut `true` quand seules ces applications ont pu être listées : réessayez plus tard.

Schéma complet : [Lister les types de sources](https://docs.conare.ai/fr/api-reference/sources/list-source-types.md).


## Related topics

- [List sources](https://docs.conare.ai/fr/api-reference/sources/list-sources.md)
- [Disconnect a source](https://docs.conare.ai/fr/api-reference/sources/disconnect-a-source.md)
- [Connect a source](https://docs.conare.ai/fr/api-reference/sources/connect-a-source.md)
- [Get a source](https://docs.conare.ai/fr/api-reference/sources/get-a-source.md)
- [Sync a source now](https://docs.conare.ai/fr/api-reference/sources/sync-a-source-now.md)


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