diff --git a/CHANGELOG.md b/CHANGELOG.md
index da9cb47da6146e26cd69fa1dee58827361276ddc..39d4d36dbd99265ca1d05c911a97409df4ff98ad 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,7 @@ Tous les changements de ce projet seront documentés dans ce document.
 
 ## [Non livré]
 
+- Mode API : Ajout d'un mode API only dans le composant api-event-calculs permettant d'utiliser le composant sans base de données ou kafka.
 - Nettoyage : Suppression complète du calcul de l'impact du réseau à partir d'un équipement physique de type réseau (donc suppression des champs goTelecharge et nbJourUtiliseAn dans l'inventaire des équipements physiques). Désormais, l'impact du réseau se calcule grâce aux opérations non IT -> [Issue10](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/numecoeval/-/issues/10)
 - Customisation des référentiels par organisation : les référentiels TypeItem, FacteurCaracterisation, CorrespondanceRefEquipement et Hypotheses peuvent être personnalisés par une organisation -> [Issue9](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/numecoeval/-/issues/9)
 
diff --git a/services/api-event-calculs/pom.xml b/services/api-event-calculs/pom.xml
index 86161507a2af9511744aedee0894c830e9dd0f3b..12431968ccd6082beba0972b4b787a8ab0e39cd7 100644
--- a/services/api-event-calculs/pom.xml
+++ b/services/api-event-calculs/pom.xml
@@ -60,6 +60,12 @@
             <scope>runtime</scope>
         </dependency>
 
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+
         <dependency>
             <groupId>org.springframework.kafka</groupId>
             <artifactId>spring-kafka</artifactId>
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/CacheConfig.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/CacheConfig.java
index 77b917c42d66b969748b459f5589fc71b27357ab..6cb04ee885c72ec48ec59ef7485e15bf2ef48d5d 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/CacheConfig.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/CacheConfig.java
@@ -14,7 +14,7 @@ import java.util.concurrent.TimeUnit;
 @EnableCaching
 @EnableScheduling
 @Configuration
-@Profile("!test")
+@Profile("!test & !onlyapi")
 public class CacheConfig {
 
     @CacheEvict(value = {
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/KafkaConfiguration.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/KafkaConfiguration.java
index 0a23a8d1d72256fb6312671b2ead4b4d6a1dd5bd..dcbf04d5b031c9f82b43c7cee8975f8af4ee2486 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/KafkaConfiguration.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/KafkaConfiguration.java
@@ -4,11 +4,13 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
 import org.springframework.kafka.listener.DefaultErrorHandler;
 import org.springframework.util.backoff.FixedBackOff;
 
 @Configuration
 @Slf4j
+@Profile("!onlyapi")
 public class KafkaConfiguration {
 
     @Value("${spring.kafka.back-off-sec}")
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java
index 993a86630e22e07c0dbcb2fceec370c60c372a48..14a8b37581cc1078d6df149f5e37e0e4d2310926 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java
@@ -21,7 +21,7 @@ import java.util.List;
  */
 @RestController
 @Slf4j
-@Profile("!prod & !test")
+@Profile("!prod & !test & !onlyapi")
 @RequestMapping("indicateur")
 public class IndicateurController {
 
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/sync/calculs/SyncCalculsController.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/sync/calculs/SyncCalculsController.java
index 327e85e39a178f701f61365807f64f39066a77ff..a78f0542b9c089b7339463e2ba183aa4ced12fcf 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/sync/calculs/SyncCalculsController.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/sync/calculs/SyncCalculsController.java
@@ -5,11 +5,13 @@ import org.mte.numecoeval.calculs.infrastructure.service.sync.calculs.SyncCalcul
 import org.mte.numecoeval.calculs.sync.generated.api.model.ReponseCalculRest;
 import org.mte.numecoeval.calculs.sync.generated.api.model.SyncCalculRest;
 import org.mte.numecoeval.calculs.sync.generated.api.server.CalculsEquipementPhysiqueEtOperationNonItEtMessagerieApi;
+import org.springframework.context.annotation.Profile;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @AllArgsConstructor
+@Profile("!onlyapi")
 public class SyncCalculsController implements CalculsEquipementPhysiqueEtOperationNonItEtMessagerieApi {
 
     SyncCalculService syncCalculService;
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenEquipementPhysique.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenEquipementPhysique.java
index 7bb761ea51fbf31dfe2f883406012a8dad1cf91c..23072224ad29420717bab48073453182841b1bdd 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenEquipementPhysique.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenEquipementPhysique.java
@@ -4,12 +4,14 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.mte.numecoeval.calculs.infrastructure.service.calcul.MainEquipementPhysiqueService;
 import org.mte.numecoeval.topic.data.EquipementPhysiqueDTO;
+import org.springframework.context.annotation.Profile;
 import org.springframework.kafka.annotation.KafkaListener;
 import org.springframework.stereotype.Component;
 
 @Component
 @Slf4j
 @AllArgsConstructor
+@Profile("!onlyapi")
 public class ListenEquipementPhysique {
 
     private MainEquipementPhysiqueService mainEquipementPhysiqueService;
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenMessagerie.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenMessagerie.java
index 5c94e031a3332550f20b8645128daac1b20f8692..d3bb9f5faed1969308ed86fbadc5c4b97092d892 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenMessagerie.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenMessagerie.java
@@ -4,12 +4,14 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.mte.numecoeval.calculs.infrastructure.service.calcul.MainMessagerieService;
 import org.mte.numecoeval.topic.data.MessagerieDTO;
+import org.springframework.context.annotation.Profile;
 import org.springframework.kafka.annotation.KafkaListener;
 import org.springframework.stereotype.Component;
 
 @Component
 @Slf4j
 @AllArgsConstructor
+@Profile("!onlyapi")
 public class ListenMessagerie {
 
     private MainMessagerieService mainMessagerieService;
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenOperationNonIT.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenOperationNonIT.java
index 61b4e1c079b589448125f98653e40ab651990e3e..5c45f30f22a060e61cdf4a7fb35018409ed0bc1f 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenOperationNonIT.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/kafkalistener/ListenOperationNonIT.java
@@ -4,12 +4,14 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.mte.numecoeval.calculs.infrastructure.service.calcul.MainOperationNonITService;
 import org.mte.numecoeval.topic.data.OperationNonITDTO;
+import org.springframework.context.annotation.Profile;
 import org.springframework.kafka.annotation.KafkaListener;
 import org.springframework.stereotype.Component;
 
 @Component
 @Slf4j
 @AllArgsConstructor
+@Profile("!onlyapi")
 public class ListenOperationNonIT {
 
     private MainOperationNonITService mainOperationNonITService;
diff --git a/services/api-event-calculs/src/main/resources/application-full.yaml b/services/api-event-calculs/src/main/resources/application-full.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9b3c0aa00ffd5ee361ec004f64c644fe56dac454
--- /dev/null
+++ b/services/api-event-calculs/src/main/resources/application-full.yaml
@@ -0,0 +1,31 @@
+spring:
+  sql:
+    init:
+      mode: always
+  # Base de données
+  datasource:
+    generate-unique-name: true
+    url: "jdbc:postgresql://localhost:5432/postgres?reWriteBatchedInserts=true"
+    username: postgres
+    password: postgres
+    driver-class-name: org.postgresql.Driver
+    tomcat:
+      test-on-borrow: false
+      jmx-enabled: false
+      max-active: 100
+  # Kafka
+  kafka:
+    bootstrap-servers: localhost:9092
+    back-off-sec: 10
+    consumer:
+      group-id: api-event-calculs
+      auto-offset-reset: earliest
+      enable-auto-commit: false
+      max-poll-records: 50
+      isolation.level: read_committed
+      value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
+      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
+      properties:
+        spring.json.trusted.packages: "org.mte.numecoeval.*"
+
+
diff --git a/services/api-event-calculs/src/main/resources/application-onlyapi.yaml b/services/api-event-calculs/src/main/resources/application-onlyapi.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7329b5323bd670e442146ceae78e48e7163bdcb6
--- /dev/null
+++ b/services/api-event-calculs/src/main/resources/application-onlyapi.yaml
@@ -0,0 +1,12 @@
+spring:
+  sql:
+    init:
+      mode: never
+  datasource:
+    generate-unique-name: true
+    url: "jdbc:h2:mem:notused"
+    username: sa
+    password: password
+    driver-class-name: org.h2.Driver
+  jpa:
+    database-platform: org.hibernate.dialect.H2Dialect
diff --git a/services/api-event-calculs/src/main/resources/application.yaml b/services/api-event-calculs/src/main/resources/application.yaml
index 070760f94f56997220ec35ebe289589391063e6a..ba3dfc42c1f6ca87a606fd8994091e6d6d823abd 100644
--- a/services/api-event-calculs/src/main/resources/application.yaml
+++ b/services/api-event-calculs/src/main/resources/application.yaml
@@ -1,32 +1,16 @@
+server:
+  port: 18085
+  shutdown: graceful
+
+# 3 profiles :
+# full    : read from kafka and save into ind_* database tables
+# onlyapi : only uses APIs for calculations, not connected to kafka
+# test    : for test purposes
 spring:
-  sql:
-    init:
-      mode: always
-  # Base de données
-  datasource:
-    generate-unique-name: true
-    url: "jdbc:postgresql://localhost:5432/postgres?reWriteBatchedInserts=true"
-    username: postgres
-    password: postgres
-    driver-class-name: org.postgresql.Driver
-    tomcat:
-      test-on-borrow: false
-      jmx-enabled: false
-      max-active: 100
-  # Kafka
-  kafka:
-    bootstrap-servers: localhost:9092
-    back-off-sec: 10
-    consumer:
-      group-id: api-event-calculs
-      auto-offset-reset: earliest
-      enable-auto-commit: false
-      max-poll-records: 50
-      isolation.level: read_committed
-      value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
-      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
-      properties:
-        spring.json.trusted.packages: "org.mte.numecoeval.*"
+  profiles:
+    active:
+      full
+      # onlyapi
 
 # Application
 numecoeval:
@@ -44,10 +28,6 @@ numecoeval:
     ttl: "20"
     donnesfiltrees: "1"
 
-server:
-  port: 18085
-  shutdown: graceful
-
 # Actuator
 management:
   server:
@@ -61,4 +41,4 @@ management:
     web:
       base-path: /
       exposure:
-        include: health,prometheus,httptrace,info,metrics,mappings
\ No newline at end of file
+        include: health,prometheus,httptrace,info,metrics,mappings
diff --git a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/ApiEventCalculsApplicationTests.java b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/ApiEventCalculsApplicationTests.java
index fefa1b0ea742938483c8a4913b03cf418c609f01..d71dccbd4d2282ac9f166c7e6e6e87716decef87 100644
--- a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/ApiEventCalculsApplicationTests.java
+++ b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/ApiEventCalculsApplicationTests.java
@@ -39,7 +39,7 @@ import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.times;
 
 @SpringBootTest
-@ActiveProfiles(profiles = {"test"})
+@ActiveProfiles(profiles = {"test", "onlyapi"})
 @Slf4j
 @EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class, DataSourceAutoConfiguration.class, KafkaAutoConfiguration.class})
 class ApiEventCalculsApplicationTests {