Stablev1.0
REST API
Direct HTTP access
No SDK required. Call SkyAIApp API directly via HTTP from any language.
Base Information
Base URL
https://api.skyaiapp.com/v1Content Type
application/jsonAuthentication
Bearer TokenAuthentication
All requests require an API Key in the Authorization header:
Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAPI Endpoints
POST
/v1/routeSmart routingcurl -X POST https://api.skyaiapp.com/v1/route \
-H "Authorization: Bearer sk_live_xxxx" \
-H "Content-Type: application/json" \
-d '{
"goal": "cost",
"strategy": "balanced",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello, world!"}
],
"max_tokens": 500,
"temperature": 0.7
}'GET
/v1/modelsAvailable modelscurl https://api.skyaiapp.com/v1/models \
-H "Authorization: Bearer sk_live_xxxx"POST
/v1/agents/runRun agentcurl -X POST https://api.skyaiapp.com/v1/agents/run \
-H "Authorization: Bearer sk_live_xxxx" \
-H "Content-Type: application/json" \
-d '{
"task": "Research the latest AI news and summarize",
"tools": ["web_search", "read_url"],
"max_steps": 10,
"timeout_seconds": 120
}'GET
/v1/analytics/usageUsage analyticscurl "https://api.skyaiapp.com/v1/analytics/usage?start_date=2024-12-01&end_date=2024-12-15" \
-H "Authorization: Bearer sk_live_xxxx"Language Examples
PHP
<?php
$ch = curl_init('https://api.skyaiapp.com/v1/route');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('SKYAIAPP_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'goal' => 'cost',
'strategy' => 'balanced',
'messages' => [
['role' => 'user', 'content' => 'Hello!']
],
]),
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
echo $data['choices'][0]['message']['content'];
?>Ruby
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://api.skyaiapp.com/v1/route')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = "Bearer #{ENV['SKYAIAPP_API_KEY']}"
request['Content-Type'] = 'application/json'
request.body = {
goal: 'cost',
strategy: 'balanced',
messages: [
{ role: 'user', content: 'Hello!' }
]
}.to_json
response = http.request(request)
data = JSON.parse(response.body)
puts data['choices'][0]['message']['content']Java
import java.net.http.*;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
String json = """
{
"goal": "cost",
"strategy": "balanced",
"messages": [
{"role": "user", "content": "Hello!"}
]
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.skyaiapp.com/v1/route"))
.header("Authorization", "Bearer " + System.getenv("SKYAIAPP_API_KEY"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());C#
using System.Net.Http.Json;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization",
$"Bearer {Environment.GetEnvironmentVariable("SKYAIAPP_API_KEY")}");
var response = await client.PostAsJsonAsync(
"https://api.skyaiapp.com/v1/route",
new {
goal = "cost",
strategy = "balanced",
messages = new[] {
new { role = "user", content = "Hello!" }
}
}
);
var result = await response.Content.ReadFromJsonAsync<dynamic>();
Console.WriteLine(result.choices[0].message.content);Rate Limits
Rate limit info is included in response headers:
X-RateLimit-LimitRequests per minute limit
X-RateLimit-RemainingRemaining requests
X-RateLimit-ResetReset time (Unix timestamp)
View full API documentation
Learn about all endpoints, parameters, and response formats
Was this page helpful?
Let us know how we can improve