Find an API

Search public APIs with auth details & Postman guides

← All APIs

OneShield Enterprise API

oneshield.com · Company

Company Basic Auth Paid Insurance Policy Administration Rating Billing

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

Basic Auth HTTP Basic authentication with credentials provisioned by OneShield during implementation. API keys also supported in newer deployments. Contact your OneShield implementation team.

Sample Requests

GET Search policies

Search for policies by insured name, policy number, effective date range, or line of business.

https://api.oneshield.com/ose/rest/v1/policies/search?status=Active&insuredName=Acme Corp&lineOfBusiness=GL

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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));
POST Create endorsement

Initiates a mid-term endorsement on an active policy. Common for adding vehicles, changing limits, or updating insured information.

https://api.oneshield.com/ose/rest/v1/policies/{policyId}/endorsements

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Content-Type application/json
Authorization Basic BASE64_CREDENTIALS
Request Body — data you're sending
{
  "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

Get Postman ↗
  1. API credentials are provisioned by OneShield during implementation — contact your implementation PM
  2. OneShield deployments are tenant-specific; base URL varies by client environment
  3. Both SOAP (legacy) and REST (preferred) interfaces available — REST recommended for new integrations
  4. Policy IDs are internal OneShield GUIDs; map them to external policy numbers via /policies/search first
  5. Endorsement workflows may require multi-step calls: create → rate → bind
  6. 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?

Open documentation ↗