비볼디 개발자 API

비볼디의 REST API를 사용하면 웹사이트, 모바일 앱, 내부 시스템 등 어떤 환경에서도 자동화된 맞춤 기능을 구현할 수 있습니다.
대시보드에 직접 접속하지 않고도, 서버나 애플리케이션 내에서 주요 기능을 프로그래밍 방식으로 제어할 수 있도록 설계되었습니다.

API는 JavaScript, Python, PHP, Java, Android, iOS 등 다양한 언어와 플랫폼에서 자유롭게 호출할 수 있으며,
필요한 기능은 간결하고 직관적인 방식으로 제공되어 개발 효율성을 높여줍니다.

API를 사용하려면 인증을 위한 API 키가 필요하며, 해당 키는 반드시 외부에 노출되지 않도록 안전하게 관리해 주세요.

✨ 참고사항:

  • API 키는 최대 한 달 주기로 변경할 수 있습니다.
  • 무료 요금제 사용자도 API를 자유롭게 이용할 수 있습니다.
  • 요청 빈도나 응답 속도는 요금제에 따라 차이가 있을 수 있습니다.

API 호출 방법

Request
Host: https://vivoldi.com/api/{uri}
Authorization: APIKey {Your API Key}
Content-type: application/json
User-agent: {Your User-agent}
Accept-Language: en
Authorization, Content-type을 Http Header에 추가한 후 API를 호출하면 됩니다.
응답 메시지가 영어로 표시되는 경우, header에 “Accept-Language: ko”로 설정하세요.
Response
{
	"code": 0,
	"message": "",
	"result": Object
}
필드설명유형
code응답 코드입니다. 값이 0이면 성공, 0이 아니면 실패를 의미합니다.
이 응답 코드는 HTTP Status와는 별개이며, HTTP Status가 2xx 또는 3xx 범위일 때만 응답 본문이 반환됩니다.
int
messagecode가 0이 아닌 경우에 포함되며, 실패 원인을 설명하는 오류 메시지가 담겨 있습니다.
성공 시에는 이 필드가 비어 있거나 생략될 수 있습니다.
string
resultAPI의 실제 응답 데이터이며, API 유형에 따라문자열(String) 또는 JSON Object 형식으로 반환됩니다.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")));
                        }
                    }
                }
            }
        }
    }
}
REST API 개선 또는 수정이 필요할 경우 비볼디에 문의주세요.