API développeur Vivoldi
Avec l’API REST de Vivoldi, vous pouvez implémenter des fonctionnalités automatisées et personnalisées dans n’importe quel environnement — site web, application mobile ou système interne.
Elle est conçue pour permettre de contrôler les fonctions clés de manière programmatique depuis votre serveur ou votre application, sans avoir à accéder directement au tableau de bord.
L’API peut être utilisée librement avec divers langages et plateformes tels que JavaScript, Python, PHP, Java, Android et iOS.
Chaque fonctionnalité est proposée de façon concise et intuitive afin d’optimiser l’efficacité du développement.
Pour utiliser l’API, une clé API d’authentification est requise. Veillez à la stocker en toute sécurité et à ne jamais la divulguer publiquement.
✨ Remarques :
- La clé API peut être modifiée au maximum une fois par mois.
- Les utilisateurs du forfait gratuit peuvent également accéder librement à l’API.
- La fréquence des requêtes et la vitesse de réponse peuvent varier selon l’offre souscrite.
- En cas d’erreur HTTP 403, veuillez définir une valeur unique pour l’en-tête User-Agent dans votre requête.
Vivoldi bloque certains User-Agent couramment utilisés par des robots ou crawlers malveillants.
Il est recommandé d’indiquer clairement le nom de votre entreprise ou marque en anglais dans le champ User-Agent. - Les appels API peuvent échouer ponctuellement en raison d’un redémarrage serveur ou de travaux de maintenance.
Cela peut se produire lors de mises à jour de fonctionnalités, de correctifs de sécurité ou d’interventions sur l’infrastructure.
Veuillez inclure une logique de nouvelle tentative automatique dans toutes vos requêtes API.
Comment appeler l’API
Host: https://vivoldi.com/api/{uri}
Authorization: APIKey {Your API Key}
Content-type: application/json
User-agent: {Your User-agent}
Accept-Language: en
{
"code": 0,
"message": "",
"result": Object
}
Domaines | Description | Type |
---|---|---|
code | Code de réponse. Une valeur de 0 indique un succès, toute autre valeur indique un échec.Ce code est indépendant du statut HTTP et n’est retourné que si le statut HTTP se situe dans la plage 2xx ou 3xx. | int |
message | Présent uniquement lorsque code est différent de 0. Fournit un message d’erreur expliquant la cause de l’échec.Ce champ peut être vide ou absent en cas de réussite. | string |
result | Les données renvoyées par l’API. Selon le type d’API, le format peut être une chaîne de caractères ou un objet JSON . | object |
Examples:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" crossorigin="anonymous"></script>
</head>
<body>
<form id="exampleForm">
<button id="btnCreateLink" type="button">Create Link</button>
</form>
<script type="text/javascript">
$(function(){
$("#btnCreateLink").on('click', function(evt){
evt.preventDefault();
$.ajax({
type: 'POST',
url: 'https://vivoldi.com/api/link/v2/create',
data: JSON.stringify({'url':'https://google.com','domain':'https://vvd.bz'}),
headers: {'Authorization':'APIKey oc3w9m4ytso9mv5e8yse9XXXXXXXXXX'},
contentType: 'application/json; charset=utf-8',
dataType: 'json',
timeout: 5000
}).done(function(res){
if (res.code === 0) {
alert('short url: ' + res.result);
} else {
alert('code: ' + res.code + ', message: ' + res.message);
}
}).fail(function(xhr, textStatus, e){
alert('error: ' + e);
});
});
});
</script>
</body>
</html>
<?php
$url = "https://vivoldi.com/api/link/v2/create";
$params = array (
"url" => "https://www.facebook.com/vivoldi365",
"domain" => "https://vvd.bz",
);
$body = json_encode($params);
$headers = array(
"Authorization: APIKey oc3w9m4ytso9mv5e8yse9XXXXXXXXXX",
"Content-Type: application/json"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10000);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$result = curl_exec($ch);
if ($result === FALSE) {
echo "Error sending: " . curl_error($ch);
} else {
print_r($result);
}
curl_close($ch);
?>
package com.example;
import org.json.JSONObject;
import org.springframework.http.HttpStatus;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class CreateLink {
public static void main(String[] args) {
try (HttpClient client = HttpClient.newBuilder().build()) {
JSONObject params = new JSONObject();
params.put("url", "https://www.facebook.com/vivoldi365");
params.put("domain", "https://vvd.bz");
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://vivoldi.com/api/link/v2/create"))
.header("Content-Type", "application/json")
.header("Authorization", "APIKey oc3w9m4ytso9mv5e8yse9XXXXXXXXXX")
.POST(HttpRequest.BodyPublishers.ofString(params.toString()))
.build();
HttpResponse<String> response;
try {
response = client.send(request, HttpResponse.BodyHandlers.ofString());
} catch (Exception e) {
throw new RuntimeException(e);
}
if (response != null) {
if (response.statusCode() == HttpStatus.OK.value()) {
String jsonString = response.body();
if (jsonString != null && !jsonString.isEmpty()) {
JSONObject json = new JSONObject(jsonString);
if (json.getInt("code") == 0) {
System.out.println("Short URL: " + json.getString("result"));
} else {
System.out.println("Failed: " + String.format("[%d] %s", json.getInt("code"), json.getString("message")));
}
}
}
}
}
}
}