curl --request GET \
--url https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile', 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.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"employerId": "<string>",
"siteId": "<string>",
"dataVersion": "<string>",
"window": {
"from": "<string>",
"to": "<string>"
},
"years": [
{
"year": 123,
"coverage": "filed",
"sitesFiled": 1,
"headcount": 123,
"hours": 123,
"recordableCases": 1,
"dartCases": 1,
"trcRate": 123,
"dartRate": 123,
"dafwDays": 123,
"deaths": 123,
"path": "<string>"
}
],
"inspections": {
"total": 1,
"byType": {},
"path": "<string>"
},
"citations": {
"serious": 1,
"willful": 1,
"repeat": 1,
"other": 1,
"path": "<string>"
},
"penalties": {
"initial": 123,
"current": 123,
"path": "<string>"
},
"severeInjuries": {
"reports": 1,
"hospitalized": 123,
"amputations": 123,
"path": "<string>"
},
"fatalities": {
"byReportingSource": {
"accidentInvestigations": 1,
"annualSummaries": 123
},
"path": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}Get an employer’s OSHA profile
An employer’s workplace safety record in one read. Per Form 300A year: whether OSHA has a filing, headcount, hours, cases and the TRC and DART rates (cases × 200,000 ÷ hours). Over the window: inspections by type, citations by type, penalties, severe injuries and fatalities. Every figure carries the path of the OSHA rows behind it. Pass siteId for one workplace. Compare rates with GET /insurance/osha/incidence-rates. Needs the OSHA dataset enabled for your organization. Read-only; private, no-store.
curl --request GET \
--url https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile', 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.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.effectiveai.app/api/v2/insurance/employers/{employerId}/osha-profile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"employerId": "<string>",
"siteId": "<string>",
"dataVersion": "<string>",
"window": {
"from": "<string>",
"to": "<string>"
},
"years": [
{
"year": 123,
"coverage": "filed",
"sitesFiled": 1,
"headcount": 123,
"hours": 123,
"recordableCases": 1,
"dartCases": 1,
"trcRate": 123,
"dartRate": 123,
"dafwDays": 123,
"deaths": 123,
"path": "<string>"
}
],
"inspections": {
"total": 1,
"byType": {},
"path": "<string>"
},
"citations": {
"serious": 1,
"willful": 1,
"repeat": 1,
"other": 1,
"path": "<string>"
},
"penalties": {
"initial": 123,
"current": 123,
"path": "<string>"
},
"severeInjuries": {
"reports": 1,
"hospitalized": 123,
"amputations": 123,
"path": "<string>"
},
"fatalities": {
"byReportingSource": {
"accidentInvestigations": 1,
"annualSummaries": 123
},
"path": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic",
"accessUrl": "<string>"
}Authorizations
Effective API key. Send Authorization: Bearer sk-eai-...
Path Parameters
Effective employer ID: emp_ followed by 20 hex characters.
^emp_[0-9a-f]{20}$Query Parameters
Number of Form 300A years, ending with the latest year OSHA has published.
1 <= x <= 10Limit the profile to one of the employer’s sites.
^site_[0-9a-f]{20}$Response
The OSHA profile.
Effective employer ID: emp_ followed by 20 hex characters.
^emp_[0-9a-f]{20}$Effective site ID: site_ followed by 20 hex characters.
^site_[0-9a-f]{20}$Version of the employer and site matching. It changes each time matching is rebuilt after an OSHA load (weekly). Null before the first build.
Dates the inspection, citation, injury and fatality counts cover, inclusive.
Show child attributes
Show child attributes
Newest first.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Citations OSHA has not deleted, by violation type.
Show child attributes
Show child attributes
Sums over the window’s citations.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes