L'API iQuesta permet de publier et de consulter les annonces publiées sur iquesta.com. Elle est basée sur une architecture REST. Cette architecture utilise différentes méthodes du protocole HTTP pour interagir avec les différentes ressources.

  • POST : permet de créer une nouvelle ressource ;
  • GET : permet de récupérer des informations d'une ressource ;
  • PUT : permet de mettre à jour une ressource ;
  • DELETE : permet de supprimer une ressource.

Structure d'une requête

L'URL de la requête est décomposée en segments. Les segments sont séparés par des barres obliques « / ».

<Racine de l'URL>/<ID>/<Texte haché>/<Autres segments>.<format>
  • Racine de l'URL : https://api.iquesta.com ;
  • Couple identifiant / texte haché. Ce couple est divisé en deux segments distincts ;
  • Nom de la ressource ;
  • Autres segments ;
  • Format de retour : Cette partie de l'URL est optionnelle ;

Authentification

L'authentification se fait avec deux éléments : l'identifiant de l'utilisateur et une chaîne hachée qui sert de clé.

Identifiant

L'identifiant est fourni par iQuesta. Il permet à l'API de savoir qui l'interroge, si un mauvais identifiant est fourni dans l'URL, un code de réponse 401 sera renvoyé.

Accès : Pour obtenir un accès à l'API iQuesta, veuillez nous contacter.

Remarque : Par défaut, les nouveaux comptes sont en mode « test ». Ceci veut dire que les requêtes POST et DELETE n'auront aucun effet sur les données. Ce mode permet de tester l'API sans risque de corruption de vos données.

Chaîne hachée

iQuesta fournit une clé de hachage unique. Cette clé doit rester secrète. À chaque requête à l'API, une partie de l'URL doit être hachée avec cette clé, le résultat de ce hachage est placé dans le segment qui suit l'identifiant.

La chaîne à hacher est l'URL à partir du nom de la ressource. Voici ce que cela donne sur quelques exemples : :

  • https://api.iquesta.com/<ID>/<KEY>/offer/123456.json
  • https://api.iquesta.com/<ID>/<KEY>/offer/123456.xml/
  • https://api.iquesta.com/<ID>/<KEY>/offer/123456

Remarque : il faut aussi hacher la barre oblique juste avant le nom de la ressource

Les exemples suivants sont incorrects : :

  • https://api.iquesta.com/<ID>/<KEY>//offer/123456.json
  • https://api.iquesta.com/<ID>/<KEY>/offer//123456

L'algorithme utilisé est le SHA-256 avec la clé de hachage secrète. Si vous utilisez PHP pour appeler l'API, vous pouvez utiliser la fonction hash_hmac

Format de retour

Il est possible de choisir le format de la réponse à une requête. Il suffit d'ajouter le nom du format précédé d'un point « . », à la manière d'une extension de fichier.

Actuellement, les formats supportés par l'API sont l'XML (.xml) et le JSON (.json). Le format par défaut est le JSON.

Offer

Lecture

DESCRIPTION
Permet de récupérer des informations sur une ou plusieurs offres, selon les paramètres fournis.
URL STRUCTURE
https://api.iquesta.com/<ID>/<KEY>/offer/<OFFER_ID>
https://api.iquesta.com/<ID>/<KEY>/offer/reference/<REFERENCE>
METHOD
GET
RETURNS
Un objet JSON
{
  "responseStatus": 200,
  "message": "OK",
  "content": {
    "address": "2 rue du Docteur Leroy",
    "applicationURL": "http://www.iquesta.com/application/offer/251058",
    "city": "Le Mans",
    "companyId": "3443",
    "companyName": "iQuesta.com",
    "compensation": "à définir",
    "contact": "Julien Menut",
    "contactPhone": null,
    "contract": {
      "name": "Stage",
      "id": "1"
    },
    "country": {
      "name": "Géorgie",
      "id": "95"
    },
    "dateBeginMax": "2017/03/01",
    "dateBeginMin": "2017/03/27",
    "departmentId": null,
    "description": "Existant depuis 1999 et N°1 à très forte croissance de la vente sur internet de  ...",
    "durationMax": "4",
    "durationMin": "4",
    "expirationDate": "2017-05-13",
    "foreignCity": "test",
    "id": "251058",
    "isExternalApplication": "0",
    "isPremium": "0",
    "level": {
      "name": "BAC+1",
      "id": "1"
    },
    "place": null,
    "reference": "251058",
    "region": {
      "name": null,
      "id": null
    },
    "status": 1,
    "subject": {
      "name": "Achat",
      "id": "1"
    },
    "submissionDate": "2017-03-13 00:00:00",
    "title": "sdsqd",
    "validationDate": null,
    "zipCode": "72000"
  }
}
NOTES
Attention : la référence d'une offre doit être encodée via la fonction PHP urlencode.

