Documentation API

Accès programmatique aux données et aux points d'accès de soumission de Future Science

1.

Aperçu

L'API publique de Future Science offre un accès gratuit et en lecture seule à toutes les initiatives et contributions publiées sur la plateforme. Aucune authentification n'est requise. Toutes les réponses sont renvoyées au format JSON.

2.

URL de base

Tous les points d'accès de l'API sont disponibles sous le chemin de base suivant :

https://future-science.org/api/v1/public/
3.

Authentification

Aucune authentification n'est requise. L'API publique est ouverte à tous. Tous les points d'accès sont en lecture seule.

4.

Pagination

Les points d'accès de liste paginent avec cursor (numéro de page, à partir de 1) et limit (max 100). Les alias courants page/pageSize sont également acceptés. Parcourir toutes les pages renvoie la collection complète. La réponse inclut un objet meta avec les détails de pagination.

Paramètres de requête

ParamètreTypeDescription
cursornumberNuméro de page, à partir de 1 (alias : page).
limitnumberNombre d'éléments par page (1–100, par défaut 10). Alias : pageSize.
pagenumberAlias de cursor — numéro de page, à partir de 1.
pageSizenumberAlias de limit — nombre d'éléments par page (1–100, par défaut 10).
searchstringTerme de recherche pour filtrer les résultats par contenu textuel
sortstringChamp et ordre de tri (ex. publishedAt:desc, id:desc, createdAt:asc)

Réponse de pagination

{
  "meta": {
    "pagination": {
      "page": 1,
      "pageSize": 10,
      "total": 42,
      "pageCount": 5,
      "self": "https://future-science.org/api/v1/public/contributions?cursor=1&limit=10",
      "first": "https://future-science.org/api/v1/public/contributions?cursor=1&limit=10",
      "last": "https://future-science.org/api/v1/public/contributions?cursor=5&limit=10",
      "next": "https://future-science.org/api/v1/public/contributions?cursor=2&limit=10",
      "prev": null
    }
  }
}

Chaque réponse de liste inclut aussi des liens de navigation absolus — self, first, last, next et prev (next/prev valent null aux extrémités) — pour parcourir toute la collection sans construire les URL à la main.

4b.

Contenu en ligne

Ajoutez ?include=content aux points d'accès contributions pour inclure le manuscrit de chaque article au format markdown dans un champ content, lu directement depuis le stockage objet. content vaut null lorsqu'aucun fichier manuscrit n'existe. Les pages avec contenu sont plus lourdes : limit vaut 20 par défaut et est plafonné à 50, et ces réponses ne sont jamais mises en cache. Les URL de fichiers (submittedFiles.file.url et cover.url) sont renvoyées en URL absolues.

GET /api/v1/public/contributions/:id?include=content
{
  "data": {
    "id": 10,
    "documentId": "xyz789abc012",
    "title": "Toward Open Peer Review",
    "submittedFiles": {
      "file": { "url": "https://future-science.org/strapi/uploads/paper.md" }
    },
    "content": "# Toward Open Peer Review\n\n..."
  }
}
5.

Points d'accès

GET/api/v1/public/initiatives

Lister les initiatives

Renvoie une liste paginée de toutes les initiatives publiées avec leurs métadonnées.

ParamètreTypeDescription
cursornumberNuméro de page, à partir de 1 (alias : page).
limitnumberNombre d'éléments par page (1–100, par défaut 10). Alias : pageSize.
pagenumberAlias de cursor — numéro de page, à partir de 1.
pageSizenumberAlias de limit — nombre d'éléments par page (1–100, par défaut 10).
searchstringTerme de recherche pour filtrer les résultats par contenu textuel
sortstringChamp et ordre de tri (ex. publishedAt:desc, id:desc, createdAt:asc)
Réponse
{
  "data": [
    {
      "id": 1,
      "documentId": "abc123def456",
      "title": "Archive of Academic Commentary",
      "type": "Open Review Archive",
      "presentation": "An open archive for...",
      "logo": { "url": "/strapi/uploads/logo.png" },
      "leadEditor": {
        "firstName": "Jane",
        "lastName": "Doe",
        "institution": "University of Example"
      },
      "editorialBoard": [...],
      "supportingDocuments": [...],
      "publishedAt": "2025-06-15T10:30:00.000Z"
    }
  ],
  "meta": {
    "pagination": {
      "page": 1, "pageSize": 10,
      "total": 8, "pageCount": 1
    }
  }
}
GET/api/v1/public/initiatives/:id

Obtenir une initiative

Renvoie une initiative publiée par son identifiant de document. Ses contributions ne sont pas incluses dans cette réponse — énumérez-les via le point d'accès dédié et paginé ci-dessous.

