Accès programmatique aux données et aux points d'accès de soumission de Future Science
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.
Tous les points d'accès de l'API sont disponibles sous le chemin de base suivant :
https://future-science.org/api/v1/public/Aucune authentification n'est requise. L'API publique est ouverte à tous. Tous les points d'accès sont en lecture seule.
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ètre | Type | Description |
|---|---|---|
cursor | number | Numéro de page, à partir de 1 (alias : page). |
limit | number | Nombre d'éléments par page (1–100, par défaut 10). Alias : pageSize. |
page | number | Alias de cursor — numéro de page, à partir de 1. |
pageSize | number | Alias de limit — nombre d'éléments par page (1–100, par défaut 10). |
search | string | Terme de recherche pour filtrer les résultats par contenu textuel |
sort | string | Champ et ordre de tri (ex. publishedAt:desc, id:desc, createdAt:asc) |
{
"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.
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..."
}
}/api/v1/public/initiativesRenvoie une liste paginée de toutes les initiatives publiées avec leurs métadonnées.
| Paramètre | Type | Description |
|---|---|---|
cursor | number | Numéro de page, à partir de 1 (alias : page). |
limit | number | Nombre d'éléments par page (1–100, par défaut 10). Alias : pageSize. |
page | number | Alias de cursor — numéro de page, à partir de 1. |
pageSize | number | Alias de limit — nombre d'éléments par page (1–100, par défaut 10). |
search | string | Terme de recherche pour filtrer les résultats par contenu textuel |
sort | string | Champ et ordre de tri (ex. publishedAt:desc, id:desc, createdAt:asc) |
{
"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
}
}
}/api/v1/public/initiatives/:idRenvoie 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ètre | Type | Description |
|---|---|---|
id | string | L'identifiant de document de la ressource |
{
"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"
}
}/api/v1/public/initiatives/:id/contributionsRenvoie une liste paginée des contributions publiées d'une seule initiative. Parcourez chaque page pour énumérer l'ensemble complet.
| Paramètre | Type | Description |
|---|---|---|
id | string | L'identifiant de document de la ressource |
cursor | number | Numéro de page, à partir de 1 (alias : page). |
limit | number | Nombre d'éléments par page (1–100, par défaut 10). Alias : pageSize. |
page | number | Alias de cursor — numéro de page, à partir de 1. |
pageSize | number | Alias de limit — nombre d'éléments par page (1–100, par défaut 10). |
search | string | Terme de recherche pour filtrer les résultats par contenu textuel |
sort | string | Champ et ordre de tri (ex. publishedAt:desc, id:desc, createdAt:asc) |
include | string | Dé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. |
{
"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
}
}
}/api/v1/public/contributionsRenvoie une liste paginée de toutes les contributions publiées avec leurs métadonnées.
| Paramètre | Type | Description |
|---|---|---|
cursor | number | Numéro de page, à partir de 1 (alias : page). |
limit | number | Nombre d'éléments par page (1–100, par défaut 10). Alias : pageSize. |
page | number | Alias de cursor — numéro de page, à partir de 1. |
pageSize | number | Alias de limit — nombre d'éléments par page (1–100, par défaut 10). |
search | string | Terme de recherche pour filtrer les résultats par contenu textuel |
sort | string | Champ et ordre de tri (ex. publishedAt:desc, id:desc, createdAt:asc) |
include | string | Dé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. |
{
"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
}
}
}/api/v1/public/contributions/:idRenvoie 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ètre | Type | Description |
|---|---|---|
id | string | L'identifiant de document de la ressource |
include | string | Dé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. |
{
"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"
}
}/api/v1/public/initiatives/:id/exportRenvoie 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ètre | Type | Description |
|---|---|---|
id | string | L'identifiant de document de la ressource |
cursor | number | Numéro de page, à partir de 1 (alias : page). |
limit | number | Nombre d'éléments par page (1–100, par défaut 10). Alias : pageSize. |
page | number | Alias de cursor — numéro de page, à partir de 1. |
pageSize | number | Alias de limit — nombre d'éléments par page (1–100, par défaut 10). |
search | string | Terme de recherche pour filtrer les résultats par contenu textuel |
sort | string | Champ et ordre de tri (ex. publishedAt:desc, id:desc, createdAt:asc) |
{
"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
}
}
}| Champ | Description |
|---|---|
documentId | Identifiant unique du document |
title | Titre de l'initiative |
type | Type d'initiative |
presentation | Texte de description de l'initiative |
logo | Objet image du logo |
leadEditor | Détails du rédacteur en chef (nom, institution, liens) |
editorialBoard | Liste des membres du comité éditorial |
supportingDocuments | Documents justificatifs joints |
publishedAt | Horodatage de publication |
| Champ | Description |
|---|---|
documentId | Identifiant unique du document |
title | Titre de la contribution |
subtitle | Sous-titre (optionnel) |
type | Type de contribution |
otherType | Libellé personnalisé lorsque le type est « Autre » |
abstract | Texte du résumé |
language | Langue de la contribution |
author | Liste des auteurs (nom, institution, email, liens) |
keywords | Liste de mots-clés |
submittedFiles | Fichiers soumis et couverture |
additionalMaterials | Liens de matériaux supplémentaires |
selfArchive | Détails d'auto-archivage (DOI, licence, droits d'auteur, référence) |
isOriginal | Indique s'il s'agit d'une soumission originale |
publishedAt | Horodatage de publication |
Les initiatives sur Future Science sont classées dans les types suivants :
Les contributions soumises aux initiatives peuvent être des types suivants :
GET /api/v1/public/initiatives?cursor=1&limit=2{
"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
}
}
}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.