Création

DESCRIPTION
Ajoute une offre.
URL STRUCTURE
https://api.iquesta.com/<ID>/<KEY>/offer
METHOD
POST
PARAMETERS
Field Required Type Description
applicationEmail yes string Email de candidature.
applicationURL no string Lien de la page de candidature si la candidature se fait sur un site extérieur.
companyId yes | no int ID de l'entreprise qui propose l'offre. Cet identifiant est fourni par iQuesta. Si celui-ci n'est pas renseigné alors le champ contactEmail devient obligatoire.
contractId yes int ID du type de contrat de l'offre.
countryId yes int ID du pays de l'offre.
dateBeginMax yes date (yyyy-mm-dd) Date de début au plus tard de l'offre. Elle doit être au format yyyy-mm-dd.
dateBeginMin yes date (yyyy-mm-dd) Date de début de l'offre. Elle doit être au format yyyy-mm-dd .
description yes string Description de l'offre
regionId yes int ID de la région de l'offre. Si le pays défini par countryId est différent de 1 (France), alors ce champ doit être égal à 0.
subjectId yes int ID de la matière de l'offre.
address no string Adresse du lieu de travail.
city no string Ville du lieu de travail.
companyName yes | no string Nom de la société, celui-ci est obligatoire si companyId n'est pas renseigné
compensation no string Indemnité de l'offre.
contact no string Prénom et nom du contact.
contactPhone no string Téléphone du contact.
contactEmail yes | no string Email du contact client, celui-ci est obligatoire si companyId n'est pas renseigné.
reference yes string Référence de l'offre.
title yes string Intitulé de l'offre.
durationMin yes | no int Durée minimale de l'offre. Si l'offre est un CDI, ce champ doit être égal à 0.
durationMax no int Durée maximale de l'offre.
durationType no int Seulement pour les missions ponctuelles. Format de durée pour cette annonce. Valeurs possibles : 1 => Heures ; 2 => Jours ; 3 => Semaines ; 4 => Mois
isPremium no int Mettre à 1 si l'annonce a été achetée sur le site du multidiffuseur
studyLevels no array Niveaux d'études du candidat recherché.
zipCode no string Code postal du lieu de travail.
RETURNS
Un objet JSON
{
    "responseStatus": 200,
    "message": "OK",
    "content": {
        "offerId": "254431",
        "companyId": "73452"
    }
}

Suppression

