Clés API
Génération live/test, expiration, rotation, révocation et affichage du secret une seule fois.
Créez des clés développeur, limitez les scopes, connectez vos outils et recevez les événements Dexyd sans passer par un devis pour l'usage standard inclus dans Organisateur Pro.
Génération live/test, expiration, rotation, révocation et affichage du secret une seule fois.
Contrôle par périmètre: lecture publique, concours, soumissions, Expo, exports, MCP et brouillons.
Événements sortants signés pour synchroniser CRM, automatisations, BI ou outils internes.
Les intégrations API standard sont incluses dans ce plan. Les demandes white-label et intégrations complexes restent traitées séparément.
Dans la console développeur, choisissez le mode live ou test, les scopes et une expiration adaptée.
Envoyez la clé dans Authorization Bearer ou x-dexyd-api-key et lisez les en-têtes de rate limit.
curl "https://www.dexyd.com/api/v1/competitions?limit=10" \
-H "Authorization: Bearer dxyd_live_xxxxx_xxxxxxxxx" \
-H "Accept: application/json"Les clés API sont créées depuis la console Dexyd. Le secret complet est affiché une seule fois; Dexyd stocke uniquement le hash et le préfixe public.
dxyd_live_... pour production.
dxyd_test_... pour sandbox, tests et connecteurs non critiques.
Authorization: Bearer <dxyd_key>
x-dexyd-api-key: <dxyd_key>
public:readLire les données publiques Dexyd utiles aux agents, recherches et intégrations.
competitions:readLister et consulter les concours visibles par le propriétaire de la clé.
submissions:readLire les soumissions et signaux associés lorsque le compte y a accès.
expo:readLire les produits Expo publics ou rattachés au compte organisateur.
exports:readExtraire des données structurées pour reporting, CRM, BI ou synchronisation.
media:importAutoriser un connecteur à importer des médias dans un flux Dexyd contrôlé.
agent:mcpConnecter un client MCP ou un agent externe aux outils Dexyd autorisés.
drafts:writeCréer des brouillons Dexyd qui restent validables par l'utilisateur dans l'app.
Les routes publiques versionnées servent les intégrations. Elles ne remplacent pas les routes UI et n'exposent jamais directement Supabase.
GET/api/v1/competitionsListe paginée des concours accessibles.competitions:readlimit, offset, status, categoryGET/api/v1/submissionsListe paginée des soumissions accessibles.submissions:readlimit, offset, competition_id, statusGET/api/v1/expo-productsProduits Expo publics ou rattachés au compte.expo:readlimit, offset, status, categoryGET/api/v1/exports/competitionsExport structuré des concours pour BI, CRM ou archivage.exports:readformat=json, limit, offsetLe endpoint MCP Dexyd reste disponible sur /api/agent/mcp. Il accepte maintenant les clés développeur avec le scope agent:mcp, tout en gardant la compatibilité avec l'ancien token connecteur.
{
"mcpServers": {
"dexyd": {
"url": "https://www.dexyd.com/api/agent/mcp",
"headers": {
"Authorization": "Bearer dxyd_live_xxxxx_xxxxxxxxx"
}
}
}
}Configurez une URL sortante, choisissez les événements et utilisez le secret whsec_... pour vérifier chaque livraison.
competition.createdcompetition.updatedsubmission.createdsubmission.updatedexpo_product.createdexpo_product.updatedexpo_product.bid.createdexpo_product.inquiry.createdtest.pingX-Dexyd-Event nom de l'événement.X-Dexyd-Delivery identifiant unique de livraison.X-Dexyd-Timestamp timestamp Unix en secondes.X-Dexyd-Signature signature t=...,v1=....import crypto from 'node:crypto'
export function verifyDexydWebhook({ secret, timestamp, body, signature }) {
const expected = crypto
.createHmac('sha256', secret)
.update(`${timestamp}.${body}`)
.digest('hex')
return signature.includes(`v1=${expected}`)
}Les erreurs suivent un format stable pour permettre une gestion uniforme côté client.
{
"code": "DEVELOPER_API_SCOPE_REQUIRED",
"message": "Developer API key scope is insufficient",
"details": {
"required_scopes": ["competitions:read"]
}
}INVALID_REQUESTParamètre ou corps de requête invalide.DEVELOPER_API_KEY_INVALIDClé absente, mal formée, expirée ou révoquée.DEVELOPER_PLATFORM_PLAN_REQUIREDLe compte doit être sur Organisateur Pro.DEVELOPER_API_SCOPE_REQUIREDLa clé existe mais le scope requis manque.RATE_LIMITEDLa limite minute ou jour est atteinte.DEVELOPER_PLATFORM_NOT_CONFIGUREDLe schéma Supabase développeur doit être appliqué.Chaque clé possède une limite par minute et par jour. Les réponses API renvoient toujours les en-têtes utiles quand la clé est valide.
X-RateLimit-Limit limite de la fenêtre active.X-RateLimit-Remaining appels restants.X-RateLimit-Reset timestamp de reset.curl "https://www.dexyd.com/api/v1/competitions?limit=10" \
-H "Authorization: Bearer dxyd_live_xxxxx_xxxxxxxxx" \
-H "Accept: application/json"const response = await fetch('https://www.dexyd.com/api/v1/competitions?limit=10', {
headers: {
Authorization: 'Bearer dxyd_live_xxxxx_xxxxxxxxx',
Accept: 'application/json'
}
})
if (!response.ok) {
const error = await response.json()
throw new Error(error.message || error.code)
}
const data = await response.json()