diff --git a/src/doctypes/com-grandlyon-ecolyo-challengetype.ts b/src/doctypes/com-grandlyon-ecolyo-challengetype.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fb4644f51a9e754d159f5b8e708d721ab3e942bf
--- /dev/null
+++ b/src/doctypes/com-grandlyon-ecolyo-challengetype.ts
@@ -0,0 +1 @@
+export const CHALLENGETYPE_DOCTYPE = 'com.grandlyon.ecolyo.challengetype'
diff --git a/src/doctypes/com-grandlyon-ecolyo-ecogesture.ts b/src/doctypes/com-grandlyon-ecolyo-ecogesture.ts
new file mode 100644
index 0000000000000000000000000000000000000000..293e29a4721a31734ab12f255214bfa61fd56854
--- /dev/null
+++ b/src/doctypes/com-grandlyon-ecolyo-ecogesture.ts
@@ -0,0 +1 @@
+export const ECOGESTURE_DOCTYPE = 'com.grandlyon.ecolyo.ecogesture'
diff --git a/src/doctypes/com-grandlyon-ecolyo-userchallenge.ts b/src/doctypes/com-grandlyon-ecolyo-userchallenge.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d9e45fded19d3dc3cd60cd8cb949f292346679dd
--- /dev/null
+++ b/src/doctypes/com-grandlyon-ecolyo-userchallenge.ts
@@ -0,0 +1 @@
+export const USERCHALLENGE_DOCTYPE = 'com.grandlyon.ecolyo.userchallenge'
diff --git a/src/doctypes/com-grandlyon-ecolyo-userprofile.ts b/src/doctypes/com-grandlyon-ecolyo-userprofile.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4f24412b255f074cffc2adf29933874f5fa1ed81
--- /dev/null
+++ b/src/doctypes/com-grandlyon-ecolyo-userprofile.ts
@@ -0,0 +1 @@
+export const USERPROFILE_DOCTYPE = 'com.grandlyon.ecolyo.userprofile'
diff --git a/src/doctypes/com-grandlyon-egl-day.ts b/src/doctypes/com-grandlyon-egl-day.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8e7ce7b4a72fe0154787a4a44bd6e8e8281dc1a8
--- /dev/null
+++ b/src/doctypes/com-grandlyon-egl-day.ts
@@ -0,0 +1,21 @@
+import { QueryDefinitionBuilder } from 'cozy-client'
+
+export const EGL_DAY_DOCTYPE = 'com.grandlyon.egl.day'
+
+export type EglDay = {
+  time: string
+  load: string
+  type: string
+}
+
+export function isEglDay(day: any): day is EglDay {
+  return day && 'time' in day && 'load' in day
+}
+
+export function isEglData(data: any[]): data is EglDay[] {
+  return data.every(isEglDay)
+}
+
+// queries for CozyClient
+export const eglQueryClient: QueryDefinitionBuilder = client =>
+  client.find(EGL_DAY_DOCTYPE)
diff --git a/src/doctypes/com-grandlyon-egl-month.ts b/src/doctypes/com-grandlyon-egl-month.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d434ce163302abced81d526dd51671f237ac8dc2
--- /dev/null
+++ b/src/doctypes/com-grandlyon-egl-month.ts
@@ -0,0 +1 @@
+export const EGL_MONTH_DOCTYPE = 'com.grandlyon.egl.month'
diff --git a/src/doctypes/com-grandlyon-egl-year.ts b/src/doctypes/com-grandlyon-egl-year.ts
new file mode 100644
index 0000000000000000000000000000000000000000..90b781959f52ef078aae76c91b6b0c00de61c4df
--- /dev/null
+++ b/src/doctypes/com-grandlyon-egl-year.ts
@@ -0,0 +1 @@
+export const EGL_YEAR_DOCTYPE = 'com.grandlyon.egl.year'
diff --git a/src/doctypes/com-grandlyon-enedis-day.ts b/src/doctypes/com-grandlyon-enedis-day.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5d603130888ce2723d945d40392e59161e64a008
--- /dev/null
+++ b/src/doctypes/com-grandlyon-enedis-day.ts
@@ -0,0 +1,20 @@
+import { QueryDefinitionBuilder } from 'cozy-client'
+
+export const ENEDIS_DAY_DOCTYPE = 'com.grandlyon.enedis.day'
+
+export type EnedisDay = {
+  time: string
+  load: string
+}
+
+export function isEnedisDay(day: any): day is EnedisDay {
+  return day && 'time' in day && 'load' in day
+}
+
+export function isEnedisData(data: any[]): data is EnedisDay[] {
+  return data.every(isEnedisDay)
+}
+
+// queries for CozyClient
+export const enedisQueryClient: QueryDefinitionBuilder = client =>
+  client.find(ENEDIS_DAY_DOCTYPE)
diff --git a/src/doctypes/com-grandlyon-enedis-hour.ts b/src/doctypes/com-grandlyon-enedis-hour.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a6723fc6b369cd9cf5f44ae47a313f98230c5729
--- /dev/null
+++ b/src/doctypes/com-grandlyon-enedis-hour.ts
@@ -0,0 +1 @@
+export const ENEDIS_HOUR_DOCTYPE = 'com.grandlyon.enedis.hour'
diff --git a/src/doctypes/com-grandlyon-enedis-minute.ts b/src/doctypes/com-grandlyon-enedis-minute.ts
new file mode 100644
index 0000000000000000000000000000000000000000..aeceba67da181c529dcad76d6792f573e958a565
--- /dev/null
+++ b/src/doctypes/com-grandlyon-enedis-minute.ts
@@ -0,0 +1 @@
+export const ENEDIS_MINUTE_DOCTYPE = 'com.grandlyon.enedis.minute'
diff --git a/src/doctypes/com-grandlyon-enedis-month.ts b/src/doctypes/com-grandlyon-enedis-month.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f96fc96ed34070ba44edc9d80f325db99e97f7dc
--- /dev/null
+++ b/src/doctypes/com-grandlyon-enedis-month.ts
@@ -0,0 +1 @@
+export const ENEDIS_MONTH_DOCTYPE = 'com.grandlyon.enedis.month'
diff --git a/src/doctypes/com-grandlyon-enedis-year.ts b/src/doctypes/com-grandlyon-enedis-year.ts
new file mode 100644
index 0000000000000000000000000000000000000000..72af35bdfe63504efc18c0046558283b21ad07e0
--- /dev/null
+++ b/src/doctypes/com-grandlyon-enedis-year.ts
@@ -0,0 +1 @@
+export const ENEDIS_YEAR_DOCTYPE = 'com.grandlyon.enedis.year'
diff --git a/src/doctypes/com-grandlyon-grdf-day.ts b/src/doctypes/com-grandlyon-grdf-day.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3949f1fcc33a16e0c753b2abbeecd270df7aed5f
--- /dev/null
+++ b/src/doctypes/com-grandlyon-grdf-day.ts
@@ -0,0 +1,20 @@
+import { QueryDefinitionBuilder } from 'cozy-client'
+
+export const GRDF_DAY_DOCTYPE = 'com.grandlyon.grdf.day'
+
+export type GrdfDay = {
+  time: string
+  load: string
+}
+
+export function isGrdfDay(day: any): day is GrdfDay {
+  return day && 'time' in day && 'load' in day
+}
+
+export function isGrdfData(data: any[]): data is GrdfDay[] {
+  return data.every(isGrdfDay)
+}
+
+// queries for CozyClient
+export const grdfQueryClient: QueryDefinitionBuilder = client =>
+  client.find(GRDF_DAY_DOCTYPE)
diff --git a/src/doctypes/com-grandlyon-grdf-hour.ts b/src/doctypes/com-grandlyon-grdf-hour.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ff5261e82be87eb624453f17f4dd27db442cebd9
--- /dev/null
+++ b/src/doctypes/com-grandlyon-grdf-hour.ts
@@ -0,0 +1 @@
+export const GRDF_HOUR_DOCTYPE = 'com.grandlyon.grdf.hour'
diff --git a/src/doctypes/com-grandlyon-grdf-month.ts b/src/doctypes/com-grandlyon-grdf-month.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1c5515a3179278ace539fd268990350d9bac9967
--- /dev/null
+++ b/src/doctypes/com-grandlyon-grdf-month.ts
@@ -0,0 +1 @@
+export const GRDF_MONTH_DOCTYPE = 'com.grandlyon.grdf.month'
diff --git a/src/doctypes/com-grandlyon-grdf-year.ts b/src/doctypes/com-grandlyon-grdf-year.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6b382449faa514403de14ff5ca2e9831a3fbc7c3
--- /dev/null
+++ b/src/doctypes/com-grandlyon-grdf-year.ts
@@ -0,0 +1 @@
+export const GRDF_YEAR_DOCTYPE = 'com.grandlyon.grdf.year'