DESCRIPTION
Permet d'expirer une annonce. Vous pouvez expirer uniquement les offres que vous avez déposées.
URL STRUCTURE
https://api.iquesta.com/<ID>/<KEY>/offer/<OFFER_ID>
https://api.iquesta.com/<ID>/<KEY>/offer/reference/<REFERENCE>
METHOD
DELETE
RETURN
Un objet JSON
{
  "responseStatus": 200,
  "message": "OK",
  "content": "Offer 254435 has been deleted"
}
NOTES
Attention : la référence d'une offre doit être encodée via la fonction PHP urlencode.
DESCRIPTION
Permet d'effectuer une recherche d'annonce.
URL STRUCTURE
https://api.iquesta.com/<ID>/<KEY>/offer/search/?param1=value1&param2=value2&...
METHOD
GET
PARAMETERS
Field Type Description
contract int ID des contrats recherchés.
subject int ID des disciplines recherchées.
begin int ID des mois de début recherchés.
duration int Durée minimum recherchée.
region int ID des régions recherchées.
itemsPerPage int Nombre d'offre par page.
page int Numéro de la page.
RETURN
Un objet JSON
{
    "responseStatus": 200,
    "count": "6",
    "rows": [
        {
            id: 163720
            address: "2 rue du Docteur Leroy"
            applicationEmail: "application@iquesta.com"
            applicationUrl: http://www.iquesta.fr
            charterType: "0"
            chosenSchoolList: null
            city: "Le Mans"
            companyDescription: "Nos atouts sont la richesse et la qualité de notre offre, la qualité de notre contenu éditorial interactif, ..."
            companyId: "31739"
            companyGroupId: "31958"
            companyName: "iQuesta"
            compensation: "à définir"
            contact: "Xavier Barbez"
            contactPhone: "01 42 64 01 42"
            departmentId: null
            offerDescription: "Existant depuis 1999 et N°1 à très forte croissance de la vente sur internet de  ..."
            dateBeginMax: "2014-07-01 00:00:00"
            dateBeginMin: "2014-07-15 00:00:00"
            durationMin: "1"
            durationMax: "1"
            expirationDate: "2014-12-22 00:00:00"
            foreignCity: ""
            handiClickCount: "0"
            hasLogo: true
            hidesPhone: true
            iqClickCount: "10009"
            isCopy: "0"
            isExternalApplication: "1"
            isSentToSchools: "1"
            studyLevels: "100"
            maxBeginMonth: "10"
            minBeginMonth: "11"
            parentOfferId: "0"
            partnerId: "1"
            place: ""
            ponctuelle: ""
            reference: "IQ_Animaute"
            siteType: "1"
            source: "0"
            status: 1
            submissionDate: "2014-06-20 10:06:24"
            subscriptionId: 0
            title: "Assistant Chef de Produit E-commerce H/F"
            validationDate: "2014-06-20 10:25:04"
            zipCode: "72000"
            maxBeginDate: "2014-07-01 00:00:00"
            minBeginDate: "2014-07-15 00:00:00"
            contract: {
                id: 1
                categoryId: "1"
                name: "Stage"
            }
            country: {
                id: 1
                name: "France"
            }
            discipline: {
                id: 1
                name: "Achat"
            }
            region: {
                id: 13
                name: "Ile de France"
            }
            subject: {
                id: 1
                name: "Achat"
                disciplineId: "1"
            }
        },
        {
            id: 163721
            address: "2 rue du Docteur Leroy"
            applicationEmail: "application@iquesta.com"
            applicationUrl: http://www.iquesta.fr
            charterType: "0"
            chosenSchoolList: null
            city: "Le Mans"
            companyDescription: "Nos atouts sont la richesse et la qualité de notre offre, la qualité de notre contenu éditorial interactif, ..."
            companyId: "31739"
            companyGroupId: "31958"
            companyName: "iQuesta"
            compensation: "à définir"
            contact: "Xavier Barbez"
            contactPhone: "01 42 64 01 42"
            departmentId: null
            offerDescription: "Existant depuis 1999 et N°1 à très forte croissance de la vente sur internet de  ..."
            dateBeginMax: "2014-07-01 00:00:00"
            dateBeginMin: "2014-07-15 00:00:00"
            durationMin: "1"
            durationMax: "1"
            expirationDate: "2014-12-22 00:00:00"
            foreignCity: ""
            handiClickCount: "0"
            hasLogo: true
            hidesPhone: true
            iqClickCount: "10009"
            isCopy: "0"
            isExternalApplication: "1"
            isSentToSchools: "1"
            studyLevels: "100"
            maxBeginMonth: "10"
            minBeginMonth: "11"
            parentOfferId: "0"
            partnerId: "1"
            place: ""
            ponctuelle: ""
            reference: "IQ_Animaute"
            siteType: "1"
            source: "0"
            status: 1
            submissionDate: "2014-06-20 10:06:24"
            subscriptionId: 0
            title: "Assistant Chef de Produit E-commerce H/F"
            validationDate: "2014-06-20 10:25:04"
            zipCode: "72000"
            maxBeginDate: "2014-07-01 00:00:00"
            minBeginDate: "2014-07-15 00:00:00"
            contract: {
                id: 1
                categoryId: "1"
                name: "Stage"
            }
            country: {
                id: 1
                name: "France"
            }
            discipline: {
                id: 1
                name: "Achat"
            }
            region: {
                id: 13
                name: "Ile de France"
            }
            subject: {
                id: 1
                name: "Achat"
                disciplineId: "1"
            }
        },
        ...
    ]
}
NOTES
Il est possible d'executer une requête multicritère sur le même paramètre, il suffit d'ajouter des [] avec chaque répétition du paramètre.
Le champ count indique le nombre total de résultats de la requête, indépendamment des paramètres "itemsPerPage" et "page"

