Guidewire PolicyCenter REST API
guidewire.com · Company
REST API for Guidewire PolicyCenter — P&C policy administration system. Manage policy transactions (new business, renewals, endorsements, cancellations), quotes, accounts, and producer information. Requires Guidewire license.
Authentication
Sample Requests
Returns policy summary including effective dates, status, product, and named insured.
Hover any highlighted part to learn what it does
| Authorization | Bearer YOUR_ACCESS_TOKEN |
curl -X GET "https://{tenant}.guidewire.com/pc/v1/policies/{policyNumber}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"import requests
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
response = requests.get(
"https://{tenant}.guidewire.com/pc/v1/policies/{policyNumber}",
headers=headers,
)
print(response.json())const url = 'https://{tenant}.guidewire.com/pc/v1/policies/{policyNumber}';
const response = await fetch(url, {
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://{tenant}.guidewire.com/pc/v1/policies/{policyNumber}"
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("Authorization", "Bearer YOUR_ACCESS_TOKEN")
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://{tenant}.guidewire.com/pc/v1/policies/{policyNumber}")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_ACCESS_TOKEN"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://{tenant}.guidewire.com/pc/v1/policies/{policyNumber}";
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"Authorization: Bearer YOUR_ACCESS_TOKEN"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Initiates a new business submission (quote) for a given product and account.
Hover any highlighted part to learn what it does
| Content-Type | application/json |
| Authorization | Bearer YOUR_ACCESS_TOKEN |
{
"productCode": "PersonalAuto",
"accountNumber": "ACC-001",
"effectiveDate": "2024-02-01"
}
curl -X POST "https://{tenant}.guidewire.com/pc/v1/jobs/submissions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"productCode":"PersonalAuto","accountNumber":"ACC-001","effectiveDate":"2024-02-01"}'import requests
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
data = {
"productCode": "PersonalAuto",
"accountNumber": "ACC-001",
"effectiveDate": "2024-02-01"
}
response = requests.post(
"https://{tenant}.guidewire.com/pc/v1/jobs/submissions",
headers=headers,
json=data,
)
print(response.json())const url = 'https://{tenant}.guidewire.com/pc/v1/jobs/submissions';
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
},
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"productCode": "PersonalAuto",
"accountNumber": "ACC-001",
"effectiveDate": "2024-02-01"
}),
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"bytes"
"encoding/json"
)
func main() {
targetURL := "https://{tenant}.guidewire.com/pc/v1/jobs/submissions"
jsonData, _ := json.Marshal({"productCode":"PersonalAuto","accountNumber":"ACC-001","effectiveDate":"2024-02-01"})
req, _ := http.NewRequest("POST", targetURL, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_ACCESS_TOKEN")
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://{tenant}.guidewire.com/pc/v1/jobs/submissions")
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"] = "Bearer YOUR_ACCESS_TOKEN"
req["Content-Type"] = "application/json"
req.body = "{\"productCode\":\"PersonalAuto\",\"accountNumber\":\"ACC-001\",\"effectiveDate\":\"2024-02-01\"}"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://{tenant}.guidewire.com/pc/v1/jobs/submissions";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"Content-Type: application/json",
"Authorization: Bearer YOUR_ACCESS_TOKEN",
"Content-Type: application/json"
]),
"content" => json_encode({"productCode":"PersonalAuto","accountNumber":"ACC-001","effectiveDate":"2024-02-01"}),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- Requires Guidewire PolicyCenter license (Cloud or on-prem)
- Authenticate via OAuth2 client credentials — same process as ClaimCenter
- Base URL: https://{tenant}.guidewire.com/pc/v1
- Jobs API covers all policy transactions: submissions, renewals, endorsements, cancellations
- Policy data model varies by product configuration — check your product model for required fields
- API reference at https://developer.guidewire.com (login required)
What can you build with Guidewire PolicyCenter REST API?
Guidewire PolicyCenter REST 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
OAuth 2.0. OAuth lets your app act on behalf of a user. You redirect them to authorise access, receive a token, then use that token in requests. Best for accessing user-owned data. Guidewire PolicyCenter REST 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?