Get started
The BubbleLab API is accessible with a Bubblelab Pro subscription (Bubblelab API plan).
The API is an interface that allows other computer programs to send birthdata to our servers and receive visual profiling and personalised insight.
For any questions. Please contact us at hello@mybubblelab.com
AUTHENTICATION
The simplest way to provide authentication is using HTTP Basic authentication. Use your API key and secret as username and password.
REGISTER (active)
The REGISTER api call register a new user in the system, or gives back the ID of the person in case the record already exists.
Duplicate is considered when a person has exactly the same login (login is email address for now). (TBC)
To register a person or get the Id from an existing person, you have to make a POST call to the following URL:
https://app.zebrapad.io/api/register.php
QUERY PARAMETERS
| Field |
Type |
Description |
| login |
String |
e-mail address |
| password |
String |
user password |
| fname |
String |
First name (in format last name first name, e.g. PITT BRAD) |
| gender |
String |
Gender in format M/F |
| bdate |
String |
Birth date in format YYYY-MM-DD |
| btime |
String |
Local birth time in format hh:mm:ss |
| bcity |
String |
City of birth. |
| bcountry |
String |
Country of birth. |
| timezone |
String |
Timezone in standard format (e.g. Europe/Brussels) |
| bdatetime_tmz |
String |
Date and time together with the timezone offset. Standard format has to be respected YYYY-MM-DD hh:mm:ss [+-]hh:mm. Example 1984-05-21 14:35:00 +02:00 |
| lat |
Number |
Latitude of birthplace. |
| lng |
Number |
Longitude of birthplace. |
| death |
String |
Date of death (if applicable). Can contain reason of death. Not date restricted. |
RESPONSE
| Field |
Type |
Description |
| message |
String |
Output of operation (e.g. user already exists in database) |
| status |
String |
Status about insert (e.g. ok/error) |
| id_person |
Number |
ID of the person registered. |
USER ACTIVATE
After user is being registered, activation token is being generated in the DB. User has to receive the email with the token to activate
This api has two parts GET and POST
When calling with POST request (and passing id_person), user will receive the email with token link on email entered during the registration.
https://app.zebrapad.io/api/user_activate.php
When calling with get request, token is passed in GET parameter and activation is aenabled in the DB
https://app.zebrapad.io/api/user_activate.php?token=[TOKEN FROM DATABASE]
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Integer |
|
RESPONSE
| Field |
Type |
Description |
| message |
String |
Output of operation |
| status |
String |
Status about insert (e.g. ok/error) |
LOGIN (active)
LOGIN api check for user by given login and password. All passwords are hashed in database.
https://app.zebrapad.io/api/login.php
QUERY PARAMETERS
| Field |
Type |
Description |
| login |
String |
e-mail address |
| password |
String |
user password |
RESPONSE
| Field |
Type |
Description |
| message |
String |
Output of operation (e.g. ok/login failed) |
| status |
String |
Status about insert (e.g. ok/error) |
| id_person |
Number |
ID of the person logged. |
| JWT |
Varchar |
JWT token |
USER EDIT
The USER EDITR api call edits a new user in the system and gives back the ID of the person who was edited.
To edit a user, you have to pass ID_PERSON along with all the other parameters. Suggested way is to prepopulate all the fields with current values so user don't have to retype all the values again.
https://app.zebrapad.io/api/user_edit.php
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Integer |
unique id of the person |
| login |
String |
e-mail address - Even if change is possible in theory with api, login can't be changed and should be disabled. |
| password |
String |
user password |
| fname |
String |
First name (in format last name first name, e.g. PITT BRAD) |
| gender |
String |
Gender in format M/F |
| bdate |
String |
Birth date in format YYYY-MM-DD |
| btime |
String |
Local birth time in format hh:mm:ss |
| bcity |
String |
City of birth. |
| bcountry |
String |
Country of birth. |
| timezone |
String |
Timezone in standard format (e.g. Europe/Brussels) |
| bdatetime_tmz |
String |
Date and time together with the timezone offset. Standard format has to be respected YYYY-MM-DD hh:mm:ss [+-]hh:mm. Example 1984-05-21 14:35:00 +02:00 |
| lat |
Number |
Latitude of birthplace. |
| lng |
Number |
Longitude of birthplace. |
RESPONSE
| Field |
Type |
Description |
| message |
String |
Output of operation (e.g. user does not exists in database) |
| status |
String |
Status about insert (e.g. ok/error) |
| id_person |
Number |
ID of the person edited. |
USER INFO (active)
Return all the relevant information about the user based on user id.
https://app.zebrapad.io/api/user_info.php
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Integer |
|
RESPONSE
| Field |
Type |
Description |
| id_person |
Integer |
|
| login |
String |
e-mail address |
| fname |
String |
Name (in format last name first name, e.g. PITT BRAD) |
| gender |
String |
Gender in format M/F |
| bdate |
String |
Birth date in format YYYY-MM-DD |
| btime |
String |
Local birth time in format hh:mm:ss |
| bcity |
String |
City of birth. |
| bcountry |
String |
Country of birth. |
| timezone |
String |
Timezone in standard format (e.g. Europe/Brussels) |
| bdatetime_tmz |
String |
Date and time together in UTC timezone |
| death |
String |
Date of death. |
| timelineinit |
Boolean |
True is current time and last updated time for the user is more than 120 seconds, otherwise False |
GROUP USER INFO (active)
Return information about every group and their members associated with the specific ID of the user.
https://app.zebrapad.io/api/user_group_info.php
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Integer |
|
RESPONSE
| Field |
Type |
Description |
| id_person |
Integer |
Id of the person |
| id_group |
Integer |
Id of the group |
| id_group_type |
Integer |
ID of the type of the group. (e.g. 1 - LOVE, 2 - FRIENDS, 3 - COLLEAGUES, 4 - FAMILY, etc.) |
| id_person_2 |
Integer |
List of all ids the people in the group separated by comma. |
GROUP CREATE (active)
Creates the group based on inputs given. Used ONLY when creating a new group.
https://app.zebrapad.io/api/user_group_create.php
QUERY PARAMETERS
| Field |
Type |
Description |
| id_group_type |
Integer |
ID of the type of the group. (e.g. 1 - LOVE, 2 - FRIENDS, 3 - COLLEAGUES, 4 - FAMILY, etc.) |
| id_person_1 |
Integer |
Id of the person 1 who is always the main person (current user adding another person). |
| id_person_2 |
Integer |
Id of the person 2 who is being added by the person 1 |
RESPONSE
| Field |
Type |
Description |
| id_group |
Integer |
Id of the group created. Used later then we add people into the existing group. |
| status |
Varchar |
|
| message |
Varchar |
|
GROUP DELETE (active)
Deletes the entire group from database
https://app.zebrapad.io/api/user_group_delete.php
QUERY PARAMETERS
| Field |
Type |
Description |
| id_group |
Integer |
ID of the type of the group |
RESPONSE
| Field |
Type |
Description |
| id_group |
Integer |
Id of the group deleted |
| status |
Varchar |
|
| message |
Varchar |
|
GROUP USER ADD (active)
Adds the person into the existing group
https://app.zebrapad.io/api/user_group_add.php
QUERY PARAMETERS
| Field |
Type |
Description |
| id_group |
Integer |
ID of the group into which user will be added |
| id_person_1 |
Integer |
Id of the person 1 who is always the main person (current user adding another person). |
| id_person_2 |
Integer |
Id of the person 2 who is being added by the person 1 |
RESPONSE
| Field |
Type |
Description |
| id_group |
Integer |
Id of the group into which user has been inserted. Used later then we add people into the existing group. |
| id_group_typoe |
Integer |
Id type of the group. |
| status |
Varchar |
|
| message |
Varchar |
|
GROUP USER REMOVE (active)
Removes the user from existing group
https://app.zebrapad.io/api/user_group_remove.php
QUERY PARAMETERS
| Field |
Type |
Description |
| id_group |
Integer |
ID of the group into which user will be added |
| id_person_1 |
Integer |
Id of the person 1 who is always the main person (current user adding another person). |
| id_person_2 |
Integer |
Id of the person 2 who is being added by the person 1 |
RESPONSE
| Field |
Type |
Description |
| id_group |
Integer |
Id of the group from which user has been deleted. |
|
| status |
Varchar |
|
| message |
Varchar |
|
USER EVENT ADD
Adding the event into db
https://app.zebrapad.io/api/user_event_add.php
QUERY PARAMETERS
| Field |
Type |
Description |
| id_user |
Integer |
ID of the user who added the event in the DB (logged in user). References to the same table as id_person |
| id_person |
Integer |
ID of the person for which event is added |
| event_date |
Date |
Date of the event |
| category |
Varchar |
|
| subcategory |
Varchar |
|
| detail |
Varchar |
|
| rating |
Varchar |
|
RESPONSE
| Field |
Type |
Description |
| status |
Varchar |
|
| message |
Varchar |
|
USER EVENT DELETE
Delete the event from db
https://app.zebrapad.io/api/user_event_delete.php
QUERY PARAMETERS
| Field |
Type |
Description |
| id_event |
Integer |
ID of the event to be deleted |
RESPONSE
| Field |
Type |
Description |
| status |
Varchar |
|
| message |
Varchar |
|
Today
Put the info of today's mood
To be get more information about the "welcome dashboard", you have to make the POST call to the following URL (just after the user's registration, or after an added profile to his/her circle ):
https://app.zebrapad.io/api/get_me_cycleToday
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Number |
ID parameter of the user. Only applies if user is already registered. |
RESPONSE
| id_person |
Number |
ID of the user |
| report_name |
string |
filter on "today" to show the domain to focus on |
| domain |
string |
the domain of focus |
| desc |
string |
the additional advice related to the domain |
| mood |
integer |
Mood number : 4 (the happiest), 3 (ok), 2 (neutral), 1 (the saddest) |
Today (zebra)
Put the info of today's zebra zone
To be get more information about the "welcome dashboard (zebra)", you have to make the POST call to the following URL (just after the user's registration, or after an added profile to his/her circle ):
https://app.zebrapad.io/api/get_me_cycleToday
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Number |
ID parameter of the user. Only applies if user is already registered. |
RESPONSE
| id_person |
Number |
ID of the user |
| report_name |
string |
filter on "today-zebra" to show the domain to focus on |
| color |
string |
the color of the rectangle |
| type |
string |
the domain of focus : love, work, be careful |
| mood |
string |
Mood number : 4 (the happiest), 3 (ok), 2 (neutral), 1 (the saddest) |
| desc |
date |
text to put in the rectangle |
Build astro charts
Put planets and cusps on a chart
for Placidus and whole sign house
The degree starts at Aries at 0°. Each sign is 30°
- ar 0 29,999
- ta 30 59,999
- ge 60 89,999
- cn 90 119,999
- le 120 149,999
- vi 150 179,999
- li 180 209,999
- sc 210 239,999
- sa 240 269,999
- cp 270 299,999
- aq 300 329,999
- pi 330 359,999
To be get more information about "Astro charts", you have to make the POST call to the following URL (just after the user's registration, or after an added profile to his/her circle ):
https://app.zebrapad.io/api/get_astro
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Number |
ID parameter of the person we want to see the chart for. |
| id_user |
Number |
ID parameter of the user. Only applies if user is already registered. |
RESPONSE
| id_person |
Number |
ID of the user |
| type |
string |
The type is either
Planet
Cusp
|
| system |
string |
The current available system are
placidus
whole sign house
|
| distance |
integer |
placement on the wheel |
Who am I? (active)
The "Who am I" api call generates the user's profile divided into various sections :
"Personality" profiling (energy, temper, traits, love partner search, etc.)
To be get more information about "Who am I", you have to make the POST call to the following URL (just after the user's registration, or after an added profile to his/her circle ):
https://app.zebrapad.io/api/get_meFirstTime
To be get more information about "Who am I", you have to make the POST call to the following URL (once user logs in):
https://app.zebrapad.io/api/get_me
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Number |
ID parameter of the user. Only applies if user is already registered. |
RESPONSE
| id_person |
Number |
ID of the user |
| category |
string |
the category has to be filtered for each different visualisation. The list of visualisations to date:
"My facets" --> "Perso"
"My ideal" --> "Love"
"My polarity" --> "Gender"
"My quality" --> "Ternaire"
"My Elements" --> "Elements"
"My involvement" --> "Quadrant"
"Introversion/Extraversion"-->"SecteurDay"
"Meneur/Suiveur"-->Secteur"
"My aptitudes"-->"Metier"
|
| traits |
String |
description of a facet |
| color |
string |
color of the Bubble parent |
| type |
String |
the type defines if this facet is shown as the bubble parent (type = "QQ") or as the bubble child (type = "Q" or type = "D"). For the bubble children, type 'Q' is colored in white, type "D" is colored in dark. |
| points_perc |
integer |
this is the percentage assigned to the bubble. It is used for the bubble parent size |
| ranking |
integer |
this is not a mandatory field. This a the relative ranking of the facets through the category. |
| id_person_2 |
Integer |
List of all ids the people in the group separated by comma. |
My circle profile (active) (not recommmended)
The "Circle Profile" api call generates (in background) the user's circle profiles.
It is recommended to get the id_person of each additionnal profile in a circle and run https://app.zebrapad.io/api/get_meFirstTime to calculate the circle profile.
It actually runs the api "https://app.zebrapad.io/api/get_myCircleFirstTime" for all the id_person of the user's circle
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Number |
ID parameter of the user. Only applies if user is already registered. |
RESPONSE
| Field |
Type |
Description |
| id_person |
integer |
id_person
|
| status |
string |
the status shows for which id_person a profiling has been created.
|
Insight (active)
The "Insight" api call generates the user's circle profiles comparison divided into various sections :
"Ressemblance" (compare facets from me versus my circles)
"Attraction" (compare my ideal partner versus my circles)
"Adaptation" (rank the persons within a circle with an adaptation scoring for member of teh circle)
"Popularity" (rank the persons within a circle with an popularity scoring for each member of the circle)
To be get more information about "Insight", you have to make the POST call to the following URL:
https://app.zebrapad.io/api/get_me_circle
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Number |
ID parameter of the user. Only applies if user is already registered. |
RESPONSE
| id_person |
Number |
ID of the user |
| report_name |
string |
the report_name column has to be filtered for each different visualisation. The list of visualisations to date:
"me_friends" --> comparison matrix of the facets (mine versus the facets of my circle) :
use filter : compare = "samesame" or "attactedTo" to show the visualisation for "Ressemblance" or "Attraction"
use filter type = "QQ" to only show the main facets
for "Ressemblance", in the first column the user facets (type = "QQ") are all showned (5 facets) dominantes = "Perso", the other column are the facets of my circle, dominantes = "Perso". We only show the facets of the circle if he/she has the same facets type = "QQ" as the user
for "Attraction", in the first column the user facets (type = "QQ") are all showned (5 facets) dominantes = "Recherchées", the other column are the facets of my circle, dominantes = "Perso". We only show the facets of the circle if he/she has the same facets type = "QQ" as the user search
columns used : report_name, id_person, name, traits, color, points_perc, type
"match_friends" --> comparison matrix of the facets :
the ordering from the most "alike" or the "most attracted to" is found in the report_name = "match_friends"
use filter : compare = "samesame" or "attactedTo" to show the visualisation for "Ressemblance" or "Attraction"
use column "ranking" or "distance" to order the circle
columns used : id_person, name, compare, same_id_person, match (name of the same_id_person), ranking, distance
"ap" --> within a specific circle, we show a ranking of the most adaptative / popular person
use filter : compare = "samesame" or "attactedTo" to show the visualisation for "Adaptation" or "Popularity"
columns used : report_name, id_person, name, compare, same_id_person, match (name of the same_id_person), ranking (the highest = the most adaptative or th emost popular)
"star_distance" --> for the fun section
"barbault" --> (next release)
"gift" --> for the viz 1to1 (next release)
"1to1"-->for the viz 1to1 (next release)
"1to1_ententeIntel"--> for the viz 1to1 (next release)
|
| traits |
String |
description of a facet |
| color |
string |
color of the Bubble parent |
| type |
String |
the type defines if this facet is shown as the bubble parent (type = "QQ") or as the bubble child (type = "Q" or type = "D"). For the bubble children, type 'Q' is colored in white, type "D" is colored in dark. |
| points_perc |
integer |
this is the percentage assigned to the bubble. It is used for the bubble parent size |
| ranking |
integer |
this is not a mandatory field. This a the relative ranking of the facets through the category. |
| id_person_2 |
Integer |
List of all ids the people in the group separated by comma. |
Timeline Zebrazone(active)
The "Timeline zebrazone" api call generates the user's timeline for 7 weeks
To be get more information about the "Timeline, you have to make the POST call to the following URL (when the user registers):
https://app.zebrapad.io/api/get_me_timelineFirstTime
To be get more information about the "Timeline, you have to make the POST call to the following URL (once the user logs in):
https://app.zebrapad.io/api/get_me_timelineZebra
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Number |
ID parameter of the user. Only applies if user is already registered. |
RESPONSE
| id_person |
Number |
ID of the user |
| category |
string |
the category is a concatenation of the domain (Love/Be Careful/Work) and the granularity detail (here only available : day)
filter on category containing "day" to create the visualisation detailed in week period
|
| x |
string |
the value on the abscissa (representing the week number) |
| y |
integer |
the value on the ordinate (representing the level of energy for a certain domain) |
| today |
date |
date of Today yyyyMMdd |
| x_first |
date |
1st day of the x; format: yyyyMMdd (if in section day) |
| x_last |
date |
last day of the x; format: yyyyMMdd (if in section day) |
| zebrazone |
string |
give the dates of the current (if in dark zone) or the next closest dark zone for each category (Love, Work, Be Careful) |
Timeline (active)
The "Timeline" api call generates the user's timeline for x years, and within each year, the 52 weeks granularity
To be get more information about the "Timeline, you have to make the POST call to the following URL (when the user registers):
https://app.zebrapad.io/api/get_me_timelineFirstTime
To be get more information about the "Timeline, you have to make the POST call to the following URL (once the user logs in):
https://app.zebrapad.io/api/get_me_timeline
QUERY PARAMETERS
| Field |
Type |
Description |
| id_person |
Number |
ID parameter of the user. Only applies if user is already registered. |
RESPONSE
| id_person |
Number |
ID of the user |
| category |
string |
the category is a concatenation of the domain (Love/Be Careful/Work) and the granularity detail (year/day)
filter on category containing "year" to create the lifetime visualisation
filter on category containing "day" to create the visualisation detailed in week period
|
| x |
string |
the value on the abscissa (representing the year or the week) |
| y |
integer |
the value on the ordinate (representing the level of energy for a certain domain) |
| y_t-1 |
integer |
the value on the ordinate (representing the level of energy for a certain domain) for the week before or the year before depending of the category filtered |
| y_t+1 |
integer |
the value on the ordinate (representing the level of energy for a certain domain) for the week after or the year after depending of the category filtered |
| diff |
integer |
% of evolution compared to the period t-1 |
| today |
date |
date of Today yyyyMMdd |
| x_first |
date |
1st day of the x; format: yyyyMMdd (if in section day) |
| x_last |
date |
last day of the x; format: yyyyMMdd (if in section day) |
| weelyearnr |
date |
date of Today yyyyMMdd |
| signalyear |
string |
available for "week" viz as a reminder of the year position. It indicates the 4 possible positions for a year: same, peak, down, new cycle. |
| signalweek |
string |
available for "week" viz as a reminder of the week position. It indicates the 4 possible positions for a week: same, peak, down, new cycle. |
| desc |
string |
show the content of the bubble to give more details about that period |
US (inactive and to be checked by Marie-Ange)
The US api call generates a report showing the 3 top similar celebrity profiles and the top 3 celebrity profiles that attracts the user most, for each of the following categories :
Politics, Sports, Music, Entertainment .
The traits are shown in a matrix of comparison.
To be get more information about US, you have to make the POST call to the following URL:
https://mybubblelab.com/api/us
QUERY PARAMETERS
| Field |
Type |
Description |
| id |
Number |
ID parameter of the user. Only applies if user is already registered. |
| bdate |
String |
Birth date in format YYYY-MM-DD |
| btime |
String |
Birth time in format hh:mm. For the moment, local time is being converted to UTC inside API. |
| gender |
String |
Gender in format M/F/X |
| city |
String |
City of birth. |
| country |
String |
Country of birth. |
| lat |
Number |
Latitude of birthplace |
| lon |
Number |
Longitude of birthplace |
FRIENDS (inactive and to be checked by Marie-Ange)
The FRIENDS api call generates a report showing the 3 top similar profiles and the top 3 profiles that attracts the user most, for each of the different groups created by the user :
friends, colleagues, family, best friends, etc.
The traits are shown in a matrix of comparison.
To be get more information about US, you have to make the POST call to the following URL:
https://mybubblelab.com/api/friends
QUERY PARAMETERS
| Field |
Type |
Description |
| id |
Number |
ID parameter of the user. Only applies if user is already registered. |
| bdate |
String |
Birth date in format YYYY-MM-DD |
| btime |
String |
Birth time in format hh:mm. For the moment, local time is being converted to UTC inside API. |
| gender |
String |
Gender in format M/F/X |
| bplace |
String |
Place of birth, preferably in format City, Country |
| lat |
Number |
Latitude of birthplace |
| long |
Number |
Longitude of birthplace |
CALENDAR (inactive and to be checked by Marie-Ange)
The CALENDAR api call generates a score for each calendar day, either positive or negative (Ups and Downs).
The user can check the results per month to see whether the total score is positive or negative.
To be get more information about CALENDAR, you have to make the POST call to the following URL:
https://mybubblelab.com/api/calendar
QUERY PARAMETERS
| Field |
Type |
Description |
| id |
Number |
ID parameter of the user. Only applies if user is already registered. |
| bdate |
String |
Birth date in format YYYY-MM-DD |
| btime |
String |
Birth time in format hh:mm. For the moment, local time is being converted to UTC inside API. |
| gender |
String |
Gender in format M/F/X |
| bplace |
String |
Place of birth, preferably in format City, Country |
| lat |
Number |
Latitude of birthplace |
| long |
Number |
Longitude of birthplace |