Company

Stock

DESCRIPTION
Permet de récupérer le stock de crédit disponible pour un client
URL STRUCTURE
https://api.iquesta.com/<ID>/<KEY>/company/stock/<COMPANY_ID>
METHOD
GET
RETURNS
Un objet JSON
Exemple 1
{
    "responseStatus": 200,
    "message": "OK",
    "content": {
        "credit": "unlimited"
    }
}
Exemple 2
{
    "responseStatus": 200,
    "message": "OK",
    "content": {
        "credit": "10"
    }
}

Dictionnaire des données

Contract

ID Name
1 Stage
2 Contrat en alternance
3 VIE
4 CDD
6 CDI
8 Job à temps partiel
9 Job à temps plein
10 Mission ponctuelle

Country

ID Name
1 France
4 Allemagne
5 Autriche
2 Belgique
6 Chypre
7 Danemark
8 Espagne
9 Finlande
10 Grèce
11 Irlande
12 Italie
13 Lettonie
14 Lituanie
3 Luxembourg
15 Malte
16 Norvège
17 Pays-Bas
18 Pologne
19 Portugal
20 République Tchèque
21 Royaume-Uni
22 Slovaquie
23 Slovénie
24 Afghanistan
25 Afrique du Sud
26 Albanie
27 Algérie
28 Andorre
29 Angola
30 Anguilla
32 Antigua-et-Barbuda
33 Antilles néerlandaises
34 Arabie Saoudite
35 Argentine
36 Arménie
37 Aruba
38 Australie
39 Autorité Palestinienne
40 Azerbaïdjan
41 Bahamas
42 Bahreïn
43 Bangladesh
44 Barbade
45 Belize
46 Bénin
47 Bermudes
48 Bhoutan
49 Biélorussie
50 Bolivie
51 Bosnie-Herzégovine
52 Botswana
54 Brésil
55 Brunei
56 Bulgarie
57 Burkina Faso
58 Burundi
59 Caïmans (îles)
60 Cambodge
61 Cameroun
62 Canada
64 Chili
65 Chine
69 Colombie
70 Comores
71 Congo
72 Congo (RDC)
73 Cook (îles)
74 Corée
75 Corée du Nord
76 Costa Rica
77 Côte D'Ivoire
78 Croatie (Hrvatska)
79 Cuba
81 Djibouti
82 Dominique
83 Égypte
84 Émirats arabes unis
85 Équateur
86 Érythrée
87 Estonie
88 États-Unis
89 Éthiopie
91 Féroé (îles)
92 Fidji (îles)
93 Gabon
94 Gambie
95 Géorgie
97 Ghana
98 Gibraltar
99 Grenade
100 Groenland
101 Guadeloupe
102 Guam
103 Guatemala
104 Guernsey
105 Guinée
106 Guinée équatoriale
107 Guinée-Bissau
108 Guyane
109 Guyane française
110 Haïti
112 Honduras
113 Hongrie
115 Île de Man
116 Inde
117 Indonésie
118 Irak
119 Iran
120 Islande
121 Israël
122 Jamaïque
123 Japon
124 Jersey
125 Jordanie
126 Kazakhstan
127 Kenya
128 Kirghizistan
129 Kiribati
130 Koweït
131 La Réunion
132 Laos
133 Lesotho
134 Liban
135 Libéria
136 Libye
137 Liechtenstein
138 Madagascar
139 Malaisie
140 Malawi
141 Maldives
142 Mali
143 Malouines (îles)
145 Maroc
146 Marshall (îles)
147 Martinique
148 Maurice
149 Mauritanie
150 Mayotte
151 Mexique
152 Micronésie
153 Moldavie
154 Monaco
155 Mongolie
156 Montserrat
157 Mozambique
158 Myanmar
159 Namibie
160 Nauru
161 Népal
162 Nicaragua
163 Niger
164 Nigéria
165 Niue
167 Nouvelle-Calédonie
168 Nouvelle-Zélande
169 Oman
170 Ouganda
171 Ouzbékistan
172 Pakistan
173 Palau
174 Panama
175 Papouasie-Nouvelle-Guinée
176 Paraguay
177 Pérou
178 Philippines
180 Polynésie française
181 Porto Rico
182 Qatar
183 Hong Kong
184 Macao
185 République centrafricaine
186 République dominicaine
187 Roumanie
188 Russie
189 Rwanda
193 Saint-Marin
196 Salomon (îles)
197 Salvador
198 Samoa
201 Sénégal
202 Seychelles
203 Sierra Leone
204 Singapour
205 Somalie
206 Soudan
207 Sri Lanka
208 Suède
209 Suisse
210 Surinam
212 Swaziland
213 Syrie
214 Tadjikistan
215 Taïwan
216 Tanzanie
217 Tchad
219 Territoires britanniques de l'Océan Indien
220 Thaïlande
222 Togo
223 Tokelau
224 Tonga
227 Tunisie
228 Turkménistan
230 Turquie
231 Tuvalu
232 Ukraine
233 Uruguay
234 Vanuatu
235 Venezuela
238 Vietnam
240 Yémen
241 Serbie
242 Zambie
243 Zimbabwe

