Documentazione dell'API
Documentazione dell'API
Integra potenti strumenti pubblicitari Valkiria nelle tue applicazioni
01Avvio rapido
Avvio rapido
Autenticazione
Ottieni la tua chiave API nelle impostazioni dell'account
Prima richiesta
Utilizza la chiave API nell'intestazione Autorizzazione
Limiti di velocità
1000 richieste al minuto sul piano base
02Riferimento API
Endpoint
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/campaigns | Ottieni l'elenco delle campagne |
| POST | /api/v1/campaigns | Crea nuova campagna |
| GET | /api/v1/campaigns/:id | Ottieni i dettagli della campagna |
| PATCH | /api/v1/campaigns/:id | Aggiorna campagna |
| GET | /api/v1/analytics/dashboard | Ottieni analisi |
| POST | /api/v1/analytics/report | Genera un rapporto di analisi |
| GET | /api/v1/rules/templates | Elenca i modelli di regole di automazione |
| POST | /mcp | Connetti gli assistenti AI tramite MCP |
03Esempio
GET /api/v1/campaigns
curl -X GET "https://sys.valkiria.pro/api/v1/campaigns" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"{
"campaigns": [
{
"id": "b3c8e1d0-7d3a-4f29-9a55-1b2c3d4e5f60",
"name": "Summer Campaign",
"platform": "google",
"status": "active",
"budget": 1000
}
],
"total": 1,
"limit": 20,
"offset": 0
}POST /api/v1/campaigns — Crea nuova campagna
// Local draft only: no advertising is published.
// Create one UUID per draft and save the complete request before sending.
// Retry this same saved UUID/body after a timeout; do not generate another.
const savedRequest = {
requestId: '54bda530-50ae-4bb4-bb8c-ae89fc26c029',
name: 'Ukraine product launch',
platform: 'telegram_ads',
objective: 'leads',
budget: 10000,
dailyBudget: 500,
currency: 'UAH',
targetAudience: {
countries: ['UA'],
languages: ['uk'],
interests: ['technology', 'business']
},
adContent: {
headline: 'Discover our product',
description: 'Explore the features for your business',
callToAction: 'Learn more'
}
};
// Run on your server. Keep the API key out of browser code.
const response = await fetch('https://sys.valkiria.pro/api/v1/campaigns', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer ' + process.env.VALKIRIA_API_KEY
},
body: JSON.stringify(savedRequest)
});
if (!response.ok) throw new Error('Creation not confirmed: HTTP ' + response.status);
const result = await response.json();
// Review the local draft; publication requires a separate approved workflow.
console.log(result.campaign.id, result.execution_scope);04Snippet di avvio dell'API
Snippet di avvio dell'API
Copia esempi di richieste pronti all'uso per la tua lingua preferita.
const apiKey = process.env.VALKIRIA_API_KEY;
const response = await fetch('https://sys.valkiria.pro/api/v1/campaigns', {
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
});
if (!response.ok) {
throw new Error(`Valkiria API error: ${response.status}`);
}
const data = await response.json();import os
import requests
api_key = os.environ["VALKIRIA_API_KEY"]
response = requests.get(
"https://sys.valkiria.pro/api/v1/campaigns",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
},
timeout=30,
)
response.raise_for_status()
data = response.json()<?php
$apiKey = getenv('VALKIRIA_API_KEY');
$curl = curl_init('https://sys.valkiria.pro/api/v1/campaigns');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
if ($response === false) {
throw new RuntimeException(curl_error($curl));
}
$data = json_decode($response, true, flags: JSON_THROW_ON_ERROR);package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://sys.valkiria.pro/api/v1/campaigns", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("VALKIRIA_API_KEY"))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 30 * time.Second}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var data map[string]any
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
panic(err)
}
fmt.Println(data)
}Hai bisogno di aiuto?
Non hai trovato una risposta? Contattaci