Test Odoo Connection
curl --request POST \
--url https://api.example.com/api/odoo/test \
--header 'Content-Type: application/json' \
--data '
{
"base_url": "<string>",
"login": "<string>",
"secret": "<string>",
"auth_method": "password",
"db_name": ""
}
'import requests
url = "https://api.example.com/api/odoo/test"
payload = {
"base_url": "<string>",
"login": "<string>",
"secret": "<string>",
"auth_method": "password",
"db_name": ""
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
base_url: '<string>',
login: '<string>',
secret: '<string>',
auth_method: 'password',
db_name: ''
})
};
fetch('https://api.example.com/api/odoo/test', 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://api.example.com/api/odoo/test",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'base_url' => '<string>',
'login' => '<string>',
'secret' => '<string>',
'auth_method' => 'password',
'db_name' => ''
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/odoo/test"
payload := strings.NewReader("{\n \"base_url\": \"<string>\",\n \"login\": \"<string>\",\n \"secret\": \"<string>\",\n \"auth_method\": \"password\",\n \"db_name\": \"\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/odoo/test")
.header("Content-Type", "application/json")
.body("{\n \"base_url\": \"<string>\",\n \"login\": \"<string>\",\n \"secret\": \"<string>\",\n \"auth_method\": \"password\",\n \"db_name\": \"\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/odoo/test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"base_url\": \"<string>\",\n \"login\": \"<string>\",\n \"secret\": \"<string>\",\n \"auth_method\": \"password\",\n \"db_name\": \"\"\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"databases": [
"<string>"
],
"db_name": "<string>",
"error": "<string>",
"resolved_url": "<string>",
"server_version": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Odoo Connections
Test Odoo Connection
Probe a credential pair without persisting it. Used by the project setup wizard so the user can verify their inputs before the project even exists.
POST
/
api
/
odoo
/
test
Test Odoo Connection
curl --request POST \
--url https://api.example.com/api/odoo/test \
--header 'Content-Type: application/json' \
--data '
{
"base_url": "<string>",
"login": "<string>",
"secret": "<string>",
"auth_method": "password",
"db_name": ""
}
'import requests
url = "https://api.example.com/api/odoo/test"
payload = {
"base_url": "<string>",
"login": "<string>",
"secret": "<string>",
"auth_method": "password",
"db_name": ""
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
base_url: '<string>',
login: '<string>',
secret: '<string>',
auth_method: 'password',
db_name: ''
})
};
fetch('https://api.example.com/api/odoo/test', 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://api.example.com/api/odoo/test",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'base_url' => '<string>',
'login' => '<string>',
'secret' => '<string>',
'auth_method' => 'password',
'db_name' => ''
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/odoo/test"
payload := strings.NewReader("{\n \"base_url\": \"<string>\",\n \"login\": \"<string>\",\n \"secret\": \"<string>\",\n \"auth_method\": \"password\",\n \"db_name\": \"\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/odoo/test")
.header("Content-Type", "application/json")
.body("{\n \"base_url\": \"<string>\",\n \"login\": \"<string>\",\n \"secret\": \"<string>\",\n \"auth_method\": \"password\",\n \"db_name\": \"\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/odoo/test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"base_url\": \"<string>\",\n \"login\": \"<string>\",\n \"secret\": \"<string>\",\n \"auth_method\": \"password\",\n \"db_name\": \"\"\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"databases": [
"<string>"
],
"db_name": "<string>",
"error": "<string>",
"resolved_url": "<string>",
"server_version": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Body
application/json
Body for POST /api/projects/{project_id}/odoo/test.
Probes a credential pair WITHOUT persisting it. Used by the project setup wizard so the user can verify their inputs before the project even exists. Same field shape as OdooCredentialCreate minus the metadata (name, tier) — only the bits needed to authenticate.