Get a violation
curl --request GET \
--url https://api.effectiveai.app/api/v2/insurance/osha/inspections/{activityNr}/violations/{citationId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.effectiveai.app/api/v2/insurance/osha/inspections/{activityNr}/violations/{citationId}"
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/osha/inspections/{activityNr}/violations/{citationId}', 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/osha/inspections/{activityNr}/violations/{citationId}",
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/osha/inspections/{activityNr}/violations/{citationId}"
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/osha/inspections/{activityNr}/violations/{citationId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.effectiveai.app/api/v2/insurance/osha/inspections/{activityNr}/violations/{citationId}")
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{
"activityNr": "<string>",
"citationId": "<string>",
"deleteFlag": "<string>",
"standard": "<string>",
"violType": "<string>",
"issuanceDate": "<string>",
"abateDate": "<string>",
"abateComplete": "<string>",
"currentPenalty": 123,
"initialPenalty": 123,
"contestDate": "<string>",
"finalOrderDate": "<string>",
"nrInstances": 123,
"nrExposed": 123,
"rec": "<string>",
"gravity": "<string>",
"emphasis": "<string>",
"hazcat": "<string>",
"ftaInspNr": "<string>",
"ftaIssuanceDate": "<string>",
"ftaPenalty": 123,
"ftaContestDate": "<string>",
"ftaFinalOrderDate": "<string>",
"hazsub1": "<string>",
"hazsub2": "<string>",
"hazsub3": "<string>",
"hazsub4": "<string>",
"hazsub5": "<string>",
"loadDt": "<string>",
"id": "<string>",
"employerId": "<string>",
"siteId": "<string>",
"sourceFile": {
"url": "<string>",
"sha256": "<string>",
"retrievedAt": "<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>"
}OSHA
Get a violation
Citation items OSHA issued in one inspection, under OSHA’s column names in camelCase, ordered by citation ID. Reads one citation item, including a deleted one. Needs the OSHA dataset enabled for your organization. Read-only; private, no-store.
GET
/
insurance
/
osha
/
inspections
/
{activityNr}
/
violations
/
{citationId}
Get a violation
curl --request GET \
--url https://api.effectiveai.app/api/v2/insurance/osha/inspections/{activityNr}/violations/{citationId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.effectiveai.app/api/v2/insurance/osha/inspections/{activityNr}/violations/{citationId}"
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/osha/inspections/{activityNr}/violations/{citationId}', 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/osha/inspections/{activityNr}/violations/{citationId}",
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/osha/inspections/{activityNr}/violations/{citationId}"
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/osha/inspections/{activityNr}/violations/{citationId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.effectiveai.app/api/v2/insurance/osha/inspections/{activityNr}/violations/{citationId}")
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{
"activityNr": "<string>",
"citationId": "<string>",
"deleteFlag": "<string>",
"standard": "<string>",
"violType": "<string>",
"issuanceDate": "<string>",
"abateDate": "<string>",
"abateComplete": "<string>",
"currentPenalty": 123,
"initialPenalty": 123,
"contestDate": "<string>",
"finalOrderDate": "<string>",
"nrInstances": 123,
"nrExposed": 123,
"rec": "<string>",
"gravity": "<string>",
"emphasis": "<string>",
"hazcat": "<string>",
"ftaInspNr": "<string>",
"ftaIssuanceDate": "<string>",
"ftaPenalty": 123,
"ftaContestDate": "<string>",
"ftaFinalOrderDate": "<string>",
"hazsub1": "<string>",
"hazsub2": "<string>",
"hazsub3": "<string>",
"hazsub4": "<string>",
"hazsub5": "<string>",
"loadDt": "<string>",
"id": "<string>",
"employerId": "<string>",
"siteId": "<string>",
"sourceFile": {
"url": "<string>",
"sha256": "<string>",
"retrievedAt": "<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
Inspection activity number.
Pattern:
^\d{1,12}$Citation ID within the inspection, such as 01001.
Pattern:
^[A-Za-z0-9]{1,12}$Response
One violation.
One citation item from an inspection. Fields are OSHA’s own column names in camelCase, with values as OSHA publishes them.
The citation ID, unique within the inspection.
Employer Effective matched this row to, or null if it could not place it.
Pattern:
^emp_[0-9a-f]{20}$Site Effective matched this row to, or null.
Pattern:
^site_[0-9a-f]{20}$Show child attributes
Show child attributes