OneShield Enterprise API
oneshield.com · Company
SOAP and REST APIs for OneShield Enterprise — a configurable policy administration system for P&C and specialty insurers. OneShield supports complex commercial, specialty, and program business. The API covers policy lifecycle management (quoting, binding, endorsements, renewals, cancellations), rating engine calls, and billing inquiries. Common in MGAs and program administrators.
Authentication
Sample Requests
Search for policies by insured name, policy number, effective date range, or line of business.
Hover any highlighted part to learn what it does
| Accept | application/json |
| Authorization | Basic BASE64_CREDENTIALS |
curl -X GET "https://api.oneshield.com/ose/rest/v1/policies/search?status=Active&insuredName=Acme%20Corp&lineOfBusiness=GL" \ -H "Accept: application/json" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS"
import requests
params = {
"status": "Active",
"insuredName": "Acme Corp",
"lineOfBusiness": "GL"
}
headers = {
"Accept": "application/json",
"Authorization": "Basic YOUR_BASE64_CREDENTIALS"
}
response = requests.get(
"https://api.oneshield.com/ose/rest/v1/policies/search",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.oneshield.com/ose/rest/v1/policies/search');
url.searchParams.set('status', 'Active');
url.searchParams.set('insuredName', 'Acme Corp');
url.searchParams.set('lineOfBusiness', 'GL');
const response = await fetch(url, {
headers: {
'Accept': 'application/json',
'Authorization': 'Basic YOUR_BASE64_CREDENTIALS'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.oneshield.com/ose/rest/v1/policies/search")
q := baseURL.Query()
q.Set("status", "Active")
q.Set("insuredName", "Acme Corp")
q.Set("lineOfBusiness", "GL")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("Accept", "application/json")
req.Header.Set("Authorization", "Basic YOUR_BASE64_CREDENTIALS")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.oneshield.com/ose/rest/v1/policies/search")
uri.query = URI.encode_www_form({
"status" => "Active",
"insuredName" => "Acme Corp",
"lineOfBusiness" => "GL"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["Accept"] = "application/json"
req["Authorization"] = "Basic YOUR_BASE64_CREDENTIALS"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.oneshield.com/ose/rest/v1/policies/search?" . http_build_query([
"status" => "Active",
"insuredName" => "Acme Corp",
"lineOfBusiness" => "GL"
]);
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"Accept: application/json",
"Authorization: Basic YOUR_BASE64_CREDENTIALS"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Initiates a mid-term endorsement on an active policy. Common for adding vehicles, changing limits, or updating insured information.
Hover any highlighted part to learn what it does
| Content-Type | application/json |
| Authorization | Basic BASE64_CREDENTIALS |
{
"reason": "Insured requested limit increase",
"changes": [
{
"field": "generalLiabilityLimit",
"newValue": 2000000,
"oldValue": 1000000
}
],
"effectiveDate": "2024-03-15",
"endorsementType": "COVERAGE_CHANGE"
}
curl -X POST "https://api.oneshield.com/ose/rest/v1/policies/{policyId}/endorsements" \
-H "Content-Type: application/json" \
-H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \
-H "Content-Type: application/json" \
-d '{"reason":"Insured requested limit increase","changes":[{"field":"generalLiabilityLimit","newValue":2000000,"oldValue":1000000}],"effectiveDate":"2024-03-15","endorsementType":"COVERAGE_CHANGE"}'import requests
headers = {
"Content-Type": "application/json",
"Authorization": "Basic YOUR_BASE64_CREDENTIALS"
}
data = {
"reason": "Insured requested limit increase",
"changes": [
{
"field": "generalLiabilityLimit",
"newValue": 2000000,
"oldValue": 1000000
}
],
"effectiveDate": "2024-03-15",
"endorsementType": "COVERAGE_CHANGE"
}
response = requests.post(
"https://api.oneshield.com/ose/rest/v1/policies/{policyId}/endorsements",
headers=headers,
json=data,
)
print(response.json())const url = 'https://api.oneshield.com/ose/rest/v1/policies/{policyId}/endorsements';
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic YOUR_BASE64_CREDENTIALS'
},
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"reason": "Insured requested limit increase",
"changes": [
{
"field": "generalLiabilityLimit",
"newValue": 2000000,
"oldValue": 1000000
}
],
"effectiveDate": "2024-03-15",
"endorsementType": "COVERAGE_CHANGE"
}),
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"bytes"
"encoding/json"
)
func main() {
targetURL := "https://api.oneshield.com/ose/rest/v1/policies/{policyId}/endorsements"
jsonData, _ := json.Marshal({"reason":"Insured requested limit increase","changes":[{"field":"generalLiabilityLimit","newValue":2000000,"oldValue":1000000}],"effectiveDate":"2024-03-15","endorsementType":"COVERAGE_CHANGE"})
req, _ := http.NewRequest("POST", targetURL, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Basic YOUR_BASE64_CREDENTIALS")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.oneshield.com/ose/rest/v1/policies/{policyId}/endorsements")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["Content-Type"] = "application/json"
req["Authorization"] = "Basic YOUR_BASE64_CREDENTIALS"
req["Content-Type"] = "application/json"
req.body = "{\"reason\":\"Insured requested limit increase\",\"changes\":[{\"field\":\"generalLiabilityLimit\",\"newValue\":2000000,\"oldValue\":1000000}],\"effectiveDate\":\"2024-03-15\",\"endorsementType\":\"COVERAGE_CHANGE\"}"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.oneshield.com/ose/rest/v1/policies/{policyId}/endorsements";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"Content-Type: application/json",
"Authorization: Basic YOUR_BASE64_CREDENTIALS",
"Content-Type: application/json"
]),
"content" => json_encode({"reason":"Insured requested limit increase","changes":[{"field":"generalLiabilityLimit","newValue":2000000,"oldValue":1000000}],"effectiveDate":"2024-03-15","endorsementType":"COVERAGE_CHANGE"}),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- API credentials are provisioned by OneShield during implementation — contact your implementation PM
- OneShield deployments are tenant-specific; base URL varies by client environment
- Both SOAP (legacy) and REST (preferred) interfaces available — REST recommended for new integrations
- Policy IDs are internal OneShield GUIDs; map them to external policy numbers via /policies/search first
- Endorsement workflows may require multi-step calls: create → rate → bind
- Sandbox environment provisioned per client — request access through your OneShield account team
What can you build with OneShield Enterprise API?
OneShield Enterprise API is a Company API. Developers commonly use company APIs for:
- enriching CRM records with company firmographics
- building lead-generation and prospecting tools
- verifying business identity and registration details
- monitoring competitors and market intelligence
- powering B2B data enrichment pipelines
Basic authentication. Send your username and password (Base64-encoded) in the Authorization header. Always use HTTPS — Basic auth over plain HTTP exposes your credentials. OneShield Enterprise API is a paid API — check the provider's pricing page before building a production integration.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?