Points de terminaison Project API

Référence complète des points de terminaison REST API de gestion de projet, incluant les paramètres, les membres, les clés de providers, les clés API et les compteurs.

12 min lire
apiprojectsettings

La Project API offre une gestion complète de votre projet CodeCourier - ses métadonnées, ses paramètres, ses membres d’équipe, ses clés de providers, ses clés API et ses compteurs d’usage. Tous les points de terminaison exigent une clé API de projet valide dans le header Authorization.

CRUD du projet

GET /api/v1/project

Récupère les détails du projet actuel, y compris le nom, le slug, l’URL du repo GitHub et la date de création.

curl -H "Authorization: Bearer cc_live_..." \
  https://<deployment>.convex.site/api/v1/project

Réponse :

{
  "data": {
    "id": "...",
    "_id": "...",
    "name": "My Project",
    "slug": "my-project",
    "githubRepoUrl": "https://github.com/org/repo",
    "_creationTime": 1700000000000
  }
}

POST /api/v1/project/update

Met à jour les métadonnées du projet. Tous les champs du body sont optionnels - seuls les champs fournis sont mis à jour.

curl -X POST -H "Authorization: Bearer cc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name": "New Name", "slug": "new-slug", "githubRepoUrl": "https://github.com/org/new-repo"}' \
  https://<deployment>.convex.site/api/v1/project/update

Champs du body :

  • name (string, optionnel) - Nouveau nom du projet
  • slug (string, optionnel) - Nouveau slug d’URL
  • githubRepoUrl (string, optionnel) - URL du repository

POST /api/v1/project/delete

Supprime le projet. Il s’agit d’une opération destructrice. Aucun body de requête requis.

Paramètres du projet

GET /api/v1/project/settings

Récupère tous les paramètres du projet, y compris les prompts système, les variables d’environnement, la configuration des learnings et l’identité de commit git.

POST /api/v1/project/settings/update

Met à jour les paramètres du projet. Tous les champs du body sont optionnels.

curl -X POST -H "Authorization: Bearer cc_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "sandboxSystemPrompt": "You are a helpful coding assistant.",
    "claudeMd": "# Project Instructions\n...",
    "issueDiscoveryPrompt": "Analyze the codebase and identify issues.",
    "envVars": {"NODE_ENV": "production"},
    "gitCommitName": "CodeCourier Bot",
    "gitCommitEmail": "bot@example.com"
  }' \
  https://<deployment>.convex.site/api/v1/project/settings/update

Champs du body :

  • sandboxSystemPrompt - Prompt système injecté dans les sandboxes
  • claudeMd - Contenu CLAUDE.md pour les agents sandbox
  • issueDiscoveryPrompt - Prompt par défaut pour les sessions de découverte d’issues
  • selectedSkills - Tableau d’identifiants de skills
  • selectedCommands - Tableau d’identifiants de commands
  • selectedScripts - Tableau d’identifiants de scripts
  • envVars - Variables d’environnement clé-valeur
  • deployEnvVars - Variables d’environnement spécifiques au déploiement
  • testUserCredentials - Objet d’identifiants utilisateur de test
  • convexDeployKey - Clé de déploiement Convex
  • convexDevKey - Clé de développement Convex
  • learningTemplateId - Template pour l’extraction de learnings
  • learningModel - Modèle utilisé pour l’extraction de learnings
  • mergingTemplateId - Template pour les opérations de fusion
  • mergingModel - Modèle utilisé pour les opérations de fusion
  • gitCommitName - Nom d’auteur git
  • gitCommitEmail - E-mail d’auteur git

Membres de l’équipe

GET /api/v1/project/members

Liste tous les membres de l’équipe du projet avec leurs rôles et leur statut.

POST /api/v1/project/members/invite

Invite un nouveau membre dans le projet.

{
  "email": "user@example.com",
  "role": "member"
}

Rôles valides : "owner", "admin", "member".

POST /api/v1/project/members/remove

Retire un membre du projet.

{ "targetUserId": "..." }

POST /api/v1/project/members/update-role

Met à jour le rôle d’un membre.

{ "targetUserId": "...", "role": "admin" }

Clés de providers

Les clés de providers sont des identifiants pour les services externes utilisés au runtime de la sandbox (E2B, Anthropic, OpenRouter, OpenAI, GitHub).

GET /api/v1/project/provider-keys

Liste toutes les clés de providers. Renvoie uniquement le nom du provider et les 4 derniers caractères (les clés sont chiffrées au repos).

POST /api/v1/project/provider-keys/set

Définit ou met à jour une clé de provider.

{
  "provider": "anthropic",
  "key": "sk-ant-..."
}

POST /api/v1/project/provider-keys/remove

Retire une clé de provider.

{ "provider": "anthropic" }

Clés API

GET /api/v1/project/api-keys

Liste toutes les clés API du projet en affichant le préfixe, le nom, la date de création, la date de dernière utilisation et le statut de révocation.

POST /api/v1/project/api-keys/generate

Génère une nouvelle clé API. Renvoie la clé complète (affichée une seule fois).

curl -X POST -H "Authorization: Bearer cc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name": "My New Key"}' \
  https://<deployment>.convex.site/api/v1/project/api-keys/generate

Réponse :

{
  "data": {
    "key": "cc_live_abc123def456...",
    "id": "..."
  }
}

POST /api/v1/project/api-keys/revoke

Révoque une clé API. La révocation est immédiate et permanente.

{ "keyId": "..." }

Compteurs du projet

GET /api/v1/project/counters

Récupère les compteurs agrégés du projet (total des runs, sandboxes, workflows, etc.). Utile pour les résumés de dashboard.