Find an API

Search public APIs with auth details & Postman guides

← All APIs

CCC Intelligent Solutions API

cccis.com · Company

Company OAuth2 Paid Insurance Automotive Claims Auto Insurance

API for CCC ONE — the largest auto claims and repair network platform in the US. Integrates with Guidewire ClaimCenter for auto assignment dispatch, damage estimates, parts pricing, repair shop locator, and total loss settlement. CCC processes claims for 300+ insurers.

Authentication

OAuth2 OAuth2 client credentials. Requires CCC carrier agreement. Contact [email protected] for API access.

Sample Requests

POST Create auto claim

Creates a new auto claim in CCC ONE and dispatches to the repair network.

https://api.cccis.com/claims/v3

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Content-Type application/json
Authorization Bearer YOUR_ACCESS_TOKEN
Request Body — data you're sending
{
  "vin": "2T1BURHE0JC000001",
  "lossDate": "2024-01-20",
  "damageType": "Collision",
  "claimNumber": "CL-9012",
  "policyNumber": "POL-000456"
}
curl -X POST "https://api.cccis.com/claims/v3" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"vin":"2T1BURHE0JC000001","lossDate":"2024-01-20","damageType":"Collision","claimNumber":"CL-9012","policyNumber":"POL-000456"}'
import requests
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
data = {
    "vin": "2T1BURHE0JC000001",
    "lossDate": "2024-01-20",
    "damageType": "Collision",
    "claimNumber": "CL-9012",
    "policyNumber": "POL-000456"
}
response = requests.post(
    "https://api.cccis.com/claims/v3",
    headers=headers,
    json=data,
)
print(response.json())
const url = 'https://api.cccis.com/claims/v3';

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({
  "vin": "2T1BURHE0JC000001",
  "lossDate": "2024-01-20",
  "damageType": "Collision",
  "claimNumber": "CL-9012",
  "policyNumber": "POL-000456"
}),
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"bytes"
	"encoding/json"
)

func main() {
	targetURL := "https://api.cccis.com/claims/v3"
	jsonData, _ := json.Marshal({"vin":"2T1BURHE0JC000001","lossDate":"2024-01-20","damageType":"Collision","claimNumber":"CL-9012","policyNumber":"POL-000456"})
	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://api.cccis.com/claims/v3")

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 = "{\"vin\":\"2T1BURHE0JC000001\",\"lossDate\":\"2024-01-20\",\"damageType\":\"Collision\",\"claimNumber\":\"CL-9012\",\"policyNumber\":\"POL-000456\"}"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.cccis.com/claims/v3";
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "Content-Type: application/json",
        "Authorization: Bearer YOUR_ACCESS_TOKEN",
        "Content-Type: application/json"
    ]),
    "content" => json_encode({"vin":"2T1BURHE0JC000001","lossDate":"2024-01-20","damageType":"Collision","claimNumber":"CL-9012","policyNumber":"POL-000456"}),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Search repair shops

Returns DRP (Direct Repair Program) shops near a location, sorted by distance.

https://api.cccis.com/shops/v2/search?radius=25&drpOnly=true&latitude=32.7767&longitude=-96.7970

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Authorization Bearer YOUR_ACCESS_TOKEN
curl -X GET "https://api.cccis.com/shops/v2/search?radius=25&drpOnly=true&latitude=32.7767&longitude=-96.7970" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
params = {
    "radius": "25",
    "drpOnly": "true",
    "latitude": "32.7767",
    "longitude": "-96.7970"
}
headers = {
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
response = requests.get(
    "https://api.cccis.com/shops/v2/search",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.cccis.com/shops/v2/search');
url.searchParams.set('radius', '25');
url.searchParams.set('drpOnly', 'true');
url.searchParams.set('latitude', '32.7767');
url.searchParams.set('longitude', '-96.7970');

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"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.cccis.com/shops/v2/search")
	q := baseURL.Query()
	q.Set("radius", "25")
	q.Set("drpOnly", "true")
	q.Set("latitude", "32.7767")
	q.Set("longitude", "-96.7970")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	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://api.cccis.com/shops/v2/search")
uri.query = URI.encode_www_form({
  "radius" => "25",
  "drpOnly" => "true",
  "latitude" => "32.7767",
  "longitude" => "-96.7970"
})

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://api.cccis.com/shops/v2/search?" . http_build_query([
    "radius" => "25",
    "drpOnly" => "true",
    "latitude" => "32.7767",
    "longitude" => "-96.7970"
]);
$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));

Postman Setup Guide

Get Postman ↗
  1. Requires a CCC carrier agreement — contact [email protected]
  2. CCC provides UAT credentials and sandbox environment upon agreement
  3. Guidewire Marketplace accelerator: search "CCC" in App Directory
  4. Integration covers the full claim lifecycle: FNOL → assignment → estimate → settlement
  5. CCC ONE supports EDI-based integration as an alternative to REST API
  6. Parts pricing API is separate — requires additional CCC parts data subscription

What can you build with CCC Intelligent Solutions API?

CCC Intelligent Solutions 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. CCC Intelligent Solutions 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 ↗