ParamètreTypeDescription
idstringL'identifiant de document de la ressource
Réponse
{
  "data": {
    "id": 1,
    "documentId": "abc123def456",
    "title": "Archive of Academic Commentary",
    "type": "Open Review Archive",
    "presentation": "An open archive for...",
    "logo": { "url": "/strapi/uploads/logo.png" },
    "leadEditor": {
      "firstName": "Jane",
      "lastName": "Doe",
      "institution": "University of Example",
      "links": [{ "url": "https://..." }]
    },
    "editorialBoard": [
      { "firstName": "John", "lastName": "Smith", ... }
    ],
    "supportingDocuments": [...],
    "institutionalPartners": [...],
    "publishedAt": "2025-06-15T10:30:00.000Z"
  }
}
GET/api/v1/public/initiatives/:id/contributions

Lister les contributions d'une initiative

Renvoie une liste paginée des contributions publiées d'une seule initiative. Parcourez chaque page pour énumérer l'ensemble complet.

ParamètreTypeDescription
idstringL'identifiant de document de la ressource
cursornumberNuméro de page, à partir de 1 (alias : page).
limitnumberNombre d'éléments par page (1–100, par défaut 10). Alias : pageSize.
pagenumberAlias de cursor — numéro de page, à partir de 1.
pageSizenumberAlias de limit — nombre d'éléments par page (1–100, par défaut 10).
searchstringTerme de recherche pour filtrer les résultats par contenu textuel
sortstringChamp et ordre de tri (ex. publishedAt:desc, id:desc, createdAt:asc)
includestringDéfinir sur content pour inclure le manuscrit de chaque contribution au format markdown (points d'accès contributions uniquement). Avec le contenu inclus, limit vaut 20 par défaut et est plafonné à 50.
Réponse
{
  "data": [
    {
      "id": 10,
      "documentId": "xyz789abc012",
      "title": "Toward Open Peer Review",
      "type": "Article",
      "author": { "firstName": "Jane", "lastName": "Doe" },
      "publishedAt": "2025-07-01T08:00:00.000Z"
    }
  ],
  "meta": {
    "pagination": {
      "page": 1, "pageSize": 10,
      "total": 595, "pageCount": 60
    }
  }
}
GET/api/v1/public/contributions

Lister les contributions

Renvoie une liste paginée de toutes les contributions publiées avec leurs métadonnées.

ParamètreTypeDescription
cursornumberNuméro de page, à partir de 1 (alias : page).
limitnumberNombre d'éléments par page (1–100, par défaut 10). Alias : pageSize.
pagenumberAlias de cursor — numéro de page, à partir de 1.
pageSizenumberAlias de limit — nombre d'éléments par page (1–100, par défaut 10).
searchstringTerme de recherche pour filtrer les résultats par contenu textuel
sortstringChamp et ordre de tri (ex. publishedAt:desc, id:desc, createdAt:asc)
includestringDéfinir sur content pour inclure le manuscrit de chaque contribution au format markdown (points d'accès contributions uniquement). Avec le contenu inclus, limit vaut 20 par défaut et est plafonné à 50.
Réponse
{
  "data": [
    {
      "id": 10,
      "documentId": "xyz789abc012",
      "title": "Toward Open Peer Review",
      "subtitle": "A comparative analysis",
      "type": "Article",
      "abstract": "This paper explores...",
      "language": "English",
      "author": { "firstName": "Jane", "lastName": "Doe" },
      "keywords": [{ "keyword": "open access" }],
      "publishedAt": "2025-07-01T08:00:00.000Z"
    }
  ],
  "meta": {
    "pagination": {
      "page": 1, "pageSize": 10,
      "total": 42, "pageCount": 5
    }
  }
}
GET/api/v1/public/contributions/:id

Obtenir une contribution

Renvoie une contribution publiée par son identifiant de document, incluant les détails complets tels que les auteurs, mots-clés, résumé et fichiers. Ajoutez ?include=content pour inclure le manuscrit au format markdown.

ParamètreTypeDescription
idstringL'identifiant de document de la ressource
includestringDéfinir sur content pour inclure le manuscrit de chaque contribution au format markdown (points d'accès contributions uniquement). Avec le contenu inclus, limit vaut 20 par défaut et est plafonné à 50.
Réponse
{
  "data": {
    "id": 10,
    "documentId": "xyz789abc012",
    "title": "Toward Open Peer Review",
    "subtitle": "A comparative analysis",
    "type": "Article",
    "otherType": null,
    "abstract": "This paper explores...",
    "language": "English",
    "author": {
      "firstName": "Jane", "lastName": "Doe"
    },
    "keywords": [{ "keyword": "open access" }],
    "submittedFiles": {
      "file": { "url": "https://future-science.org/strapi/uploads/paper.md" },
      "cover": { "url": "https://future-science.org/strapi/uploads/cover.png" }
    },
    "additionalMaterials": [...],
    "selfArchive": true,
    "isOriginal": true,
    "publishedAt": "2025-07-01T08:00:00.000Z"
  }
}
GET/api/v1/public/initiatives/:id/export

Exporter les contributions d'une initiative

Renvoie les contributions publiées d'une initiative avec chaque manuscrit inclus au format markdown (se comporte toujours comme include=content). limit vaut 20 par défaut et est plafonné à 50 ; paginez avec le lien absolu next pour exporter toute l'initiative. Les réponses ne sont jamais mises en cache.

ParamètreTypeDescription
idstringL'identifiant de document de la ressource
cursornumberNuméro de page, à partir de 1 (alias : page).
limitnumberNombre d'éléments par page (1–100, par défaut 10). Alias : pageSize.
pagenumberAlias de cursor — numéro de page, à partir de 1.
pageSizenumberAlias de limit — nombre d'éléments par page (1–100, par défaut 10).
searchstringTerme de recherche pour filtrer les résultats par contenu textuel
sortstringChamp et ordre de tri (ex. publishedAt:desc, id:desc, createdAt:asc)
Réponse
{
  "data": [
    {
      "id": 10,
      "documentId": "xyz789abc012",
      "title": "Toward Open Peer Review",
      "submittedFiles": {
        "file": { "url": "https://future-science.org/strapi/uploads/paper.md" }
      },
      "content": "# Toward Open Peer Review\n\n..."
    }
  ],
  "meta": {
    "pagination": {
      "page": 1, "pageSize": 20,
      "total": 595, "pageCount": 30,
      "self": "https://future-science.org/api/v1/public/initiatives/abc/export?cursor=1&limit=20&include=content",
      "next": "https://future-science.org/api/v1/public/initiatives/abc/export?cursor=2&limit=20&include=content",
      "prev": null
    }
  }
}
6.

Champs de réponse

Champs d'initiative

ChampDescription
documentIdIdentifiant unique du document
titleTitre de l'initiative
typeType d'initiative
presentationTexte de description de l'initiative
logoObjet image du logo
leadEditorDétails du rédacteur en chef (nom, institution, liens)
editorialBoardListe des membres du comité éditorial
supportingDocumentsDocuments justificatifs joints
publishedAtHorodatage de publication

Champs de contribution

ChampDescription
documentIdIdentifiant unique du document
titleTitre de la contribution
subtitleSous-titre (optionnel)
typeType de contribution
otherTypeLibellé personnalisé lorsque le type est « Autre »
abstractTexte du résumé
languageLangue de la contribution
authorListe des auteurs (nom, institution, email, liens)
keywordsListe de mots-clés
submittedFilesFichiers soumis et couverture
additionalMaterialsLiens de matériaux supplémentaires
selfArchiveDétails d'auto-archivage (DOI, licence, droits d'auteur, référence)
isOriginalIndique s'il s'agit d'une soumission originale
publishedAtHorodatage de publication
7.

Types d'initiatives

Les initiatives sur Future Science sont classées dans les types suivants :

Open Review JournalUne revue dirigée par des chercheurs avec une évaluation par les pairs ouverte et transparente. Les évaluations, réponses des auteurs et décisions éditoriales sont accessibles au public.
Open Review Conference ProceedingsUn volume rassemblant des contributions évaluées par les pairs issues d'événements académiques, incluant du matériel multimédia.
Open Review ArchiveUne archive ouverte où tout chercheur peut déposer un travail soumis à une évaluation ouverte communautaire.
Open Review NotebookUne archive fermée réservée à une communauté spécifique (ex. un laboratoire), permettant le travail partagé et l'évaluation ouverte interne.
AI-Reviewed JournalUne revue utilisant l'intelligence artificielle pour assister le processus éditorial et d'évaluation, incluant le traitement des documents et l'attribution des évaluateurs.
Fully Autonomous JournalUn environnement expérimental où la génération d'articles, l'évaluation par les pairs et les décisions éditoriales sont effectuées par des agents IA autonomes.
AutreUn type d'initiative personnalisé défini par le rédacteur en chef.
8.

Types de contributions

Les contributions soumises aux initiatives peuvent être des types suivants :

Article
Communication de conférence
Livre
Chapitre de livre
Réponse à une contribution
Réponse à une évaluation
Manuscrit non évalué
Évaluation par les pairs
Manuscrit révisé
Podcast
Autre
Revue de littérature
9.

Exemple de requête et réponse

Requête

GET /api/v1/public/initiatives?cursor=1&limit=2

Réponse

{
  "data": [
    {
      "id": 1,
      "documentId": "abc123def456",
      "title": "Archive of Academic Commentary",
      "type": "Open Review Archive",
      "presentation": "An open archive for...",
      "logo": { "url": "/uploads/logo.png" },
      "leadEditor": {
        "firstName": "Jane",
        "lastName": "Doe",
        "institution": "University of Example"
      },
      "editorialBoard": [...],
      "publishedAt": "2025-06-15T10:30:00.000Z"
    }
  ],
  "meta": {
    "pagination": {
      "page": 1,
      "pageSize": 2,
      "total": 8,
      "pageCount": 4
    }
  }
}
10.

Réponses d'erreur

Lorsqu'une ressource est introuvable, l'API renvoie un statut 404 avec un message d'erreur :

// 404 Not Found
{
  "error": "Initiative not found"
}

// 404 Not Found
{
  "error": "Contribution not found"
}

L'API publique n'a pas de limites de taux strictes, mais veuillez l'utiliser de manière responsable. Les requêtes automatisées excessives peuvent être limitées.