{"openapi":"3.1.0","info":{"title":"Pingtail API","description":"Customer API for US trucking data feeds, compiled by our team from official US registries and business\nsources, cross-checked across multiple sources and verified before every file.\n\n* Authenticate with the `X-API-Key` header (create keys in your dashboard).\n* Every response applies the same rules as the downloadable files: current authority status, revocation-pending\n  exclusion where the feed promises it, agent and shared contacts removed, and the public removal (suppression) list.\n* Every record carries its last-verified date.\n* Errors use RFC 9457 `application/problem+json` with a machine-readable `code`.\n* Rate limits are per key per minute (plan dependent); headers `X-RateLimit-Limit/Remaining/Reset`.\n","version":"1.0.0"},"paths":{"/v1/feeds":{"get":{"tags":["Feeds"],"summary":"List the feeds your plan includes","operationId":"list_feeds_v1_feeds_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedsOut"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/feeds/{code}/records":{"get":{"tags":["Feeds"],"summary":"Current records of a feed (filters, delta with since, pagination)","operationId":"feed_records_v1_feeds__code__records_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","examples":["us_new_authority_weekly"],"title":"Code"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Only records granted/verified on or after this date","title":"Since"},"description":"Only records granted/verified on or after this date"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Page Size"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated US state codes","examples":["TX,OK"],"title":"State"},"description":"Comma-separated US state codes"},{"name":"trucks_min","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Trucks Min"}},{"name":"trucks_max","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Trucks Max"}},{"name":"granted_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Authority granted on/after this date","title":"Granted Since"},"description":"Authority granted on/after this date"},{"name":"min_days_in_business","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Days In Business"}},{"name":"max_days_in_business","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Max Days In Business"}},{"name":"general_freight","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"General Freight"}},{"name":"has_cell","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Cell"}},{"name":"time_zone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["Central"],"title":"Time Zone"}},{"name":"phone_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(mobile|landline|either)$"},{"type":"null"}],"description":"mobile/landline match only positively typed numbers (rare for US); either = unclassifiable (most). Use has_cell for filed cell phones.","title":"Phone Type"},"description":"mobile/landline match only positively typed numbers (rare for US); either = unclassifiable (most). Use has_cell for filed cell phones."},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(broker|freight_forwarder)$"},{"type":"null"}],"title":"Entity Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordsOut"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/feeds/{code}/export.csv":{"get":{"tags":["Feeds"],"summary":"Stream the whole feed as CSV (same filters as records)","operationId":"feed_export_v1_feeds__code__export_csv_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Since"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated US state codes","examples":["TX,OK"],"title":"State"},"description":"Comma-separated US state codes"},{"name":"trucks_min","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Trucks Min"}},{"name":"trucks_max","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Trucks Max"}},{"name":"granted_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Authority granted on/after this date","title":"Granted Since"},"description":"Authority granted on/after this date"},{"name":"min_days_in_business","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Days In Business"}},{"name":"max_days_in_business","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Max Days In Business"}},{"name":"general_freight","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"General Freight"}},{"name":"has_cell","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Cell"}},{"name":"time_zone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["Central"],"title":"Time Zone"}},{"name":"phone_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(mobile|landline|either)$"},{"type":"null"}],"description":"mobile/landline match only positively typed numbers (rare for US); either = unclassifiable (most). Use has_cell for filed cell phones.","title":"Phone Type"},"description":"mobile/landline match only positively typed numbers (rare for US); either = unclassifiable (most). Use has_cell for filed cell phones."},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(broker|freight_forwarder)$"},{"type":"null"}],"title":"Entity Type"}}],"responses":{"200":{"description":"CSV stream","content":{"application/json":{"schema":{}},"text/csv":{}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/carriers/{dot}":{"get":{"tags":["Lookup"],"summary":"Look up one carrier by USDOT number in the feeds you are entitled to","operationId":"carrier_lookup_v1_carriers__dot__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"dot","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{1,8}$","examples":["4600001"],"title":"Dot"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/opt-out":{"post":{"tags":["Removal"],"summary":"Public: ask us to remove a business record (no API key needed)","operationId":"opt_out_v1_opt_out_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptOutIn"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptOutOut"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage":{"get":{"tags":["Account"],"summary":"This month's usage and your limits","operationId":"usage_v1_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageOut"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/events":{"get":{"tags":["Events"],"summary":"Carrier authority events (new authority, insurance-cancellation suspension, revocation pending ...)","operationId":"list_events_v1_events_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated event types","examples":["insurance_cancellation_suspension,revocation_pending"],"title":"Type"},"description":"Comma-separated event types"},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Events detected at or after this RFC 3339 time (default: 7 days ago)","title":"Since"},"description":"Events detected at or after this RFC 3339 time (default: 7 days ago)"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated US state codes","examples":["TX,OK"],"title":"State"},"description":"Comma-separated US state codes"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventsOut"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/webhooks":{"get":{"tags":["Webhooks"],"summary":"List your webhook endpoints","operationId":"list_webhooks_v1_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhooksOut"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"security":[{"APIKeyHeader":[]}]},"post":{"tags":["Webhooks"],"summary":"Register an https endpoint for event types your plan includes","operationId":"create_webhook_v1_webhooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookOut"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/webhooks/{endpoint_id}":{"delete":{"tags":["Webhooks"],"summary":"Pause an endpoint (history is kept; nothing is deleted)","operationId":"delete_webhook_v1_webhooks__endpoint_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Endpoint Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such endpoint in your account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/webhooks/{endpoint_id}/test":{"post":{"tags":["Webhooks"],"summary":"Queue a signed test delivery (sent within about 5 minutes)","operationId":"test_webhook_v1_webhooks__endpoint_id__test_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Endpoint Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such endpoint in your account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/webhooks/{endpoint_id}/rotate":{"post":{"tags":["Webhooks"],"summary":"Rotate the signing secret (the old secret stops working immediately)","operationId":"rotate_webhook_v1_webhooks__endpoint_id__rotate_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretOut"}}}},"401":{"description":"Missing, invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Not entitled (plan does not include this feed or API access)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit or monthly row quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such endpoint in your account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"EventOut":{"properties":{"id":{"type":"integer","title":"Id"},"type":{"type":"string","title":"Type","examples":["insurance_cancellation_suspension"]},"country":{"type":"string","title":"Country","examples":["US"]},"usdot":{"type":"string","title":"Usdot","examples":["4600002"]},"docket":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docket","examples":["MC1830002"]},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","examples":["TX"]},"occurred_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Occurred At","description":"Event date as recorded by the registry (null when none is recorded)","examples":["2026-09-11"]},"detected_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detected At","description":"When we first saw the event","examples":["2026-09-14T11:16:02+00:00"]},"source_dataset":{"type":"string","title":"Source Dataset","description":"Source category of the event","examples":["official registry"]},"verify_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verify Method","description":"How the event was verified","examples":["Recorded in the official registry; detected by our registry checks"]},"data":{"type":"object","title":"Data","examples":[{"legal_name":"SAMPLE FREIGHT INC","reason":"Involuntary Suspension - insurance cancellation"}]}},"type":"object","required":["id","type","country","usdot","source_dataset"],"title":"EventOut"},"EventsOut":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EventOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Pass as ?cursor= to get the next page; null = no more now"},"as_of":{"type":"string","title":"As Of"},"meta":{"type":"object","title":"Meta"}},"type":"object","required":["data","as_of","meta"],"title":"EventsOut"},"FeedOut":{"properties":{"code":{"type":"string","title":"Code","examples":["us_new_authority_weekly"]},"name":{"type":"string","title":"Name","examples":["New Authority Feed (weekly)"]},"country":{"type":"string","title":"Country","examples":["US"]},"cadence":{"type":"string","title":"Cadence","examples":["weekly"]},"as_of":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"As Of","examples":["2026-09-14"]},"fresh":{"type":"boolean","title":"Fresh"},"allowed_filters":{"items":{"type":"string"},"type":"array","title":"Allowed Filters","examples":[["state","trucks_min","trucks_max","granted_since"]]},"columns":{"items":{"type":"string"},"type":"array","title":"Columns"},"regions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Regions"}},"type":"object","required":["code","name","country","cadence","fresh","allowed_filters","columns"],"title":"FeedOut"},"FeedsOut":{"properties":{"data":{"items":{"$ref":"#/components/schemas/FeedOut"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"FeedsOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"OptOutIn":{"properties":{"usdot":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usdot","examples":["4600001"]},"mc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mc","examples":["MC1800001"]},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone","examples":["+1 214 555 0100"]},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","examples":["owner@example.com"]},"requester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requester Email","description":"Where we send the confirmation","examples":["owner@example.com"]},"details":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Details"}},"type":"object","title":"OptOutIn"},"OptOutOut":{"properties":{"request_id":{"type":"integer","title":"Request Id"},"status":{"type":"string","title":"Status","examples":["suppressed"]}},"type":"object","required":["request_id","status"],"title":"OptOutOut"},"Problem":{"properties":{"type":{"type":"string","title":"Type","default":"about:blank"},"title":{"type":"string","title":"Title","examples":["Forbidden"]},"status":{"type":"integer","title":"Status","examples":[403]},"detail":{"type":"string","title":"Detail","examples":["Your plan does not include this feed"]},"code":{"type":"string","title":"Code","examples":["not_entitled"]}},"type":"object","required":["title","status","detail","code"],"title":"Problem"},"RecordsOut":{"properties":{"data":{"items":{"type":"object"},"type":"array","title":"Data","examples":[[{"authority_granted":"2026-09-01","authority_status":"active","company":"EXAMPLE TRUCKING LLC","dot_number":"4600001","state":"TX"}]]},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"has_more":{"type":"boolean","title":"Has More"},"as_of":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"As Of"},"meta":{"type":"object","title":"Meta"}},"type":"object","required":["data","page","page_size","has_more","as_of","meta"],"title":"RecordsOut"},"SecretOut":{"properties":{"id":{"type":"integer","title":"Id"},"secret":{"type":"string","title":"Secret"},"secret_prefix":{"type":"string","title":"Secret Prefix"}},"type":"object","required":["id","secret","secret_prefix"],"title":"SecretOut"},"UsageOut":{"properties":{"month_start":{"type":"string","format":"date","title":"Month Start"},"usage":{"type":"object","title":"Usage","examples":[{"api_requests":120,"api_rows":4300,"export_rows":0}]},"limits":{"type":"object","title":"Limits","examples":[{"api_rows_month":50000,"api_rpm":60}]}},"type":"object","required":["month_start","usage","limits"],"title":"UsageOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WebhookIn":{"properties":{"url":{"type":"string","maxLength":2000,"title":"Url","examples":["https://hooks.example.com/pingtail"]},"event_types":{"items":{"type":"string"},"type":"array","title":"Event Types","examples":[["insurance_cancellation_suspension","revocation_pending"]]},"description":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Description","examples":["CRM intake"]}},"type":"object","required":["url","event_types"],"title":"WebhookIn"},"WebhookOut":{"properties":{"id":{"type":"integer","title":"Id"},"url":{"type":"string","title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"event_types":{"items":{"type":"string"},"type":"array","title":"Event Types"},"active":{"type":"boolean","title":"Active"},"failure_streak":{"type":"integer","title":"Failure Streak","default":0},"disabled_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disabled Reason"},"secret_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Prefix","examples":["whsec_AbC123"]},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret","description":"Signing secret. Returned ONLY on create and rotate; store it now."}},"type":"object","required":["id","url","event_types","active"],"title":"WebhookOut"},"WebhooksOut":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WebhookOut"},"type":"array","title":"Data"},"available_event_types":{"items":{"type":"string"},"type":"array","title":"Available Event Types"}},"type":"object","required":["data","available_event_types"],"title":"WebhooksOut"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","description":"Your API key from the dashboard (pt_live_...)","in":"header","name":"X-API-Key"}}},"tags":[{"name":"Feeds","description":"Feeds your plan includes, their records and CSV exports"},{"name":"Lookup","description":"Single-record lookups"},{"name":"Account","description":"Usage and limits"},{"name":"Removal","description":"Public opt-out / removal requests"},{"name":"Events","description":"Carrier authority events for the feeds your plan includes"},{"name":"Webhooks","description":"Signed event deliveries to your https endpoints"}]}