curl --request GET \
--url https://app.octavehq.com/api/v2/api-key/validate \
--header 'api_key: <api-key>'import requests
url = "https://app.octavehq.com/api/v2/api-key/validate"
headers = {"api_key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {api_key: '<api-key>'}};
fetch('https://app.octavehq.com/api/v2/api-key/validate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.octavehq.com/api/v2/api-key/validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.octavehq.com/api/v2/api-key/validate"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api_key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.octavehq.com/api/v2/api-key/validate")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.octavehq.com/api/v2/api-key/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"status": "ok",
"valid": true,
"workspaceOId": "wks_abc123",
"workspaceName": "My Workspace",
"workspaceDomain": "example.com",
"organizationOId": "org_xyz789",
"organizationName": "Acme Corp",
"organizationDomain": "acme.com",
"organizationSlug": "acme-corp",
"mcpUrl": "https://mcp.octavehq.com/mcp?ctx=eyJvcmdhbml6YXRpb25fc2x1ZyI6ImFjbWUtY29ycCIsIndvcmtzcGFjZV9vX2lkIjoid2tzX2FiYzEyMyJ9",
"credits": {
"totalUsed": 175,
"totalRemaining": 425,
"totalMax": 575,
"quotaUsed": 150,
"quotaAvailable": 350,
"quotaMax": 500,
"period": "month",
"creditsUsed": 25,
"creditsAvailable": 75
}
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}Validate API key
This endpoint validates the API key provided in the header. If the request succeeds, the API key is valid. Rate limited to 1000 requests per minute.
curl --request GET \
--url https://app.octavehq.com/api/v2/api-key/validate \
--header 'api_key: <api-key>'import requests
url = "https://app.octavehq.com/api/v2/api-key/validate"
headers = {"api_key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {api_key: '<api-key>'}};
fetch('https://app.octavehq.com/api/v2/api-key/validate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.octavehq.com/api/v2/api-key/validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.octavehq.com/api/v2/api-key/validate"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api_key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.octavehq.com/api/v2/api-key/validate")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.octavehq.com/api/v2/api-key/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"status": "ok",
"valid": true,
"workspaceOId": "wks_abc123",
"workspaceName": "My Workspace",
"workspaceDomain": "example.com",
"organizationOId": "org_xyz789",
"organizationName": "Acme Corp",
"organizationDomain": "acme.com",
"organizationSlug": "acme-corp",
"mcpUrl": "https://mcp.octavehq.com/mcp?ctx=eyJvcmdhbml6YXRpb25fc2x1ZyI6ImFjbWUtY29ycCIsIndvcmtzcGFjZV9vX2lkIjoid2tzX2FiYzEyMyJ9",
"credits": {
"totalUsed": 175,
"totalRemaining": 425,
"totalMax": 575,
"quotaUsed": 150,
"quotaAvailable": 350,
"quotaMax": 500,
"period": "month",
"creditsUsed": 25,
"creditsAvailable": 75
}
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}Authorizations
Response
API key is valid
Show child attributes
Show child attributes
Status of the API key validation
ok "ok"
Whether the API key is valid
true
The unique identifier for the workspace
"wks_abc123"
The name of the workspace
"My Workspace"
The domain associated with the workspace
"example.com"
The unique identifier for the organization
"org_xyz789"
The name of the organization
"Acme Corp"
The domain associated with the organization
"acme.com"
The URL-friendly slug for the organization
"acme-corp"
The MCP server URL with encoded workspace context for connecting AI tools
"https://mcp.octavehq.com/mcp?ctx=eyJvcmdhbml6YXRpb25fc2x1ZyI6ImFjbWUtY29ycCIsIndvcmtzcGFjZV9vX2lkIjoid2tzX2FiYzEyMyJ9"
Credit usage information for the API key
Show child attributes
Show child attributes