Level

ID Name
100 Indifférent
12 Sans qualification
10 CAP
11 BEP
0 BAC
1 BAC+1
2 BAC+2
3 BAC+3
4 BAC+4
5 BAC+5
6 BAC>5

Region

ID Name
3 Auvergne et Rhône-Alpes
5 Bourgogne-Franche-Comté
6 Bretagne
7 Centre - Val de Loire
8 Corse
9 DROM-COM
1 Grand Est
12 Hauts-de-France
10 Ile de France
4 Normandie
2 Nouvelle Aquitaine
11 Occitanie
13 Pays de la Loire
14 Provence-Alpes-Côte-d'Azur

Subject

ID Name
1 Achat
2 Logistique / Supply Chain
3 Commerce / Distribution / Vente
4 Télévente / Hotline
5 Commerce international
6 Marketing
7 Marketing Digital / e-Commerce
8 Communication / Evénementiel
9 Journalisme / RP / Edition / Traduction
10 Documentation / Veille
11 RH / Recrutement
13 Administration / Assistanat
16 Banque / Assurance
17 Audit / Comptabilité
18 Gestion / Finance
19 Ingénierie Financière
20 Statistiques
21 Gestion de projets & Organisation
22 Econométrie
23 Droit des Affaires / Fiscalité
24 Droit
25 Graphisme / Multimédia
26 Informatique - Conseil
27 Informatique - Développement
28 Informatique de Gestion
29 Système et Réseaux
30 Télécoms / Electronique
31 Agroalimentaire
32 Ecologie / Environnement
33 Qualité / Hygiène / Sécurité
34 Physique et Analyse
35 Chimie
72 Génie des Procédés
36 Géologie / Géochimie
37 Biologie
38 Santé / Pharma
39 Ingénierie
40 Gestion de Production
41 Mécanique
43 Technique / Maintenance
44 Aéronautique
47 Energétique
48 Sciences des Matériaux
50 Data / Mathématiques Appliquées
51 Immobilier
52 Génie Civil / BTP
53 Architecture / Urbanisme / Paysage
54 Social
79 Conseil / Stratégie / Management
56 Tourisme / Hôtellerie
57 Artisanat
58 Stylisme
71 Entretien / Sécurité
60 Accueil / Hôte(sse)
61 Animation / Tourisme
62 Autre
63 Chauffeur / Livreur / Coursier
64 Commerce / Vente
65 Cours à Domicile
66 Enquêteur
67 Manutention / Inventaire
68 Restauration / Hôtellerie
69 Télémarketing
70 Electricité / Electrotechnique
74 Transactions Immobilières
75 Syndic de Copropriété
76 Administration de Biens
78 Informatique Industrielle