diff --git a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/dao/impl/SynchroExecutionDaoImpl.java b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/dao/impl/SynchroExecutionDaoImpl.java
index 746ab651b9a3e232a15fb5c9f4ea513a7a2e1145..c91ecfa50e2a0c110ffa25135805d1c65c318b0e 100644
--- a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/dao/impl/SynchroExecutionDaoImpl.java
+++ b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/dao/impl/SynchroExecutionDaoImpl.java
@@ -88,16 +88,18 @@ public class SynchroExecutionDaoImpl extends AbstractDao implements SynchroExecu
         Preconditions.checkNotNull(peer);
         Preconditions.checkNotNull(peer.getCurrency());
         Preconditions.checkNotNull(peer.getId());
+        Preconditions.checkNotNull(peer.getApi());
 
         BoolQueryBuilder query = QueryBuilders.boolQuery()
-                .filter(QueryBuilders.termQuery(SynchroExecution.PROPERTY_PEER, peer.getId()));
+                .filter(QueryBuilders.termQuery(SynchroExecution.PROPERTY_PEER, peer.getId()))
+                .filter(QueryBuilders.termQuery(SynchroExecution.PROPERTY_API, peer.getApi()));
 
         SearchResponse response = client.prepareSearch(peer.getCurrency())
                 .setTypes(TYPE)
                 .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
                 .setQuery(query)
                 .setFetchSource(true)
-                .setFrom(0).setSize(1)
+                .setSize(1)
                 .addSort(SynchroExecution.PROPERTY_TIME, SortOrder.DESC)
                 .get();
 
@@ -126,6 +128,12 @@ public class SynchroExecutionDaoImpl extends AbstractDao implements SynchroExecu
                     .field("index", "not_analyzed")
                     .endObject()
 
+                    // peer
+                    .startObject(SynchroExecution.PROPERTY_API)
+                    .field("type", "string")
+                    .field("index", "not_analyzed")
+                    .endObject()
+
                     // issuer
                     .startObject(SynchroExecution.PROPERTY_ISSUER)
                     .field("type", "string")
diff --git a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/model/SynchroExecution.java b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/model/SynchroExecution.java
index c17dfc07981f066a0782eceb5fff5dc730d1f490..9ce4b4df34686f61df7cadc8fc609c297e718a48 100644
--- a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/model/SynchroExecution.java
+++ b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/model/SynchroExecution.java
@@ -6,11 +6,13 @@ public class SynchroExecution extends Record {
 
     public static final String PROPERTY_CURRENCY = "currency";
     public static final String PROPERTY_PEER = "peer";
+    public static final String PROPERTY_API = "api";
     public static final String PROPERTY_RESULT = "result";
 
 
     private String currency;
     private String peer;
+    private String api;
     private SynchroResult result;
 
     public String getCurrency() {
@@ -36,4 +38,12 @@ public class SynchroExecution extends Record {
     public void setResult(SynchroResult result) {
         this.result = result;
     }
+
+    public String getApi() {
+        return api;
+    }
+
+    public void setApi(String api) {
+        this.api = api;
+    }
 }
diff --git a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/synchro/SynchroService.java b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/synchro/SynchroService.java
index e3055402eba3d818aa600f59245dd708447529cc..29073c50467459b6b6c6993cbfdc9cb06989ad97 100644
--- a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/synchro/SynchroService.java
+++ b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/synchro/SynchroService.java
@@ -303,8 +303,6 @@ public class SynchroService extends AbstractService {
     protected boolean waitPeersReady() throws InterruptedException{
         final int sleepTime = 10 * 1000 /*10s*/;
 
-
-
         int maxWaitingDuration = 5 * 6 * sleepTime; // 5 min
         int waitingDuration = 0;
         while (!isReady() && !hasSomePeers()) {
@@ -326,7 +324,6 @@ public class SynchroService extends AbstractService {
 
     protected long getLastExecutionTime(Peer peer) {
         Preconditions.checkNotNull(peer);
-        Preconditions.checkNotNull(peer.getId());
 
         try {
             SynchroExecution execution = synchroExecutionDao.getLastExecution(peer);