@oneshot-agent/mcp-server 0.48.0 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,68 @@
2
2
  // run `bun scripts/generate-lookup-tools.ts` after adding or changing a lookup tool.
3
3
  // Plain data on purpose: the published package must not import from apps/.
4
4
  export const LOOKUP_MANIFEST = [
5
+ {
6
+ "name": "company_adviser_registration",
7
+ "path": "lookup/company-adviser-registration",
8
+ "title": "Adviser Registration",
9
+ "description": "Returns investment adviser firms from the US Securities and Exchange Commission's public disclosure register matching a CRD number or name: whether each is registered with the SEC or states or files as an exempt reporting adviser, each registration with its status and date, notice filings, SEC file number and main office. Broker-dealer registrations and individual representatives are not covered. Give exactly one of `crd` and `name`. A CRD number returns `profile`, the firm's full record, with `total` 1; `profile` is null and `total` 0 when the number is not an investment adviser in the register. A name returns `matches`, a list of firms to pick from, best match first, each with the CRD number to call again with; `profile` is then null. A name is a text match against current and former names and the SEC file number, so similarly named firms come back too. `total` counts every register record that matched, including firms registered only as broker-dealers, which are not returned. `adviser_status` is `inactive` for a firm no longer registered or reporting; the register keeps such firms for ten years. `registrations` lists each SEC or state registration with its status word (`Approved`, `Terminated`) and effective date; `exempt_reporting` lists exempt reporting filings; `notice_filings` lists the states an SEC-registered adviser has notice filed in. Assets under management, brochures, individual representatives and broker-dealer data are not returned. Dates are YYYY-MM-DD; a date the register writes in an unreadable form is null.",
10
+ "inputSchema": {
11
+ "type": "object",
12
+ "properties": {
13
+ "crd": {
14
+ "type": "integer",
15
+ "description": "The firm's CRD number, for example 149117. An exact match that returns the full profile. From 1 to 99999999."
16
+ },
17
+ "name": {
18
+ "type": "string",
19
+ "description": "The firm's name, for example Betterment. A text match against current and former names and the SEC file number; returns a list to pick from. 2 to 100 characters."
20
+ },
21
+ "limit": {
22
+ "type": "integer",
23
+ "description": "Most firms to return for a name; ignored with a CRD number. From 1 to 12. Defaults to `5`."
24
+ },
25
+ "fresh": {
26
+ "type": "boolean",
27
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
28
+ }
29
+ },
30
+ "required": []
31
+ },
32
+ "example": {
33
+ "crd": 149117
34
+ }
35
+ },
36
+ {
37
+ "name": "aircraft_registration",
38
+ "path": "lookup/aircraft-registration",
39
+ "title": "Aircraft Registration",
40
+ "description": "Find US civil aircraft and their registered owners in the daily FAA registry. Search by N-number, six-digit hexadecimal Mode S code or owner-name prefix. No street addresses are returned. Registration does not establish who flies the aircraft or its current location. An empty result with coverage.available true means no match in the held release. False means no evidence either way. Observed fields are registry values, with code labels and date formatting decoded. There are no derived aircraft fields. Owner names match normalized uppercase text prefixes. Lists default to 25 rows, at most 50. Status and aircraft type retain FAA codes. The source refreshes daily at 11:30 p.m. Central. coverage.as_of dates the held release; newer registrations may be absent.",
41
+ "inputSchema": {
42
+ "type": "object",
43
+ "properties": {
44
+ "registration": {
45
+ "type": "string",
46
+ "description": "US N-number, such as N123AB"
47
+ },
48
+ "icao24": {
49
+ "type": "string",
50
+ "description": "Six hexadecimal Mode S digits"
51
+ },
52
+ "owner_name": {
53
+ "type": "string",
54
+ "description": "Registered owner name prefix. 1 to 200 characters. Owner name must be valid Unicode without null characters."
55
+ },
56
+ "limit": {
57
+ "type": "integer",
58
+ "description": "Maximum owner-search rows. From 1 to 50. Defaults to `25`."
59
+ }
60
+ },
61
+ "required": []
62
+ },
63
+ "example": {
64
+ "registration": "N123AB"
65
+ }
66
+ },
5
67
  {
6
68
  "name": "company_bank_profile",
7
69
  "path": "lookup/company-bank-profile",
@@ -21,6 +83,10 @@ export const LOOKUP_MANIFEST = [
21
83
  "limit": {
22
84
  "type": "integer",
23
85
  "description": "Most banks to return. From 1 to 10. Defaults to `5`."
86
+ },
87
+ "fresh": {
88
+ "type": "boolean",
89
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
24
90
  }
25
91
  },
26
92
  "required": []
@@ -29,6 +95,90 @@ export const LOOKUP_MANIFEST = [
29
95
  "fdic_certificate": 59113
30
96
  }
31
97
  },
98
+ {
99
+ "name": "place_camera_snapshot",
100
+ "path": "lookup/place-camera-snapshot",
101
+ "title": "Camera Check",
102
+ "description": "Finds public road cameras run by transport authorities, nearest first, and fetches the nearest available frame. Some cameras refresh only every few minutes. Source fields are observed; distance, converted coordinates, frame_age_s and offline are derived. Coverage reports how many cameras the catalogue could find, even when no frame was fetched. An empty list with catalogue_available true means the loaded catalogue was searched and no cameras were in range. With catalogue_available false it provides no evidence either way. Neither proves a physical scene is clear. coverage.networks_loaded lists catalogues loaded within 48 hours; coverage is partial outside those networks. Stored cameras remain visible when catalogue refreshes fail. Fetches at most three frames in nearest order, stopping after a usable frame. Failed or older-than-30-minute frames are offline and remain listed. Unchecked cameras have null offline and frame_age_s. frame_captured_at comes from the image Last-Modified header; absent or future timestamps are null. HTTP Date and catalogue update times are not image capture times. Coordinates converted from Web Mercator are under derived.latitude and derived.longitude, with the original position under observed.source_position. Other coordinates are under observed. radius_km defaults to 5 (maximum 50); limit defaults to 3 (maximum 10). Return attribution alongside any displayed frame. TxDOT frame URLs return a JSON snippet containing a base64 JPEG.",
103
+ "inputSchema": {
104
+ "type": "object",
105
+ "properties": {
106
+ "latitude": {
107
+ "type": "number",
108
+ "description": "Latitude in decimal degrees. From -90 to 90."
109
+ },
110
+ "longitude": {
111
+ "type": "number",
112
+ "description": "Longitude in decimal degrees. From -180 to 180."
113
+ },
114
+ "radius_km": {
115
+ "type": "number",
116
+ "description": "Search radius in kilometres. From 0 to 50. Defaults to `5`."
117
+ },
118
+ "limit": {
119
+ "type": "integer",
120
+ "description": "Most cameras returned. From 1 to 10. Defaults to `3`."
121
+ }
122
+ },
123
+ "required": [
124
+ "latitude",
125
+ "longitude"
126
+ ]
127
+ },
128
+ "example": {
129
+ "latitude": 51.60067,
130
+ "longitude": -0.01594
131
+ }
132
+ },
133
+ {
134
+ "name": "company_care_quality",
135
+ "path": "lookup/company-care-quality",
136
+ "title": "Care Quality Ratings",
137
+ "description": "Returns official star ratings of a US hospital, nursing home, home health agency, hospice or dialysis facility by CMS Certification Number or name, from the US Centers for Medicare & Medicaid Services: overall rating from 1 to 5, plus nursing home inspection, quality and staffing ratings. A null rating means the source published none. rating_name identifies the rating for each facility_type: hospital overall quality, nursing home overall five-star, home health patient care quality, hospice family caregiver survey summary, or dialysis facility five-star. Names match substrings; use has_more and the CCN to distinguish facilities. No match completes with facilities: []. Use place_hospitals to list hospitals in a ZIP code and company_medicare_ownership for ownership details. Only the current release is served; history begins with our first observation.",
138
+ "inputSchema": {
139
+ "type": "object",
140
+ "properties": {
141
+ "facility_type": {
142
+ "type": "string",
143
+ "enum": [
144
+ "hospital",
145
+ "nursing_home",
146
+ "home_health",
147
+ "hospice",
148
+ "dialysis"
149
+ ],
150
+ "description": "Which register to read; each kind of facility is rated in its own dataset"
151
+ },
152
+ "ccn": {
153
+ "type": "string",
154
+ "description": "The facility CMS Certification Number (Medicare provider number). A CMS Certification Number is six digits or capital letters."
155
+ },
156
+ "facility_name": {
157
+ "type": "string",
158
+ "description": "Case-insensitive substring of the facility name. 3 to 100 characters."
159
+ },
160
+ "state": {
161
+ "type": "string",
162
+ "description": "State abbreviation; only with facility_name"
163
+ },
164
+ "limit": {
165
+ "type": "integer",
166
+ "description": "Most facilities to return. From 1 to 10. Defaults to `5`."
167
+ },
168
+ "fresh": {
169
+ "type": "boolean",
170
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
171
+ }
172
+ },
173
+ "required": [
174
+ "facility_type"
175
+ ]
176
+ },
177
+ "example": {
178
+ "facility_type": "hospital",
179
+ "ccn": "240010"
180
+ }
181
+ },
32
182
  {
33
183
  "name": "record_clinical_trials_find",
34
184
  "path": "find/record-clinical-trials",
@@ -99,6 +249,10 @@ export const LOOKUP_MANIFEST = [
99
249
  "limit": {
100
250
  "type": "integer",
101
251
  "description": "Most filings to return, newest first. From 1 to 50. Defaults to `10`."
252
+ },
253
+ "fresh": {
254
+ "type": "boolean",
255
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
102
256
  }
103
257
  },
104
258
  "required": [
@@ -230,6 +384,10 @@ export const LOOKUP_MANIFEST = [
230
384
  "limit": {
231
385
  "type": "integer",
232
386
  "description": "Most complaints to return, newest first. From 1 to 25. Defaults to `10`."
387
+ },
388
+ "fresh": {
389
+ "type": "boolean",
390
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
233
391
  }
234
392
  },
235
393
  "required": [
@@ -271,6 +429,10 @@ export const LOOKUP_MANIFEST = [
271
429
  "limit": {
272
430
  "type": "integer",
273
431
  "description": "Most licences to return. From 1 to 20. Defaults to `5`."
432
+ },
433
+ "fresh": {
434
+ "type": "boolean",
435
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
274
436
  }
275
437
  },
276
438
  "required": [
@@ -282,6 +444,31 @@ export const LOOKUP_MANIFEST = [
282
444
  "license_number": "ABSHEC*345PS"
283
445
  }
284
446
  },
447
+ {
448
+ "name": "product_cosmetic_adverse_events",
449
+ "path": "lookup/product-cosmetic-adverse-events",
450
+ "title": "Cosmetic Adverse Events",
451
+ "description": "Lists the reactions and outcomes most often named in adverse event reports about cosmetic products sent to the US Food and Drug Administration, with the number of reports naming each. Reports are unverified, a report does not show that the product caused the reaction, and the source says its data must not guide medical care. The name matches any product named on a report, including products the reporter did not suspect; common words can match unrelated reports. One report can name several reactions and outcomes. The source updates infrequently; as_of gives its date. For drugs use Drug Adverse Events; for devices use Device Adverse Events.",
452
+ "inputSchema": {
453
+ "type": "object",
454
+ "properties": {
455
+ "product_name": {
456
+ "type": "string",
457
+ "description": "Cosmetic product name, matched as a phrase. 2 to 100 characters."
458
+ },
459
+ "limit": {
460
+ "type": "integer",
461
+ "description": "The most reactions to return. From 1 to 25. Defaults to `10`."
462
+ }
463
+ },
464
+ "required": [
465
+ "product_name"
466
+ ]
467
+ },
468
+ "example": {
469
+ "product_name": "dry shampoo"
470
+ }
471
+ },
285
472
  {
286
473
  "name": "record_court_cases_find",
287
474
  "path": "find/record-court-cases",
@@ -379,6 +566,75 @@ export const LOOKUP_MANIFEST = [
379
566
  "variant": "FWD"
380
567
  }
381
568
  },
569
+ {
570
+ "name": "record_customs_rulings_find",
571
+ "path": "find/record-customs-rulings",
572
+ "title": "Customs Rulings",
573
+ "description": "Searches rulings published by US Customs and Border Protection, closest match first, with ruling numbers you can cite, dates, tariff numbers and revocation status. A ruling binds only the goods it describes. The rate itself comes from Duty Rate. New rulings are added daily as issued. Each answer includes the ruling date and a link to the ruling page. The optional tariff_number prefix filters the returned page. Fewer than limit rulings may remain; total is the source match count before filtering.",
574
+ "inputSchema": {
575
+ "type": "object",
576
+ "properties": {
577
+ "query": {
578
+ "type": "string",
579
+ "description": "Search words, for example bluetooth speaker. 2 to 200 characters."
580
+ },
581
+ "tariff_number": {
582
+ "type": "string",
583
+ "description": "Keep rulings with a tariff number starting with this prefix, for example 8518, 8518.22 or 8518.22.0000"
584
+ },
585
+ "limit": {
586
+ "type": "integer",
587
+ "description": "The most rulings to fetch before the optional tariff filter. From 1 to 20. Defaults to `10`."
588
+ }
589
+ },
590
+ "required": [
591
+ "query"
592
+ ]
593
+ },
594
+ "example": {
595
+ "query": "bluetooth speaker",
596
+ "limit": 1
597
+ }
598
+ },
599
+ {
600
+ "name": "product_device_adverse_events",
601
+ "path": "lookup/product-device-adverse-events",
602
+ "title": "Device Adverse Events",
603
+ "description": "Counts adverse event reports to the US Food and Drug Administration about a medical device, by name, product code or maker: deaths, injuries and malfunctions reported, and the most named patient or device problems. Reports are unverified, a report does not show the device caused the event, and the source says its data must not guide medical care. Names match phrases; several filters must all match. Device names match brand or generic name. One report can name several devices and problems. A problem count is the reports naming it; terms such as No Clinical Signs, Symptoms or Conditions are the source’s own. For drugs use Drug Adverse Events. The source refreshes weekly.",
604
+ "inputSchema": {
605
+ "type": "object",
606
+ "properties": {
607
+ "device_name": {
608
+ "type": "string",
609
+ "description": "Device brand or generic name. 2 to 100 characters."
610
+ },
611
+ "product_code": {
612
+ "type": "string",
613
+ "description": "Three-letter FDA device product code"
614
+ },
615
+ "manufacturer": {
616
+ "type": "string",
617
+ "description": "Device manufacturer name. 2 to 100 characters."
618
+ },
619
+ "problems": {
620
+ "type": "string",
621
+ "enum": [
622
+ "patient",
623
+ "device"
624
+ ],
625
+ "description": "Patient health effects or device failures. Defaults to `\"patient\"`."
626
+ },
627
+ "limit": {
628
+ "type": "integer",
629
+ "description": "The most problems to return. From 1 to 25. Defaults to `10`."
630
+ }
631
+ },
632
+ "required": []
633
+ },
634
+ "example": {
635
+ "product_code": "QFG"
636
+ }
637
+ },
382
638
  {
383
639
  "name": "product_device_clearances",
384
640
  "path": "lookup/product-device-clearances",
@@ -415,14 +671,41 @@ export const LOOKUP_MANIFEST = [
415
671
  "limit": 2
416
672
  }
417
673
  },
674
+ {
675
+ "name": "product_device_identifier",
676
+ "path": "lookup/product-device-identifier",
677
+ "title": "Device Identifier",
678
+ "description": "Returns the US Food and Drug Administration’s identification record for a medical device, by the device identifier or GS1 barcode text on its label: brand, model, labeler, package levels, distribution status, product codes, premarket submission numbers and labeling flags such as sterility, latex and MRI safety. Device naming terms and contacts are excluded. Supply exactly one of device_identifier or udi; udi reads GS1 labels only. A package identifier returns the device inside it; matched_type says which level matched. Lot, serial and dates on a label are not in the database and are not returned. An unknown identifier returns found: false. The source refreshes weekly.",
679
+ "inputSchema": {
680
+ "type": "object",
681
+ "properties": {
682
+ "device_identifier": {
683
+ "type": "string",
684
+ "description": "The device identifier (DI) printed on the label, for example 04063006002252. For HIBCC labels, leave out the leading + and the trailing check character."
685
+ },
686
+ "udi": {
687
+ "type": "string",
688
+ "description": "The full UDI text from a GS1 label, human-readable such as (01)00357599000172(17)250531(10)ABC123 or as scanned. 16 to 200 characters."
689
+ }
690
+ },
691
+ "required": []
692
+ },
693
+ "example": {
694
+ "device_identifier": "04063006002252"
695
+ }
696
+ },
418
697
  {
419
698
  "name": "place_disasters",
420
699
  "path": "lookup/place-disasters",
421
700
  "title": "Disaster Declarations",
422
- "description": "Lists the federal disaster declarations (floods, hurricanes, fires, storms, earthquakes and more) that covered a US county, newest first, from the US Federal Emergency Management Agency. Declarations that cover a whole state are included for every county in it and marked `statewide`. `total` counts every match and can exceed the page returned. Use it to check the hazard history of a property, a policy or a claim location. Both `state` and `county` are required. Narrow with `incident_type` (for example Flood, Hurricane, Fire) and a declaration date range. A county with no declarations is a completed result with `total` 0.",
701
+ "description": "Lists the federal disaster declarations (floods, hurricanes, fires, storms, earthquakes and more) that covered a US county, newest first, from the US Federal Emergency Management Agency. Declarations that cover a whole state are included for every county in it and marked `statewide`. `total` counts every match and can exceed the page returned. This product uses the Federal Emergency Management Agency’s OpenFEMA API, but is not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's website(s). Use it to check the hazard history of a property, a policy or a claim location. Give either a `place_id` from `place_resolve`, or both `state` and `county`; never both forms. Narrow with `incident_type` (for example Flood, Hurricane, Fire) and a declaration date range. A county with no declarations is a completed result with `total` 0.",
423
702
  "inputSchema": {
424
703
  "type": "object",
425
704
  "properties": {
705
+ "place_id": {
706
+ "type": "string",
707
+ "description": "OneShot place id returned by place_resolve; use instead of state and county"
708
+ },
426
709
  "state": {
427
710
  "type": "string",
428
711
  "description": "State postal code. A state is its two-letter postal code, for example TX."
@@ -448,10 +731,7 @@ export const LOOKUP_MANIFEST = [
448
731
  "description": "Most declarations to return, newest first. Default 25. From 1 to 100."
449
732
  }
450
733
  },
451
- "required": [
452
- "state",
453
- "county"
454
- ]
734
+ "required": []
455
735
  },
456
736
  "example": {
457
737
  "state": "TX",
@@ -462,6 +742,71 @@ export const LOOKUP_MANIFEST = [
462
742
  "limit": 1
463
743
  }
464
744
  },
745
+ {
746
+ "name": "company_domain_registration",
747
+ "path": "lookup/company-domain-registration",
748
+ "title": "Domain Registration",
749
+ "description": "Returns the registry record of a registered domain name through the Registration Data Access Protocol: registrar, registration, expiry and last-change dates, status codes, nameservers and whether DNSSEC is on. It never returns the registrant's name or contacts. Covers top-level domains whose registry is listed in the IANA RDAP directory with an https server; others answer rdap_available false. Give the registered name itself, not a web address or a host under it: a host under a registered name (www.example.com) answers not found. Give an internationalized name in its `xn--` form. `found` false with `rdap_available` true means the registry has no registration for that exact name. `rdap_available` false means the tool could not ask: the IANA RDAP directory lists no registry server for the top-level domain, or lists one reachable over http only (the tool asks over https alone). It does not mean the name is free. Status codes are in the registry's words, for example `client transfer prohibited`. Dates are `YYYY-MM-DD` UTC; a date the registry does not state is null. The registry record carries no owner: the registrant's name and contacts are never returned.",
750
+ "inputSchema": {
751
+ "type": "object",
752
+ "properties": {
753
+ "domain": {
754
+ "type": "string",
755
+ "description": "The registered domain name, for example lockheedmartin.com. Give the name itself, not a web address or a host under it (www.example.com answers not found); an internationalized name in its xn-- form. A registered domain name in lower-case ASCII, such as lockheedmartin.com."
756
+ },
757
+ "fresh": {
758
+ "type": "boolean",
759
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
760
+ }
761
+ },
762
+ "required": [
763
+ "domain"
764
+ ]
765
+ },
766
+ "example": {
767
+ "domain": "lockheedmartin.com"
768
+ }
769
+ },
770
+ {
771
+ "name": "place_drinking_water",
772
+ "path": "lookup/place-drinking-water",
773
+ "title": "Drinking Water",
774
+ "description": "Returns public water systems serving a US county and their drinking water compliance records from the US Environmental Protection Agency, largest population first. Includes enforcement priority, violation categories, contaminants and inspection dates. Reports follow quarterly state submissions and can lag by three to six months. Data follow state reports quarterly and can lag by three to six months. Counts describe the latest official quarter or the stated three- or five-year period, with no source history. A system is listed for every county it serves, so a large utility can appear under several counties. The counts cover every matched system, not only those returned. The list has at most `limit` systems, largest population served first. By default, only active community systems serving residents year round are included. Use `system_type: all` for schools, workplaces and rest stops with their own wells; use `include_inactive: true` to include inactive systems.",
775
+ "inputSchema": {
776
+ "type": "object",
777
+ "properties": {
778
+ "county_fips": {
779
+ "type": "string",
780
+ "description": "Five-digit state plus county code, the county_id returned by Place Resolve (place_resolve), for example 26049 for Genesee County, Michigan"
781
+ },
782
+ "system_type": {
783
+ "type": "string",
784
+ "enum": [
785
+ "community",
786
+ "non_transient_non_community",
787
+ "transient_non_community",
788
+ "all"
789
+ ],
790
+ "description": "Community serves residents year round; non-transient non-community includes schools and workplaces; transient non-community includes rest stops and restaurants; all includes every type. Defaults to `\"community\"`."
791
+ },
792
+ "include_inactive": {
793
+ "type": "boolean",
794
+ "description": "Include inactive systems as well as active systems. Defaults to `false`."
795
+ },
796
+ "limit": {
797
+ "type": "integer",
798
+ "description": "How many systems to return, largest population first. From 1 to 25. Defaults to `10`."
799
+ }
800
+ },
801
+ "required": [
802
+ "county_fips"
803
+ ]
804
+ },
805
+ "example": {
806
+ "county_fips": "26049",
807
+ "limit": 3
808
+ }
809
+ },
465
810
  {
466
811
  "name": "market_drug_acquisition_cost",
467
812
  "path": "lookup/market-drug-acquisition-cost",
@@ -516,33 +861,92 @@ export const LOOKUP_MANIFEST = [
516
861
  }
517
862
  },
518
863
  {
519
- "name": "product_drug_shortages",
520
- "path": "lookup/product-drug-shortages",
521
- "title": "Drug Shortages",
522
- "description": "Says whether the US Food and Drug Administration lists a drug as in shortage, matched by generic or brand name: each presentation's status, availability, company, dosage form, package NDC, reason and dates. A drug that is not listed is not in shortage on this list, which says nothing about a particular pharmacy's stock. A name of several words is matched as a phrase. `status` narrows the list to `current` shortages, drugs `to_be_discontinued` or shortages that are `resolved`. Each listed presentation gives the generic name, the brand names, the company, the status, whether it is available, the dosage form, the presentation and its package NDC, the therapeutic categories, the reason it is short, any related information and the dates it was first posted and last updated. Most recently updated first. `total` is how many presentations matched, including any beyond `limit`, and is 0 when the drug is not on the list. The source says its data must not be relied on for decisions about medical care.",
864
+ "name": "product_drug_equivalents",
865
+ "path": "lookup/product-drug-equivalents",
866
+ "title": "Drug Equivalents",
867
+ "description": "Returns the US Food and Drug Administration’s therapeutic equivalence ratings from the Orange Book for a drug, by brand name or active ingredients: every approved product with the same ingredients, grouped by strength, dosage form and route, with its equivalence code, reference drug, marketing status, and exclusivity and patent expiry dates. Not medical or legal advice. A code starting with A rates equivalence to others in its group with the same code (AB1 only to AB1). B means not rated equivalent. Empty codes mean no rating, including single-source or discontinued products. Exclusivity and patent codes such as PED, NCE and PC are the Orange Book’s own and are not explained here. A brand resolves to full ingredient names; all brands and generics with those ingredients are returned, including other dosage forms. Discontinued products are excluded unless asked. For the product’s label use Drug Label. The source refreshes monthly; truncated indicates more records than the source returned.",
523
868
  "inputSchema": {
524
869
  "type": "object",
525
870
  "properties": {
526
- "drug_name": {
871
+ "brand_name": {
527
872
  "type": "string",
528
- "description": "The drug's generic or brand name, for example quinapril or sodium chloride. 2 to 100 characters."
873
+ "description": "Brand to resolve to its full ingredient names. 2 to 100 characters."
529
874
  },
530
- "status": {
531
- "type": "string",
532
- "enum": [
533
- "current",
534
- "to_be_discontinued",
535
- "resolved"
536
- ],
537
- "description": "Only presentations with this status; all statuses when omitted"
875
+ "ingredients": {
876
+ "type": "array",
877
+ "items": {
878
+ "type": "string"
879
+ },
880
+ "description": "Active ingredient names, each matched as a whole-word phrase"
538
881
  },
539
- "limit": {
540
- "type": "integer",
541
- "description": "The most presentations to return. From 1 to 25. Defaults to `10`."
882
+ "include_discontinued": {
883
+ "type": "boolean",
884
+ "description": "Include discontinued products. Defaults to `false`."
542
885
  }
543
886
  },
544
- "required": [
545
- "drug_name"
887
+ "required": []
888
+ },
889
+ "example": {
890
+ "ingredients": [
891
+ "apixaban"
892
+ ]
893
+ }
894
+ },
895
+ {
896
+ "name": "product_drug_label",
897
+ "path": "lookup/product-drug-label",
898
+ "title": "Drug Label",
899
+ "description": "Returns a US drug product’s listing from the US Food and Drug Administration’s National Drug Code Directory, by NDC or name: ingredients and strengths, labeller, dosage form, route, marketing category and package codes. An NDC lookup adds key sections of the current label, each cut to 2,000 characters. Label text is the manufacturer’s, not medical advice. Give the dashed product or package NDC. A package NDC returns its whole product. Undashed billing NDCs cannot be converted without knowing which segment was padded. A name search returns products only; call again with an NDC for the label. Some listings have no linked label and return label: null. The label is the source’s current version, which can lag the listing. For prices use Drug Acquisition Cost; for equivalents use Drug Equivalents. The source says its unvalidated data must not guide medical care.",
900
+ "inputSchema": {
901
+ "type": "object",
902
+ "properties": {
903
+ "ndc": {
904
+ "type": "string",
905
+ "description": "Dashed product or package NDC, for example 70247-019 or 50580-449-10"
906
+ },
907
+ "name": {
908
+ "type": "string",
909
+ "description": "Brand or generic name, matched as a phrase. 2 to 100 characters."
910
+ },
911
+ "limit": {
912
+ "type": "integer",
913
+ "description": "Most products for a name search; ignored for NDC. From 1 to 10. Defaults to `5`."
914
+ }
915
+ },
916
+ "required": []
917
+ },
918
+ "example": {
919
+ "ndc": "70247-019"
920
+ }
921
+ },
922
+ {
923
+ "name": "product_drug_shortages",
924
+ "path": "lookup/product-drug-shortages",
925
+ "title": "Drug Shortages",
926
+ "description": "Says whether the US Food and Drug Administration lists a drug as in shortage, matched by generic or brand name: each presentation's status, availability, company, dosage form, package NDC, reason and dates. A drug that is not listed is not in shortage on this list, which says nothing about a particular pharmacy's stock. A name of several words is matched as a phrase. `status` narrows the list to `current` shortages, drugs `to_be_discontinued` or shortages that are `resolved`. Each listed presentation gives the generic name, the brand names, the company, the status, whether it is available, the dosage form, the presentation and its package NDC, the therapeutic categories, the reason it is short, any related information and the dates it was first posted and last updated. Most recently updated first. `total` is how many presentations matched, including any beyond `limit`, and is 0 when the drug is not on the list. The source says its data must not be relied on for decisions about medical care.",
927
+ "inputSchema": {
928
+ "type": "object",
929
+ "properties": {
930
+ "drug_name": {
931
+ "type": "string",
932
+ "description": "The drug's generic or brand name, for example quinapril or sodium chloride. 2 to 100 characters."
933
+ },
934
+ "status": {
935
+ "type": "string",
936
+ "enum": [
937
+ "current",
938
+ "to_be_discontinued",
939
+ "resolved"
940
+ ],
941
+ "description": "Only presentations with this status; all statuses when omitted"
942
+ },
943
+ "limit": {
944
+ "type": "integer",
945
+ "description": "The most presentations to return. From 1 to 25. Defaults to `10`."
946
+ }
947
+ },
948
+ "required": [
949
+ "drug_name"
546
950
  ]
547
951
  },
548
952
  "example": {
@@ -628,6 +1032,91 @@ export const LOOKUP_MANIFEST = [
628
1032
  "limit": 1
629
1033
  }
630
1034
  },
1035
+ {
1036
+ "name": "product_energy_certification",
1037
+ "path": "lookup/product-energy-certification",
1038
+ "title": "Energy Efficiency Certification",
1039
+ "description": "Returns whether a product model is on the US Environmental Protection Agency’s current ENERGY STAR certified list, by category and brand, model number, UPC or ENERGY STAR ID, with the certification date, markets and the list’s published efficiency figures. all_categories searches every category but returns no figures. Delisted models are not shown. Supply at least one of brand, model_number, upc or energy_star_id. Brand and model number match as parts of the listed values; model numbers also match the additional model designations. Listed model numbers may use * for a variable character, so give the fixed leading part when an exact number does not match. Figures are the list’s own columns, so they differ by category. Not found means the model is not on the current list (never certified, or delisted), not that it failed a test. heat_pumps matches the outdoor unit’s brand. The lists refresh daily. The list shows certification status and is not an endorsement.",
1040
+ "inputSchema": {
1041
+ "type": "object",
1042
+ "properties": {
1043
+ "category": {
1044
+ "type": "string",
1045
+ "enum": [
1046
+ "refrigerators",
1047
+ "freezers",
1048
+ "dishwashers",
1049
+ "clothes_washers",
1050
+ "clothes_dryers",
1051
+ "combination_washer_dryers",
1052
+ "room_air_conditioners",
1053
+ "dehumidifiers",
1054
+ "room_air_cleaners",
1055
+ "electric_cooking_products",
1056
+ "televisions",
1057
+ "displays",
1058
+ "computers",
1059
+ "imaging_equipment",
1060
+ "telephones",
1061
+ "smart_thermostats",
1062
+ "ceiling_fans",
1063
+ "ventilating_fans",
1064
+ "downlights",
1065
+ "water_heaters",
1066
+ "heat_pumps",
1067
+ "geothermal_heat_pumps",
1068
+ "furnaces",
1069
+ "boilers",
1070
+ "pool_pumps",
1071
+ "ev_chargers",
1072
+ "storm_windows",
1073
+ "commercial_refrigerators_freezers",
1074
+ "commercial_dishwashers",
1075
+ "commercial_ice_machines",
1076
+ "commercial_ovens",
1077
+ "commercial_fryers",
1078
+ "commercial_griddles",
1079
+ "commercial_steam_cookers",
1080
+ "commercial_hot_food_holding_cabinets",
1081
+ "commercial_coffee_brewers",
1082
+ "water_coolers",
1083
+ "commercial_water_heaters",
1084
+ "commercial_boilers",
1085
+ "all_categories"
1086
+ ],
1087
+ "description": "The product category; all_categories answers whether a model is certified in any category but returns no efficiency figures"
1088
+ },
1089
+ "brand": {
1090
+ "type": "string",
1091
+ "description": "The brand, matched case-insensitively as part of the listed brand name. 2 to 60 characters."
1092
+ },
1093
+ "model_number": {
1094
+ "type": "string",
1095
+ "description": "The model number, matched as part of the listed model number or additional model designations. Listed model numbers can use * for a variable character, so give the fixed leading part when an exact number does not match. 2 to 40 characters."
1096
+ },
1097
+ "upc": {
1098
+ "type": "string",
1099
+ "description": "A UPC, matched as part of the listed UPCs"
1100
+ },
1101
+ "energy_star_id": {
1102
+ "type": "string",
1103
+ "description": "The ENERGY STAR Unique ID"
1104
+ },
1105
+ "limit": {
1106
+ "type": "integer",
1107
+ "description": "The most models to return. From 1 to 25. Defaults to `10`."
1108
+ }
1109
+ },
1110
+ "required": [
1111
+ "category"
1112
+ ]
1113
+ },
1114
+ "example": {
1115
+ "category": "televisions",
1116
+ "brand": "Samsung",
1117
+ "limit": 2
1118
+ }
1119
+ },
631
1120
  {
632
1121
  "name": "company_environmental_compliance",
633
1122
  "path": "lookup/company-environmental-compliance",
@@ -647,6 +1136,10 @@ export const LOOKUP_MANIFEST = [
647
1136
  "limit": {
648
1137
  "type": "integer",
649
1138
  "description": "How many facilities to return. From 1 to 25. Defaults to `10`."
1139
+ },
1140
+ "fresh": {
1141
+ "type": "boolean",
1142
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
650
1143
  }
651
1144
  },
652
1145
  "required": [
@@ -659,6 +1152,57 @@ export const LOOKUP_MANIFEST = [
659
1152
  "limit": 3
660
1153
  }
661
1154
  },
1155
+ {
1156
+ "name": "place_environmental_sites",
1157
+ "path": "lookup/place-environmental-sites",
1158
+ "title": "Environmental Sites",
1159
+ "description": "Returns environmental sites and compliance records from the US Environmental Protection Agency near a point or in a ZIP code or county. Includes facility counts, violations, five-year penalties and up to 25 facilities ordered by noncompliance, Superfund status or toxic releases and transfers. Brownfields are not covered. Each program count is a count of facilities; a facility can be in several programs. Superfund sites are listed but not counted in `by_program`: the source gives no Superfund total. Use `order: superfund` to bring Superfund sites first, or `order: toxic_releases` for the largest combined on-site releases and off-site transfers. Brownfields are not covered. A county search matches recorded county or coordinates, so a few facilities may be recorded under another county name. An area too large for one search is refused: use a point with a smaller radius or a ZIP code. Counts and total penalties cover every matched facility, including those beyond `limit`. Programs refresh weekly; current state and five-year enforcement counts are provided, with no source history.",
1160
+ "inputSchema": {
1161
+ "type": "object",
1162
+ "properties": {
1163
+ "latitude": {
1164
+ "type": "number",
1165
+ "description": "Point latitude in decimal degrees; give longitude too. From -90 to 90."
1166
+ },
1167
+ "longitude": {
1168
+ "type": "number",
1169
+ "description": "Point longitude in decimal degrees, west negative; give latitude too. From -180 to 180."
1170
+ },
1171
+ "radius_km": {
1172
+ "type": "number",
1173
+ "description": "Point search radius in kilometres, default 2; only with latitude and longitude. From 0.2 to 16."
1174
+ },
1175
+ "zip_code": {
1176
+ "type": "string",
1177
+ "description": "Five-digit facility ZIP code; placeholder ZIP codes 00000 and 99999 are refused"
1178
+ },
1179
+ "county_fips": {
1180
+ "type": "string",
1181
+ "description": "Five-digit state plus county code, the county_id returned by Place Resolve (place_resolve), for example 51059"
1182
+ },
1183
+ "order": {
1184
+ "type": "string",
1185
+ "enum": [
1186
+ "noncompliance",
1187
+ "superfund",
1188
+ "toxic_releases"
1189
+ ],
1190
+ "description": "Most quarters in noncompliance, Superfund sites, or largest combined on-site toxic releases and off-site transfers first. Defaults to `\"noncompliance\"`."
1191
+ },
1192
+ "limit": {
1193
+ "type": "integer",
1194
+ "description": "How many facilities to return. From 1 to 25. Defaults to `10`."
1195
+ }
1196
+ },
1197
+ "required": []
1198
+ },
1199
+ "example": {
1200
+ "latitude": 43.08,
1201
+ "longitude": -78.95,
1202
+ "radius_km": 3,
1203
+ "limit": 3
1204
+ }
1205
+ },
662
1206
  {
663
1207
  "name": "company_fda_registration",
664
1208
  "path": "lookup/company-fda-registration",
@@ -686,6 +1230,10 @@ export const LOOKUP_MANIFEST = [
686
1230
  "limit": {
687
1231
  "type": "integer",
688
1232
  "description": "The most establishments to return. From 1 to 10. Defaults to `3`."
1233
+ },
1234
+ "fresh": {
1235
+ "type": "boolean",
1236
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
689
1237
  }
690
1238
  },
691
1239
  "required": []
@@ -729,6 +1277,10 @@ export const LOOKUP_MANIFEST = [
729
1277
  "limit": {
730
1278
  "type": "integer",
731
1279
  "description": "Most awards to return, largest first. From 1 to 25. Defaults to `10`."
1280
+ },
1281
+ "fresh": {
1282
+ "type": "boolean",
1283
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
732
1284
  }
733
1285
  },
734
1286
  "required": [
@@ -831,11 +1383,51 @@ export const LOOKUP_MANIFEST = [
831
1383
  "limit": 1
832
1384
  }
833
1385
  },
1386
+ {
1387
+ "name": "place_flood_claims",
1388
+ "path": "lookup/place-flood-claims",
1389
+ "title": "Flood Insurance Claims",
1390
+ "description": "Lists National Flood Insurance Program claims for a US ZIP code, county or census tract, newest loss first, from the US Federal Emergency Management Agency's redacted claims: loss date, flood event, cause, flood zone, amounts paid and damage. Total counts every match and can exceed the page returned. Claims are redacted; locations are approximate. This product uses the Federal Emergency Management Agency's OpenFEMA data but is not endorsed by FEMA. The claims are redacted by FEMA; they must not be used to identify a policyholder. Give exactly one area. Optional loss_after and loss_before include both dates; limit defaults to 25, at most 100. No claims returns total: 0. Coordinates are rounded by FEMA to 0.1 degree and can fall in the wrong county. The source county code may not reflect the individual county where the property is located. Flood Zone gives the map designation; Disaster Declarations gives declarations, not insurance payouts. Policies and paid-amount totals are not included. Do not attempt to reidentify individuals or reverse engineer the source data.",
1391
+ "inputSchema": {
1392
+ "type": "object",
1393
+ "properties": {
1394
+ "zip_code": {
1395
+ "type": "string",
1396
+ "description": "Five-digit ZIP code"
1397
+ },
1398
+ "county_fips": {
1399
+ "type": "string",
1400
+ "description": "Five-digit county FIPS code"
1401
+ },
1402
+ "census_tract": {
1403
+ "type": "string",
1404
+ "description": "Eleven-digit census tract GEOID"
1405
+ },
1406
+ "loss_after": {
1407
+ "type": "string",
1408
+ "description": "Losses on or after this date, YYYY-MM-DD. Use YYYY-MM-DD."
1409
+ },
1410
+ "loss_before": {
1411
+ "type": "string",
1412
+ "description": "Losses on or before this date, YYYY-MM-DD. Use YYYY-MM-DD."
1413
+ },
1414
+ "limit": {
1415
+ "type": "integer",
1416
+ "description": "Most claims returned, newest loss first; default 25. From 1 to 100."
1417
+ }
1418
+ },
1419
+ "required": []
1420
+ },
1421
+ "example": {
1422
+ "zip_code": "23452",
1423
+ "limit": 2
1424
+ }
1425
+ },
834
1426
  {
835
1427
  "name": "place_flood_zone",
836
1428
  "path": "lookup/place-flood-zone",
837
1429
  "title": "Flood Zone",
838
- "description": "Returns the flood hazard zone at a point from the flood hazard map of the US Federal Emergency Management Agency: the zone, its subtype, whether the point is in a special flood hazard area, the base flood elevation when stated and the map. This is a screening aid, not a flood determination: never base lending or insurance decisions on it. Give coordinates, not an address; Place Resolve returns the coordinates for an address. Covers US areas with a published flood hazard map. `mapped` is false when no map covers the point. When more than one zone covers the point, the first is returned and `overlapping_zones` gives the count.",
1430
+ "description": "Returns the flood hazard zone at a point from the flood hazard map of the US Federal Emergency Management Agency: the zone, its subtype, whether the point is in a special flood hazard area, the base flood elevation when stated and the map. This is a screening aid, not a flood determination: never base lending or insurance decisions on it. This product uses the Federal Emergency Management Agency’s OpenFEMA API, but is not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's website(s). Give coordinates, not an address; Place Resolve returns the coordinates for an address. Covers US areas with a published flood hazard map. `mapped` is false when no map covers the point. When more than one zone covers the point, the first is returned and `overlapping_zones` gives the count.",
839
1431
  "inputSchema": {
840
1432
  "type": "object",
841
1433
  "properties": {
@@ -1203,6 +1795,92 @@ export const LOOKUP_MANIFEST = [
1203
1795
  "limit": 1
1204
1796
  }
1205
1797
  },
1798
+ {
1799
+ "name": "place_hail_wind_reports",
1800
+ "path": "lookup/place-hail-wind-reports",
1801
+ "title": "Hail and Wind Reports",
1802
+ "description": "Lists the hail, damaging wind and tornado reports US National Weather Service offices filed in the last 24, 48 or 72 hours near a latitude and longitude or in a state, newest first: size or speed, time, place, office and remarks. Reports are preliminary and unverified and may repeat one event. Older reports are not kept; use Storm Events. Use it to check whether hail, a damaging gust or a tornado was reported near a property, a claim site or a route stop in the last day or three. Give a point (`latitude`, `longitude`, with `radius_km` 1 to 250, default 25) or a `state` (two-letter code), not both. `hours` is 24, 48 or 72 (default 24). `types` narrows to `hail`, `wind` or `tornado`; default all three. `magnitude` is hail size in inches or wind speed in mph (`magnitude_units` says which); damage and tornado reports carry no magnitude. `location` is the source's short place text, cut at 23 characters. `truncated` true means more reports matched than `limit`. A point or state with nothing reported is a completed result with `total` 0.",
1803
+ "inputSchema": {
1804
+ "type": "object",
1805
+ "properties": {
1806
+ "latitude": {
1807
+ "type": "number",
1808
+ "description": "Latitude in decimal degrees, for example 35.687. From 17 to 72."
1809
+ },
1810
+ "longitude": {
1811
+ "type": "number",
1812
+ "description": "Longitude in decimal degrees (west is negative), for example -105.938. From -180 to -64."
1813
+ },
1814
+ "radius_km": {
1815
+ "type": "number",
1816
+ "description": "Distance from the point in kilometres. From 1 to 250. Defaults to `25`."
1817
+ },
1818
+ "state": {
1819
+ "type": "string",
1820
+ "description": "Two-letter state code, for example NM. Two capital letters."
1821
+ },
1822
+ "hours": {
1823
+ "type": "integer",
1824
+ "description": "How far back to look: 24, 48 or 72. Defaults to `24`."
1825
+ },
1826
+ "types": {
1827
+ "type": "array",
1828
+ "items": {
1829
+ "type": "string",
1830
+ "enum": [
1831
+ "hail",
1832
+ "wind",
1833
+ "tornado"
1834
+ ]
1835
+ },
1836
+ "description": "Report categories to return. Defaults to `[\"hail\",\"wind\",\"tornado\"]`."
1837
+ },
1838
+ "limit": {
1839
+ "type": "integer",
1840
+ "description": "Most reports to return. From 1 to 100. Defaults to `50`."
1841
+ }
1842
+ },
1843
+ "required": []
1844
+ },
1845
+ "example": {
1846
+ "latitude": 35.687,
1847
+ "longitude": -105.938,
1848
+ "radius_km": 25,
1849
+ "hours": 72,
1850
+ "limit": 2
1851
+ }
1852
+ },
1853
+ {
1854
+ "name": "place_hazard_risk",
1855
+ "path": "lookup/place-hazard-risk",
1856
+ "title": "Hazard Risk",
1857
+ "description": "Returns FEMA's National Risk Index for a US county or census tract, from the US Federal Emergency Management Agency: composite risk, expected annual loss, social vulnerability, community resilience and risk, loss and frequency for 18 natural hazards. Scores are national percentiles. For planning, not a local risk assessment. This product uses the Federal Emergency Management Agency's National Risk Index data but is not endorsed by FEMA, and FEMA cannot vouch for the data or analyses derived from it after retrieval. The index is for planning only and is not a substitute for a local risk assessment. Give exactly one county, tract or coordinate pair. A point answers for its 2020 census tract; Place Resolve gives coordinates for an address. Unknown areas return found: false. Flood Zone gives one hazard’s map at a point; Disaster Declarations lists past declared events. Annual frequency is events or event-days per year, as defined for each hazard by the index. Population is from 2020. Do not attempt to reidentify individuals or reverse engineer the source data.",
1858
+ "inputSchema": {
1859
+ "type": "object",
1860
+ "properties": {
1861
+ "county_fips": {
1862
+ "type": "string",
1863
+ "description": "Five-digit county FIPS code"
1864
+ },
1865
+ "census_tract": {
1866
+ "type": "string",
1867
+ "description": "Eleven-digit 2020 census tract GEOID"
1868
+ },
1869
+ "latitude": {
1870
+ "type": "number",
1871
+ "description": "Latitude in decimal degrees. From -90 to 90."
1872
+ },
1873
+ "longitude": {
1874
+ "type": "number",
1875
+ "description": "Longitude in decimal degrees. From -180 to 180."
1876
+ }
1877
+ },
1878
+ "required": []
1879
+ },
1880
+ "example": {
1881
+ "county_fips": "48201"
1882
+ }
1883
+ },
1206
1884
  {
1207
1885
  "name": "business_health_inspections",
1208
1886
  "path": "lookup/business-health-inspections",
@@ -1226,6 +1904,10 @@ export const LOOKUP_MANIFEST = [
1226
1904
  "limit": {
1227
1905
  "type": "integer",
1228
1906
  "description": "Most inspections to return per establishment. From 1 to 20. Defaults to `5`."
1907
+ },
1908
+ "fresh": {
1909
+ "type": "boolean",
1910
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
1229
1911
  }
1230
1912
  },
1231
1913
  "required": []
@@ -1266,6 +1948,10 @@ export const LOOKUP_MANIFEST = [
1266
1948
  "limit": {
1267
1949
  "type": "integer",
1268
1950
  "description": "Most providers to return from a name search. From 1 to 20. Defaults to `5`."
1951
+ },
1952
+ "fresh": {
1953
+ "type": "boolean",
1954
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
1269
1955
  }
1270
1956
  },
1271
1957
  "required": []
@@ -1301,6 +1987,10 @@ export const LOOKUP_MANIFEST = [
1301
1987
  "limit": {
1302
1988
  "type": "integer",
1303
1989
  "description": "Most providers to return. From 1 to 20. Defaults to `5`."
1990
+ },
1991
+ "fresh": {
1992
+ "type": "boolean",
1993
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
1304
1994
  }
1305
1995
  },
1306
1996
  "required": []
@@ -1309,6 +1999,98 @@ export const LOOKUP_MANIFEST = [
1309
1999
  "npi": "1881018208"
1310
2000
  }
1311
2001
  },
2002
+ {
2003
+ "name": "place_home_price_index",
2004
+ "path": "lookup/place-home-price-index",
2005
+ "title": "Home Price Index",
2006
+ "description": "Returns the percent change over the latest quarter, one year, five years and since 1991 in the index of home values of the US Federal Housing Finance Agency, with its rank, for a US state, a metropolitan area by name, or a census division or the nation. It gives percent changes for the latest quarter, not prices or index levels. This product uses FHFA Data but is neither endorsed nor certified by FHFA. Give exactly one of `state`, `metro` or `division`. `metro` matches a substring of the source's metro name, case-insensitively; up to 10 matches are returned in rank order and `more` says whether others matched. The answer does not name the quarter; the source publishes it quarterly. State and division changes come from the purchase-only, seasonally adjusted index; metro changes from the all-transactions, not seasonally adjusted index. Rank 1 is the largest one-year rise among `ranked_among` areas. A value the source leaves blank (too few sales) is null. A metro matching nothing gives `found: false`.",
2007
+ "inputSchema": {
2008
+ "type": "object",
2009
+ "properties": {
2010
+ "state": {
2011
+ "type": "string",
2012
+ "enum": [
2013
+ "AL",
2014
+ "AK",
2015
+ "AZ",
2016
+ "AR",
2017
+ "CA",
2018
+ "CO",
2019
+ "CT",
2020
+ "DE",
2021
+ "DC",
2022
+ "FL",
2023
+ "GA",
2024
+ "HI",
2025
+ "ID",
2026
+ "IL",
2027
+ "IN",
2028
+ "IA",
2029
+ "KS",
2030
+ "KY",
2031
+ "LA",
2032
+ "ME",
2033
+ "MD",
2034
+ "MA",
2035
+ "MI",
2036
+ "MN",
2037
+ "MS",
2038
+ "MO",
2039
+ "MT",
2040
+ "NE",
2041
+ "NV",
2042
+ "NH",
2043
+ "NJ",
2044
+ "NM",
2045
+ "NY",
2046
+ "NC",
2047
+ "ND",
2048
+ "OH",
2049
+ "OK",
2050
+ "OR",
2051
+ "PA",
2052
+ "RI",
2053
+ "SC",
2054
+ "SD",
2055
+ "TN",
2056
+ "TX",
2057
+ "UT",
2058
+ "VT",
2059
+ "VA",
2060
+ "WA",
2061
+ "WV",
2062
+ "WI",
2063
+ "WY"
2064
+ ],
2065
+ "description": "A two-letter US state code, or DC, for example MI"
2066
+ },
2067
+ "metro": {
2068
+ "type": "string",
2069
+ "description": "Words of a metropolitan area name, for example Detroit or Ann Arbor. 2 to 80 characters."
2070
+ },
2071
+ "division": {
2072
+ "type": "string",
2073
+ "enum": [
2074
+ "united_states",
2075
+ "new_england",
2076
+ "middle_atlantic",
2077
+ "east_north_central",
2078
+ "west_north_central",
2079
+ "south_atlantic",
2080
+ "east_south_central",
2081
+ "west_south_central",
2082
+ "mountain",
2083
+ "pacific"
2084
+ ],
2085
+ "description": "A US census division, or united_states for the nation"
2086
+ }
2087
+ },
2088
+ "required": []
2089
+ },
2090
+ "example": {
2091
+ "state": "MI"
2092
+ }
2093
+ },
1312
2094
  {
1313
2095
  "name": "place_hospitals",
1314
2096
  "path": "lookup/place-hospitals",
@@ -1336,41 +2118,138 @@ export const LOOKUP_MANIFEST = [
1336
2118
  }
1337
2119
  },
1338
2120
  {
1339
- "name": "company_legal_identifier",
1340
- "path": "lookup/company-legal-identifier",
1341
- "title": "Legal Entity Identifier",
1342
- "description": "Returns registered legal entities by legal name or 20-character Legal Entity Identifier, from the Global Legal Entity Identifier Foundation: identifier, names, status, jurisdiction, legal form, registration number and dates, how well the record is corroborated, and addresses. It answers whether an entity is the one you think and whether its registration is current. Parent and child relationships are not included. Give exactly one of `name` and `lei`. Each entity has its identifier, legal name and other names, entity status, jurisdiction, legal form code, registration number, creation date, the identifier's registration status, registration, last update and next renewal dates, how well the record is corroborated, and its legal and headquarters addresses. A name is a text match, so similarly named entities come back too: tell them apart by the identifier on each row, and prefer the identifier when you have it, since it is an exact match. `total` is the number of entities that matched, which may be more than `limit`. No match is a completed result with `total` 0 and an empty list. Covers legal entities that hold an identifier.",
2121
+ "name": "market_interest_rates",
2122
+ "path": "lookup/market-interest-rates",
2123
+ "title": "Interest Rates",
2124
+ "description": "Daily US overnight reference rates published by the Federal Reserve Bank of New York, in percent per year: SOFR, EFFR (with the FOMC target range), OBFR, TGCR, BGCR and the SOFR averages and index. Returns observations newest first for a date range or the most recent published days. OneShot is not affiliated with the New York Fed. The New York Fed does not sanction, endorse, or recommend any products or services offered by OneShot. The rate data is subject to the Terms of Use posted at newyorkfed.org; every answer carries the notice those terms require with any republication, in notice, and it must stay with the data when the answer is shown or passed on. Available rates are the secured overnight financing rate (sofr), the effective federal funds rate (effr, with the FOMC target range), the overnight bank funding rate (obfr), the tri-party general collateral rate (tgcr), the broad general collateral rate (bgcr) and the 30-, 90- and 180-day SOFR averages with the SOFR index (sofr_averages). Returns one observation per business day, newest first, either for a date range (at most 366 days, not in the future) or the last 1 to 30 published days. Each observation carries the rate, its 1st, 25th, 75th and 99th percentiles and the underlying volume in billions of US dollars where the source publishes them; fields that do not apply to a rate are null. revised is true when the source marks the day as revised. A range with no business days returns an empty list. Overnight rates (sofr, effr, obfr, tgcr, bgcr) are dated the business day they apply to and published the next US business day; sofr_averages is dated the day it is published and compounds SOFR through the previous business day. Source: Federal Reserve Bank of New York.",
1343
2125
  "inputSchema": {
1344
2126
  "type": "object",
1345
2127
  "properties": {
1346
- "lei": {
2128
+ "rate": {
1347
2129
  "type": "string",
1348
- "description": "The Legal Entity Identifier, for example DPRBOZP0K5RM2YE8UU08. An exact match; preferred over a name. A Legal Entity Identifier is 20 letters and digits."
2130
+ "enum": [
2131
+ "sofr",
2132
+ "effr",
2133
+ "obfr",
2134
+ "tgcr",
2135
+ "bgcr",
2136
+ "sofr_averages"
2137
+ ],
2138
+ "description": "Rate code: sofr, effr, obfr, tgcr, bgcr or sofr_averages"
1349
2139
  },
1350
- "name": {
2140
+ "start_date": {
1351
2141
  "type": "string",
1352
- "description": "Legal name, for example Lockheed Martin Corporation. A text match: similarly named entities are returned too. 2 to 200 characters."
2142
+ "description": "First date, YYYY-MM-DD; give both start_date and end_date or neither. YYYY-MM-DD."
1353
2143
  },
1354
- "limit": {
2144
+ "end_date": {
2145
+ "type": "string",
2146
+ "description": "Last date, YYYY-MM-DD, inclusive; at most 366 days after start_date and not in the future. YYYY-MM-DD."
2147
+ },
2148
+ "last": {
1355
2149
  "type": "integer",
1356
- "description": "Most entities to return. From 1 to 10. Defaults to `5`."
2150
+ "description": "Number of most recent published days, 1 to 30, used when no dates are given. From 1 to 30. Defaults to `5`."
1357
2151
  }
1358
2152
  },
1359
- "required": []
2153
+ "required": [
2154
+ "rate"
2155
+ ]
1360
2156
  },
1361
2157
  "example": {
1362
- "lei": "DPRBOZP0K5RM2YE8UU08"
2158
+ "rate": "sofr",
2159
+ "start_date": "2026-10-15",
2160
+ "end_date": "2026-10-16"
1363
2161
  }
1364
2162
  },
1365
2163
  {
1366
- "name": "business_liquor_license",
1367
- "path": "lookup/business-liquor-license",
1368
- "title": "Liquor License",
1369
- "description": "Returns active liquor licenses from the register of the New York State Liquor Authority, refreshed daily, by license id or part of a trade or legal name: class, premises, issue dates and expiration date. Pending and inactive licenses are not searched, so an empty list is not evidence that the location never held one. `state` is required and must be NY. Give at least one of `license_id` and `name`; the id takes precedence when both are given. Names are matched as stored, ignoring case, as a substring of the trade or legal name. Try a short distinctive fragment: SORLEY matches MC SORLEYS, but McSorley's does not. `zipcode` narrows either search. Returns at most `limit` licenses, newest last issue date first. Missing values are null; dates are YYYY-MM-DD. An empty licenses list is a completed result: no active license was found under that name or id.",
2164
+ "name": "place_jobs_wages",
2165
+ "path": "lookup/place-jobs-wages",
2166
+ "title": "Jobs and Wages",
2167
+ "description": "Returns, for a US county, state or the nation, the quarterly number of establishments, monthly employment, total wages and average weekly wage, and the average annual pay by year, from the Quarterly Census of Employment and Wages of the US Bureau of Labor Statistics. It covers jobs covered by unemployment insurance only, and the newest quarter is preliminary. BLS.gov cannot vouch for the data or analyses derived from these data after the data have been retrieved from BLS.gov. The source returns the last three calendar years; `quarters` and `annual_pay` are newest first. A value the source leaves blank is null. `total_wages_thousands` is in thousands of dollars, as published. An area, ownership or industry the source has no series for gives `found: false` and empty lists. Industry figures are published per ownership: a supersector with ownership `total` is refused. The source allows 25 keyless queries a day per address, shared by every caller.",
1370
2168
  "inputSchema": {
1371
2169
  "type": "object",
1372
2170
  "properties": {
1373
- "state": {
2171
+ "area_fips": {
2172
+ "type": "string",
2173
+ "description": "The area: a five-digit county FIPS code (26163 is Wayne County, Michigan), a two-digit state FIPS code followed by 000 (26000), or US000 for the nation. Place Resolve gives the county code of an address as `county_id`. area_fips is a five-digit county FIPS code, a state FIPS code followed by 000, or US000."
2174
+ },
2175
+ "ownership": {
2176
+ "type": "string",
2177
+ "enum": [
2178
+ "total",
2179
+ "private",
2180
+ "federal_government",
2181
+ "state_government",
2182
+ "local_government"
2183
+ ],
2184
+ "description": "Who employs: all owners, private employers, or federal, state or local government. Defaults to `\"total\"`."
2185
+ },
2186
+ "industry": {
2187
+ "type": "string",
2188
+ "enum": [
2189
+ "all",
2190
+ "natural_resources_and_mining",
2191
+ "construction",
2192
+ "manufacturing",
2193
+ "trade_transportation_and_utilities",
2194
+ "information",
2195
+ "financial_activities",
2196
+ "professional_and_business_services",
2197
+ "education_and_health_services",
2198
+ "leisure_and_hospitality",
2199
+ "other_services",
2200
+ "public_administration"
2201
+ ],
2202
+ "description": "The industry supersector, or all industries. Defaults to `\"all\"`."
2203
+ }
2204
+ },
2205
+ "required": [
2206
+ "area_fips"
2207
+ ]
2208
+ },
2209
+ "example": {
2210
+ "area_fips": "26163"
2211
+ }
2212
+ },
2213
+ {
2214
+ "name": "company_legal_identifier",
2215
+ "path": "lookup/company-legal-identifier",
2216
+ "title": "Legal Entity Identifier",
2217
+ "description": "Returns registered legal entities by legal name or 20-character Legal Entity Identifier, from the Global Legal Entity Identifier Foundation: identifier, names, status, jurisdiction, legal form, registration number and dates, how well the record is corroborated, and addresses. It answers whether an entity is the one you think and whether its registration is current. Parent and child relationships are not included. Give exactly one of `name` and `lei`. Each entity has its identifier, legal name and other names, entity status, jurisdiction, legal form code, registration number, creation date, the identifier's registration status, registration, last update and next renewal dates, how well the record is corroborated, and its legal and headquarters addresses. A name is a text match, so similarly named entities come back too: tell them apart by the identifier on each row, and prefer the identifier when you have it, since it is an exact match. `total` is the number of entities that matched, which may be more than `limit`. No match is a completed result with `total` 0 and an empty list. Covers legal entities that hold an identifier.",
2218
+ "inputSchema": {
2219
+ "type": "object",
2220
+ "properties": {
2221
+ "lei": {
2222
+ "type": "string",
2223
+ "description": "The Legal Entity Identifier, for example DPRBOZP0K5RM2YE8UU08. An exact match; preferred over a name. A Legal Entity Identifier is 20 letters and digits."
2224
+ },
2225
+ "name": {
2226
+ "type": "string",
2227
+ "description": "Legal name, for example Lockheed Martin Corporation. A text match: similarly named entities are returned too. 2 to 200 characters."
2228
+ },
2229
+ "limit": {
2230
+ "type": "integer",
2231
+ "description": "Most entities to return. From 1 to 10. Defaults to `5`."
2232
+ },
2233
+ "fresh": {
2234
+ "type": "boolean",
2235
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
2236
+ }
2237
+ },
2238
+ "required": []
2239
+ },
2240
+ "example": {
2241
+ "lei": "DPRBOZP0K5RM2YE8UU08"
2242
+ }
2243
+ },
2244
+ {
2245
+ "name": "business_liquor_license",
2246
+ "path": "lookup/business-liquor-license",
2247
+ "title": "Liquor License",
2248
+ "description": "Returns active liquor licenses from the register of the New York State Liquor Authority, refreshed daily, by license id or part of a trade or legal name: class, premises, issue dates and expiration date. Pending and inactive licenses are not searched, so an empty list is not evidence that the location never held one. `state` is required and must be NY. Give at least one of `license_id` and `name`; the id takes precedence when both are given. Names are matched as stored, ignoring case, as a substring of the trade or legal name. Try a short distinctive fragment: SORLEY matches MC SORLEYS, but McSorley's does not. `zipcode` narrows either search. Returns at most `limit` licenses, newest last issue date first. Missing values are null; dates are YYYY-MM-DD. An empty licenses list is a completed result: no active license was found under that name or id.",
2249
+ "inputSchema": {
2250
+ "type": "object",
2251
+ "properties": {
2252
+ "state": {
1374
2253
  "type": "string",
1375
2254
  "enum": [
1376
2255
  "NY"
@@ -1392,6 +2271,10 @@ export const LOOKUP_MANIFEST = [
1392
2271
  "limit": {
1393
2272
  "type": "integer",
1394
2273
  "description": "Most licences to return. From 1 to 25. Defaults to `10`."
2274
+ },
2275
+ "fresh": {
2276
+ "type": "boolean",
2277
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
1395
2278
  }
1396
2279
  },
1397
2280
  "required": [
@@ -1422,6 +2305,10 @@ export const LOOKUP_MANIFEST = [
1422
2305
  "limit": {
1423
2306
  "type": "integer",
1424
2307
  "description": "Most filings to return, newest posted first. From 1 to 25. Defaults to `10`."
2308
+ },
2309
+ "fresh": {
2310
+ "type": "boolean",
2311
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
1425
2312
  }
1426
2313
  },
1427
2314
  "required": [
@@ -1434,6 +2321,62 @@ export const LOOKUP_MANIFEST = [
1434
2321
  "limit": 1
1435
2322
  }
1436
2323
  },
2324
+ {
2325
+ "name": "market_medicare_drug_spending",
2326
+ "path": "lookup/market-medicare-drug-spending",
2327
+ "title": "Medicare Drug Spending",
2328
+ "description": "Returns Medicare Part D programme spending before rebates, by calendar year, from the US Centers for Medicare & Medicaid Services. Overall is the total across manufacturers; manufacturers can be included separately. Figures include spending, dosage units, claims, beneficiaries and average spending. The series updates annually and supplies the latest five calendar years. Provide brand_name, generic_name, or both. Both exact-match filters apply when both are supplied. Reads one source page of up to 50 rows, including manufacturer rows before filtering; broad matches may be incomplete. Empty source values become null. No match completes with drugs: [].",
2329
+ "inputSchema": {
2330
+ "type": "object",
2331
+ "properties": {
2332
+ "brand_name": {
2333
+ "type": "string",
2334
+ "description": "Exact brand name, for example Eliquis. 2 to 100 characters."
2335
+ },
2336
+ "generic_name": {
2337
+ "type": "string",
2338
+ "description": "Exact generic name, for example Apixaban. 2 to 100 characters."
2339
+ },
2340
+ "manufacturers": {
2341
+ "type": "boolean",
2342
+ "description": "Include per-manufacturer rows in addition to Overall totals. Defaults to `false`."
2343
+ }
2344
+ },
2345
+ "required": []
2346
+ },
2347
+ "example": {
2348
+ "brand_name": "Eliquis"
2349
+ }
2350
+ },
2351
+ {
2352
+ "name": "market_medicare_fees",
2353
+ "path": "lookup/market-medicare-fees",
2354
+ "title": "Medicare Fee Schedule",
2355
+ "description": "Returns the status indicator, relative value units, conversion factors and national payment amounts, before the locality adjustment, on Medicare's physician payment schedule for a procedure code and modifier. Non-facility is an office, where the practice bears the overhead; facility is a hospital or other facility paid separately for it. Codes and amounts only; procedure descriptions are licensed and not returned. Without a modifier, the rows with no modifier are returned; with one, only that modifier's rows (for example 26 for the professional component and TC for the technical component). From 2026 each code has one rate per conversion factor: one for qualifying alternative payment model participants and one for all other clinicians, in that order. Earlier years have one rate. A practice expense the source marks not applicable gives null practice expense, total and payment for that setting, never zero. When the Medicare Administrative Contractor sets the amount (status C, or L for a local code), both national payments are null. The relative value units are returned as the source lists them. The source is the US Centers for Medicare & Medicaid Services indicators table of the physician payment schedule for the year; locality adjustments are not applied. No match, including a code not on the schedule for the year, completes with rates: [] and a null status.",
2356
+ "inputSchema": {
2357
+ "type": "object",
2358
+ "properties": {
2359
+ "code": {
2360
+ "type": "string",
2361
+ "description": "Five-character procedure code, for example 99213 or G0439. five letters or digits."
2362
+ },
2363
+ "modifier": {
2364
+ "type": "string",
2365
+ "description": "Two-character modifier, for example 26 or TC; without it, rows with no modifier are returned. two letters or digits."
2366
+ },
2367
+ "year": {
2368
+ "type": "integer",
2369
+ "description": "Calendar year of the schedule; defaults to the newest published year. From 2025 to 2026. Defaults to `2026`."
2370
+ }
2371
+ },
2372
+ "required": [
2373
+ "code"
2374
+ ]
2375
+ },
2376
+ "example": {
2377
+ "code": "99213"
2378
+ }
2379
+ },
1437
2380
  {
1438
2381
  "name": "company_medicare_ownership",
1439
2382
  "path": "lookup/company-medicare-ownership",
@@ -1465,6 +2408,10 @@ export const LOOKUP_MANIFEST = [
1465
2408
  "limit": {
1466
2409
  "type": "integer",
1467
2410
  "description": "Most facilities to return. From 1 to 10. Defaults to `3`."
2411
+ },
2412
+ "fresh": {
2413
+ "type": "boolean",
2414
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
1468
2415
  }
1469
2416
  },
1470
2417
  "required": [
@@ -1491,6 +2438,10 @@ export const LOOKUP_MANIFEST = [
1491
2438
  "mc_number": {
1492
2439
  "type": "string",
1493
2440
  "description": "The carrier's motor carrier (MC) number, for example MC-1515. mc_number must be 1 to 8 digits, with an optional MC or MC- in front."
2441
+ },
2442
+ "fresh": {
2443
+ "type": "boolean",
2444
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
1494
2445
  }
1495
2446
  },
1496
2447
  "required": []
@@ -1499,6 +2450,68 @@ export const LOOKUP_MANIFEST = [
1499
2450
  "dot_number": "44110"
1500
2451
  }
1501
2452
  },
2453
+ {
2454
+ "name": "company_nonprofit_status",
2455
+ "path": "lookup/company-nonprofit-status",
2456
+ "title": "Nonprofit Status",
2457
+ "description": "Returns organizations in the US Internal Revenue Service's Tax Exempt Organization Search matching an EIN or name: whether each is listed as eligible for tax-deductible contributions, any automatic revocation of its exemption and reinstatement, its Form 990-N filings, and its filed annual returns with links to the public copies. Figures from the returns are in those copies, not here. Give exactly one of `ein` and `name`; `state` narrows a name search only. An EIN returns `profile`, the organization's full record, with `total` 1; `profile` is null and `total` 0 when the EIN is in none of the source's lists. A name returns `matches`, a list of organizations to pick from, alphabetical, each with the EIN to call again with; `profile` is then null. Listed in `publication_78` means the organization is eligible to receive tax-deductible contributions. An organization absent from every list may still be exempt: churches need not apply, and the exempt organizations master file is not searched here. A row in `revocations` does not mean the organization is still revoked: it may have been reinstated, so check `reinstated_on`. `exemption_subsection` is the section 501(c) subsection the exemption was under, for example 03 for a 501(c)(3). `form_990n_filings` keeps the newest five filings and `returns` the newest ten, newest first; each return has the form, the period it covers and a link to its public copy. Officer names and addresses are never returned. Dates are YYYY-MM-DD; one the source writes in an unreadable form is null.",
2458
+ "inputSchema": {
2459
+ "type": "object",
2460
+ "properties": {
2461
+ "ein": {
2462
+ "type": "string",
2463
+ "description": "The employer identification number, for example 53-0196605 or 530196605. An exact match that returns the full profile. An EIN is nine digits, with or without the dash."
2464
+ },
2465
+ "name": {
2466
+ "type": "string",
2467
+ "description": "The organization's name, for example American Red Cross. A text match; returns a list to pick from. 2 to 100 characters."
2468
+ },
2469
+ "state": {
2470
+ "type": "string",
2471
+ "description": "Two-letter state code to narrow a name search; only with `name`. A two-letter state code."
2472
+ },
2473
+ "limit": {
2474
+ "type": "integer",
2475
+ "description": "Most organizations to return for a name; ignored with an EIN. From 1 to 25. Defaults to `10`."
2476
+ },
2477
+ "fresh": {
2478
+ "type": "boolean",
2479
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
2480
+ }
2481
+ },
2482
+ "required": []
2483
+ },
2484
+ "example": {
2485
+ "ein": "530196605"
2486
+ }
2487
+ },
2488
+ {
2489
+ "name": "place_opportunity_zone",
2490
+ "path": "lookup/place-opportunity-zone",
2491
+ "title": "Opportunity Zone",
2492
+ "description": "Says whether a US census tract or point is in a Qualified Opportunity Zone designated by the US Department of the Treasury in 2018, as published by the US Department of Housing and Urban Development, with tract, state, county and rural flag. Tracts are from 2010. The 2027 designation round is not included. Give exactly one 2010 census tract GEOID or coordinate pair. A point answers for its 2010 tract; 2020 census tract ids can differ. A point outside every designated zone, including outside the United States, returns designated: false. Place Resolve gives coordinates for an address. Rural means identified as a rural census tract according to the US Treasury. This is not tax advice. HUD and the dataset and metadata authors assume no responsibility for the use or misuse of the dataset.",
2493
+ "inputSchema": {
2494
+ "type": "object",
2495
+ "properties": {
2496
+ "census_tract": {
2497
+ "type": "string",
2498
+ "description": "Eleven-digit 2010 census tract GEOID"
2499
+ },
2500
+ "latitude": {
2501
+ "type": "number",
2502
+ "description": "Latitude in decimal degrees. From -90 to 90."
2503
+ },
2504
+ "longitude": {
2505
+ "type": "number",
2506
+ "description": "Longitude in decimal degrees. From -180 to 180."
2507
+ }
2508
+ },
2509
+ "required": []
2510
+ },
2511
+ "example": {
2512
+ "census_tract": "48201532800"
2513
+ }
2514
+ },
1502
2515
  {
1503
2516
  "name": "place_resolve",
1504
2517
  "path": "resolve/place",
@@ -1649,6 +2662,40 @@ export const LOOKUP_MANIFEST = [
1649
2662
  "include_sequence": false
1650
2663
  }
1651
2664
  },
2665
+ {
2666
+ "name": "protein_interactions",
2667
+ "path": "lookup/protein-interactions",
2668
+ "title": "Protein Interactions",
2669
+ "description": "Returns a protein's interaction partners from the STRING network (CC BY 4.0, STRING consortium): the query protein and each partner with a combined confidence score (0 to 1) and per-channel scores. Scores combine experimental, curated and predicted (text-mining, co-expression) evidence, so a high score is not proof of physical binding. The data is for research, not medical advice. Evidence channels: experiments, curated databases, text mining, co-expression, genomic neighborhood, gene fusion and phylogenetic co-occurrence, each scored 0 to 1. identifier is a gene symbol (TP53) or a UniProt accession (P04637); taxon_id is human (9606) by default. Partners come in the source's order, highest combined score first, up to limit; min_score is the lowest combined score kept. An identifier the source cannot map in that organism returns no protein and an empty partner list. Only the source's own combined and channel scores are returned, never records from the databases it incorporates.",
2670
+ "inputSchema": {
2671
+ "type": "object",
2672
+ "properties": {
2673
+ "identifier": {
2674
+ "type": "string",
2675
+ "description": "A gene symbol or a UniProt accession, for example TP53 or P04637. Letters, digits, \".\", \"_\" and \"-\" only, 1 to 40."
2676
+ },
2677
+ "taxon_id": {
2678
+ "type": "integer",
2679
+ "description": "The organism as an NCBI Taxonomy ID; 9606 is human, 10090 is mouse. From 1 to 999999999. Defaults to `9606`."
2680
+ },
2681
+ "limit": {
2682
+ "type": "integer",
2683
+ "description": "Maximum partners returned. From 1 to 50. Defaults to `10`."
2684
+ },
2685
+ "min_score": {
2686
+ "type": "number",
2687
+ "description": "Lowest combined confidence score kept. From 0.15 to 1. Defaults to `0.4`."
2688
+ }
2689
+ },
2690
+ "required": [
2691
+ "identifier"
2692
+ ]
2693
+ },
2694
+ "example": {
2695
+ "identifier": "TP53",
2696
+ "limit": 1
2697
+ }
2698
+ },
1652
2699
  {
1653
2700
  "name": "protein_resolve",
1654
2701
  "path": "resolve/protein",
@@ -1671,122 +2718,671 @@ export const LOOKUP_MANIFEST = [
1671
2718
  },
1672
2719
  "limit": {
1673
2720
  "type": "integer",
1674
- "description": "The most matches to return. From 1 to 10. Defaults to `5`."
2721
+ "description": "The most matches to return. From 1 to 10. Defaults to `5`."
2722
+ }
2723
+ },
2724
+ "required": [
2725
+ "query"
2726
+ ]
2727
+ },
2728
+ "example": {
2729
+ "query": "TP53"
2730
+ }
2731
+ },
2732
+ {
2733
+ "name": "protein_sequence",
2734
+ "path": "lookup/protein-sequence",
2735
+ "title": "Protein Sequence",
2736
+ "description": "Returns the reference sequence UniProtKB holds for a protein, from UniProt under CC BY 4.0, attributed to the UniProt Consortium: the one-letter sequence, length, molecular weight in daltons, checksums, gene, organism and listed isoforms. It is never an individual's sequence. Medical or genetic information is for research and education only. Covers reviewed and unreviewed entries; an accession with an isoform suffix (P04637-2) returns that isoform’s sequence. The checksums are CRC64 and MD5. sequence_version and last_sequence_update describe the entry, also for an isoform. UniProt releases updates every eight weeks. Absent values are null. A merged, demerged or deleted accession returns no protein and the source’s inactive reason with any replacement accessions. No match, including an isoform the entry does not list, returns null for both.",
2737
+ "inputSchema": {
2738
+ "type": "object",
2739
+ "properties": {
2740
+ "accession": {
2741
+ "type": "string",
2742
+ "description": "The UniProt accession, for example P04637, or an isoform accession, for example P04637-2"
2743
+ }
2744
+ },
2745
+ "required": [
2746
+ "accession"
2747
+ ]
2748
+ },
2749
+ "example": {
2750
+ "accession": "P00001"
2751
+ }
2752
+ },
2753
+ {
2754
+ "name": "protein_structure",
2755
+ "path": "lookup/protein-structure",
2756
+ "title": "Protein Structure",
2757
+ "description": "Returns a protein's structures by UniProt accession: with `coverage` set to `experimental`, the newest RCSB Protein Data Bank entries with method, resolution, release date and files; with `predicted`, the EMBL-EBI predicted model with its confidence and files. A predicted model is a computed estimate, not an experimental structure: low-confidence regions should not be read as structure. `experimental` lists the newest entries in the Protein Data Bank that contain the protein, each with its title, experimental method, resolution in angstrom, release date, page and structure file, with `total` counting every matching entry. `predicted` returns the predicted model for the accession, with its version, creation date, residue range, mean confidence, the fraction of residues at each confidence level, and its structure and error-image files, or null when no model exists. Predicted models come from the predicted-structure database at EMBL-EBI, used under CC BY 4.0; experimental entries come from the RCSB Protein Data Bank. Use it to check whether a protein has a solved structure, to find the file to load into a viewer or a docking run, or to judge how far a predicted model can be trusted. Covers proteins with a UniProt accession. The sequence, alignment links and the names of the prediction software and its maker are not returned.",
2758
+ "inputSchema": {
2759
+ "type": "object",
2760
+ "properties": {
2761
+ "accession": {
2762
+ "type": "string",
2763
+ "description": "The UniProt accession of the protein, for example P04637. A UniProt accession is 6 or 10 letters and digits in the UniProt form."
2764
+ },
2765
+ "coverage": {
2766
+ "type": "string",
2767
+ "enum": [
2768
+ "experimental",
2769
+ "predicted"
2770
+ ],
2771
+ "description": "Which kind of structure: experimental (entries in the Protein Data Bank) or predicted (the predicted model)"
2772
+ },
2773
+ "limit": {
2774
+ "type": "integer",
2775
+ "description": "How many experimental structures to return, newest release first (1 to 25). Ignored for predicted. From 1 to 25. Defaults to `10`."
2776
+ }
2777
+ },
2778
+ "required": [
2779
+ "accession",
2780
+ "coverage"
2781
+ ]
2782
+ },
2783
+ "example": {
2784
+ "accession": "P04637",
2785
+ "coverage": "experimental",
2786
+ "limit": 2
2787
+ }
2788
+ },
2789
+ {
2790
+ "name": "record_publications_find",
2791
+ "path": "find/record-publications",
2792
+ "title": "Publications",
2793
+ "description": "Searches PubMed, the US National Library of Medicine's index of biomedical papers, newest or most relevant first: title, journal, dates, first three authors, DOI, PubMed Central id, publication types and link. Only citation fields are returned, never an abstract or full text. The answer lists what a public index holds: it is for research and is not medical advice. `total` is how many papers matched in all, including any beyond `limit`, and is 0 when none did. `query_translation` shows how the source expanded the search (MeSH terms, plurals, the year range). Field tags such as `[Title]` or `[MeSH Terms]` and `AND`, `OR` and `NOT` are passed to the source as written. Give `from_year`, `to_year` or both to keep papers published in those years; one alone is open on the other side. `sort` is `newest` (by publication date, the default) or `relevance`. Each paper also gives its author count. Registered studies are in `record_clinical_trials_find`; the papers NCBI links to one gene are in `gene_publications`.",
2794
+ "inputSchema": {
2795
+ "type": "object",
2796
+ "properties": {
2797
+ "query": {
2798
+ "type": "string",
2799
+ "description": "PubMed search text, for example semaglutide AND kidney; field tags such as [Title] or [MeSH Terms] and AND/OR/NOT are allowed. 2 to 300 characters."
2800
+ },
2801
+ "from_year": {
2802
+ "type": "integer",
2803
+ "description": "Only papers published in this year or later, no later than the current year. At least 1800."
2804
+ },
2805
+ "to_year": {
2806
+ "type": "integer",
2807
+ "description": "Only papers published in this year or earlier, no later than the current year. At least 1800."
2808
+ },
2809
+ "sort": {
2810
+ "type": "string",
2811
+ "enum": [
2812
+ "newest",
2813
+ "relevance"
2814
+ ],
2815
+ "description": "newest (by publication date) or relevance. Defaults to `\"newest\"`."
2816
+ },
2817
+ "limit": {
2818
+ "type": "integer",
2819
+ "description": "The most papers to return. From 1 to 20. Defaults to `10`."
2820
+ }
2821
+ },
2822
+ "required": [
2823
+ "query"
2824
+ ]
2825
+ },
2826
+ "example": {
2827
+ "query": "semaglutide AND kidney",
2828
+ "from_year": 2024,
2829
+ "to_year": 2026,
2830
+ "sort": "relevance",
2831
+ "limit": 3
2832
+ }
2833
+ },
2834
+ {
2835
+ "name": "place_radar_imagery",
2836
+ "path": "lookup/place-radar-imagery",
2837
+ "title": "Radar Imagery",
2838
+ "description": "Lists radar scenes newest first. Radar shows surface roughness and water, not colour; flood extent and ships stand out, but interpretation is the agent's job. Coverage counts acquisitions, not detected objects. An empty scene list means no recorded pass, so no evidence either way. Derived entries explain computed fields; other scene fields are observed. Contains Copernicus Sentinel-1 data under the Copernicus Sentinel Data licence. Credit: Copernicus and ESA; archive served by Alaska Satellite Facility. Sentinel-1 covers most land every 6 to 12 days; cloud and darkness do not prevent radar imaging. An acquisition does not prove visibility of every feature within its footprint. Give latitude and longitude or bbox, not both. Boxes must be at most 1 degree a side. since defaults to 30 days ago and may be at most 1 year back; limit defaults to 5, maximum 25. One search fetches at most limit plus one scenes. total counts that page, including the withheld extra scene, and is a lower bound when truncated is true. coverage.complete is false then. coverage.since and until are inclusive UTC dates. observed.scenes preserves the source metadata for every considered scene. latest, coverage, total, returned and truncated have provenance under derived. Each listed scene also explains its lowercase flight_direction and constructed scene_url under derived; observed.flight_direction preserves the source spelling. relative_orbit is ASF pathNumber, not the absolute orbit number. browse_url is a public JPEG checked without credentials during the build; null if the source supplies no verified public link. scene_url opens the ASF catalogue. Full-resolution downloads may need an Earthdata login. coverage.catalogue_available is true when the catalogue returned a valid response. An empty scenes list then means no matching acquisition in the requested window, never evidence of absence of floods, ships or other features. An unreachable catalogue, HTTP error or invalid response fails with a typed error instead of returning an empty result. This tool does not classify imagery.",
2839
+ "inputSchema": {
2840
+ "type": "object",
2841
+ "properties": {
2842
+ "latitude": {
2843
+ "type": "number",
2844
+ "description": "Latitude in decimal degrees; supply longitude too. From -90 to 90."
2845
+ },
2846
+ "longitude": {
2847
+ "type": "number",
2848
+ "description": "Longitude in decimal degrees. From -180 to 180."
2849
+ },
2850
+ "bbox": {
2851
+ "type": "array",
2852
+ "items": {
2853
+ "type": "number"
2854
+ },
2855
+ "description": "[west, south, east, north], at most 1 degree a side; instead of a point"
2856
+ },
2857
+ "since": {
2858
+ "type": "string",
2859
+ "description": "First UTC date, YYYY-MM-DD; defaults to 30 days ago, at most 1 year back"
2860
+ },
2861
+ "limit": {
2862
+ "type": "integer",
2863
+ "description": "Most scenes to return; default 5, maximum 25. From 1 to 25. Defaults to `5`."
2864
+ }
2865
+ },
2866
+ "required": []
2867
+ },
2868
+ "example": {
2869
+ "latitude": 34.05,
2870
+ "longitude": -118.25
2871
+ }
2872
+ },
2873
+ {
2874
+ "name": "place_recent_imagery",
2875
+ "path": "lookup/place-recent-imagery",
2876
+ "title": "Recent Imagery",
2877
+ "description": "Lists the Harmonized Landsat Sentinel-2 scenes NASA catalogued over a point or box since a date, newest first, at or under a cloud cover. Scene fields are observed; only latest is derived. Empty scenes with coverage.scenes_considered above zero means looked and nothing clear, scenes_too_cloudy and scenes_cloud_unknown say why; zero means no pass. coverage.complete false makes every count a lower bound. Landsat imagery courtesy of the US Geological Survey and NASA, public domain. Sentinel-2 imagery contains modified Copernicus Sentinel data, under the Copernicus Sentinel Data licence. Browse images are served by NASA LP DAAC and NASA GIBS. Scenes are 30 m; each product passes every 2 to 3 days. Open ocean and the poles are not imaged. derived.latest names its rule and the fields it reads. Give latitude and longitude, or bbox as [west, south, east, north] in decimal degrees at most 1 degree a side; not both. since (YYYY-MM-DD, UTC) defaults to 30 days before the call and may be at most 1 year back. max_cloud_pct (0 to 100) defaults to 20. limit defaults to 5, at most 25. coverage.scenes_considered counts every examined pass whatever its cloud; scenes_too_cloudy those above max_cloud_pct; scenes_cloud_unknown those the source gave no cloud figure for, which are never listed as clear. coverage.scenes_in_window is the catalogue's own count of passes in the window. When scenes_considered is zero the sensor had no pass: an empty list is then no evidence either way. At most the newest 200 passes per product are examined. coverage.complete is true when that is every pass in the window, so the counts and total are exact; false when older passes were left unexamined, so scenes_considered, scenes_too_cloudy, scenes_cloud_unknown and total are lower bounds and truncated is true. truncated is also true when clear scenes beyond limit were left out. A landsat browse_url is the granule browse JPEG. Sentinel-2 granules carry none, so their browse_url is a GIBS Worldview snapshot of the HLS Sentinel-2 layer over the scene footprint on the acquisition day: a daily composite, not the single granule. cloud_pct is the whole-scene figure the source reported; a clear scene may still have cloud over the exact point.",
2878
+ "inputSchema": {
2879
+ "type": "object",
2880
+ "properties": {
2881
+ "latitude": {
2882
+ "type": "number",
2883
+ "description": "Latitude in decimal degrees; give longitude too. From -90 to 90."
2884
+ },
2885
+ "longitude": {
2886
+ "type": "number",
2887
+ "description": "Longitude in decimal degrees; west is negative. From -180 to 180."
2888
+ },
2889
+ "bbox": {
2890
+ "type": "array",
2891
+ "items": {
2892
+ "type": "number"
2893
+ },
2894
+ "description": "[west, south, east, north] in decimal degrees, at most 1 degree a side; instead of a point"
2895
+ },
2896
+ "max_cloud_pct": {
2897
+ "type": "number",
2898
+ "description": "Highest scene cloud cover to list, in percent; fractions such as 20.5 are allowed. From 0 to 100. Defaults to `20`."
2899
+ },
2900
+ "since": {
2901
+ "type": "string",
2902
+ "description": "Earliest acquisition date (UTC); default 30 days before the call, at most 1 year back. Use YYYY-MM-DD."
2903
+ },
2904
+ "limit": {
2905
+ "type": "integer",
2906
+ "description": "Most scenes to return. From 1 to 25. Defaults to `5`."
2907
+ }
2908
+ },
2909
+ "required": []
2910
+ },
2911
+ "example": {
2912
+ "latitude": 34.05,
2913
+ "longitude": -118.25,
2914
+ "limit": 2
2915
+ }
2916
+ },
2917
+ {
2918
+ "name": "record_dockets_find",
2919
+ "path": "find/record-dockets",
2920
+ "title": "Regulatory Dockets",
2921
+ "description": "Searches the dockets of US federal agencies on the federal regulations portal, newest change first: docket id, agency, type (rulemaking or nonrulemaking), title, the date of its last change and a link. A docket is the file a rule or notice and its public comments sit in; this returns the dockets, not the documents or comments inside them. Optionally narrow by `agency` (its acronym, for example FAA or EPA) and by `docket_type` (rulemaking or nonrulemaking). Use it to find where an agency keeps the record of a rule and its public comments; use the Federal Register documents tool for the published rules and notices themselves. `total` is how many dockets matched, including any beyond `limit`, and is 0 when none did. Each docket links to its page on the portal, which lists its documents and comments.",
2922
+ "inputSchema": {
2923
+ "type": "object",
2924
+ "properties": {
2925
+ "query": {
2926
+ "type": "string",
2927
+ "description": "Search words, for example unmanned aircraft. 2 to 200 characters."
2928
+ },
2929
+ "agency": {
2930
+ "type": "string",
2931
+ "description": "Only dockets of this agency, as its acronym, for example FAA or EPA. 2 to 10 characters. Use the agency acronym, letters and digits only."
2932
+ },
2933
+ "docket_type": {
2934
+ "type": "string",
2935
+ "enum": [
2936
+ "rulemaking",
2937
+ "nonrulemaking"
2938
+ ],
2939
+ "description": "Only dockets of this kind"
2940
+ },
2941
+ "limit": {
2942
+ "type": "integer",
2943
+ "description": "The most dockets to return. From 1 to 25. Defaults to `10`."
2944
+ }
2945
+ },
2946
+ "required": [
2947
+ "query"
2948
+ ]
2949
+ },
2950
+ "example": {
2951
+ "query": "unmanned aircraft",
2952
+ "agency": "FAA",
2953
+ "limit": 2
2954
+ }
2955
+ },
2956
+ {
2957
+ "name": "company_financials",
2958
+ "path": "lookup/company-financials",
2959
+ "title": "Reported Financials",
2960
+ "description": "Returns one reported financial figure of a US public company, by Central Index Key (CIK), from its filings with the US Securities and Exchange Commission: one value per period, newest first, with dates, fiscal period, form, filing date and accession number. Figures are as the company reported them; a later filing that restates a period replaces the earlier value. The CIK is the registrant number the US Securities and Exchange Commission assigns to every filer, as for Company Filings. Looks up by identifier only: it does not search by company name or ticker. `metric` is one of `revenue`, `net_income`, `operating_income`, `total_assets`, `total_liabilities`, `stockholders_equity`, `cash` or `eps_diluted`; `period` is `annual` (default) or `quarterly`. Returns the company name, the US GAAP tag and unit the figures come from, and each value's calendar frame, start and end dates, fiscal year and period. Figures are not adjusted or restated by anyone else. `periods` is empty when the company never reported the metric under its US GAAP tag. History is kept per series: Changes addresses one by the padded identifier, metric and period joined with colons (`0000320193:revenue:annual`); a call with a non-default `limit` is kept as a query.",
2961
+ "inputSchema": {
2962
+ "type": "object",
2963
+ "properties": {
2964
+ "cik": {
2965
+ "type": "string",
2966
+ "description": "The registry identifier (CIK), for example 320193. Shorter numbers are padded with zeros. A CIK is 1 to 10 digits."
2967
+ },
2968
+ "metric": {
2969
+ "type": "string",
2970
+ "enum": [
2971
+ "revenue",
2972
+ "net_income",
2973
+ "operating_income",
2974
+ "total_assets",
2975
+ "total_liabilities",
2976
+ "stockholders_equity",
2977
+ "cash",
2978
+ "eps_diluted"
2979
+ ],
2980
+ "description": "Which reported figure to return"
2981
+ },
2982
+ "period": {
2983
+ "type": "string",
2984
+ "enum": [
2985
+ "annual",
2986
+ "quarterly"
2987
+ ],
2988
+ "description": "Fiscal years or fiscal quarters. Defaults to `\"annual\"`."
2989
+ },
2990
+ "limit": {
2991
+ "type": "integer",
2992
+ "description": "Most periods to return, newest first. From 1 to 20. Defaults to `5`."
2993
+ },
2994
+ "fresh": {
2995
+ "type": "boolean",
2996
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
2997
+ }
2998
+ },
2999
+ "required": [
3000
+ "cik",
3001
+ "metric"
3002
+ ]
3003
+ },
3004
+ "example": {
3005
+ "cik": "320193",
3006
+ "metric": "revenue",
3007
+ "limit": 2
3008
+ }
3009
+ },
3010
+ {
3011
+ "name": "place_satellite_passes",
3012
+ "path": "lookup/place-satellite-passes",
3013
+ "title": "Satellite Passes",
3014
+ "description": "Lists when imaging satellites were or will be over a point; only published orbits are covered. observed is the satellite and orbit the source published; every pass figure is derived by SGP4 (rise_at, culminate_at, set_at, max_elevation_deg, daynight, cut_by_window, track_distance_km, in_swath). in_swath true means the sensor could have seen the point; it does not mean an image was taken or released. Orbital elements courtesy of CelesTrak (celestrak.org), from US government sources. The pass times are computed by OneShot, not published by CelesTrak. Nothing in a pass is measured. observed is what the source published about the satellite and its orbit; every time and figure under derived is computed from that orbit by SGP4 and carries value, rule and from. Accuracy falls with distance from the element epoch, so a pass more than 3 days from its epoch is left out and counted in coverage.too_far_from_epoch. daynight is day when the Sun is above the horizon at the point at culmination. derived.track_distance_km is the least distance from the point to the ground track anywhere in the pass as reported, to 0.1 km. derived.in_swath compares that distance, before rounding, with half the sensor swath from a fixed table: VIIRS (Suomi NPP, NOAA-20, NOAA-21) 3,000 km, MODIS (Terra, Aqua) 2,330 km, Landsat 8 and 9 OLI 185 km, Sentinel-2A, 2B and 2C MSI 290 km, Sentinel-1A, 1C and 1D IW 250 km. It is null for an imaging satellite whose swath is not in the table, such as WorldView-3 or Sentinel-3A: the pass is reported, whether the point was in its swath is not known. Reading coverage: coverage.satellites lists each satellite considered with its element epoch and, when tabled, its sensor and swath. Empty passes with satellites listed and too_far_from_epoch zero means the orbits were computed and none rose above min_elevation_deg: looked, saw nothing. Empty passes with coverage.satellites empty, or with every pass in too_far_from_epoch, means no evidence either way. coverage.not_published lists swath-table satellites the source did not list. from and to are ISO 8601 UTC (a date alone is midnight UTC), at most 48 hours apart and within 3 days of the call either way; defaults are 24 hours before and after the call. A pass in progress at from or at to is cut at the window edge and marked cut_by_window. min_elevation_deg defaults to 10. limit defaults to 25, at most 200; total, returned and truncated report the list. kind imaging (default) considers every satellite below geosynchronous orbit in the Earth resources and weather catalogues and the Sentinel-1 family, the 12-hour Molniya orbit of ARKTIKA-M included, except the missions that carry no imager (altimeters, GNSS reflectometry and occultation constellations, ionosphere probes, data relays); kind all considers those too. Geosynchronous and higher orbits do not pass over a point and are counted in coverage.high_orbit_left_out. Imaging satellites whose orbits are not published are not in the source. Three catalogue reads per call, kept in this process for 2 hours as the source asks and shared by every caller in that time, a fresh call included; evidence.calls carry the time the element sets were fetched.",
3015
+ "inputSchema": {
3016
+ "type": "object",
3017
+ "properties": {
3018
+ "latitude": {
3019
+ "type": "number",
3020
+ "description": "Latitude in decimal degrees, for example 34.05. From -90 to 90."
3021
+ },
3022
+ "longitude": {
3023
+ "type": "number",
3024
+ "description": "Longitude in decimal degrees (west is negative), for example -118.25. From -180 to 180."
3025
+ },
3026
+ "from": {
3027
+ "type": "string",
3028
+ "description": "Start of the window, ISO 8601 UTC such as 2026-10-28T00:00:00Z or 2026-10-28; default 24 hours before the call"
3029
+ },
3030
+ "to": {
3031
+ "type": "string",
3032
+ "description": "End of the window, ISO 8601 UTC, at most 48 hours after from and within 3 days of the call; default 24 hours after the call"
3033
+ },
3034
+ "kind": {
3035
+ "type": "string",
3036
+ "enum": [
3037
+ "imaging",
3038
+ "all"
3039
+ ],
3040
+ "description": "imaging: every satellite below geosynchronous orbit in the catalogues read that carries an imager; all: those plus the altimetry, GNSS and ionosphere missions listed beside them. Defaults to `\"imaging\"`."
3041
+ },
3042
+ "min_elevation_deg": {
3043
+ "type": "number",
3044
+ "description": "Elevation above the horizon at the point that defines rise and set. From 0 to 90. Defaults to `10`."
3045
+ },
3046
+ "limit": {
3047
+ "type": "integer",
3048
+ "description": "Most passes to return. From 1 to 200. Defaults to `25`."
3049
+ }
3050
+ },
3051
+ "required": [
3052
+ "latitude",
3053
+ "longitude"
3054
+ ]
3055
+ },
3056
+ "example": {
3057
+ "latitude": 34.05,
3058
+ "longitude": -118.25,
3059
+ "limit": 2
3060
+ }
3061
+ },
3062
+ {
3063
+ "name": "company_sba_loans",
3064
+ "path": "lookup/company-sba-loans",
3065
+ "title": "SBA Loans",
3066
+ "description": "Returns loans approved to a US business under the Small Business Administration 7(a) and 504 programs since fiscal year 2010, by borrower name, from the US Small Business Administration: lender, amount, guaranteed share, approval date, terms, industry and status. Names match substrings, so similarly named borrowers come back too. state narrows the borrower name match. No match completes with loans: []. Results are newest approval first, then largest amount; has_more indicates additional matches. Amounts are approvals, not balances. The source withholds the status of loans still being repaid (active_not_disclosed). Jobs supported are self-reported by lenders and not validated. Only 7(a) and 504 approvals since fiscal year 2010 are included, not disaster or PPP loans. Use company_federal_awards for contracts and grants. The source replaces these files quarterly; status history begins with our first observation. Street addresses are neither requested nor returned.",
3067
+ "inputSchema": {
3068
+ "type": "object",
3069
+ "properties": {
3070
+ "borrower_name": {
3071
+ "type": "string",
3072
+ "description": "Case-insensitive substring of the borrower name. 3 to 120 characters."
3073
+ },
3074
+ "state": {
3075
+ "type": "string",
3076
+ "description": "The borrower state abbreviation"
3077
+ },
3078
+ "program": {
3079
+ "type": "string",
3080
+ "enum": [
3081
+ "504",
3082
+ "7a"
3083
+ ],
3084
+ "description": "Loan program; omitted searches both"
3085
+ },
3086
+ "limit": {
3087
+ "type": "integer",
3088
+ "description": "Most loans to return, newest approval first. From 1 to 25. Defaults to `10`."
3089
+ },
3090
+ "fresh": {
3091
+ "type": "boolean",
3092
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
3093
+ }
3094
+ },
3095
+ "required": [
3096
+ "borrower_name"
3097
+ ]
3098
+ },
3099
+ "example": {
3100
+ "borrower_name": "Faster Cajun",
3101
+ "state": "LA"
3102
+ }
3103
+ },
3104
+ {
3105
+ "name": "place_schools",
3106
+ "path": "lookup/place-schools",
3107
+ "title": "Schools",
3108
+ "description": "Lists US public schools (Common Core of Data) or private schools (Private School Survey) of the US National Center for Education Statistics within a distance of a point, nearest first, or every school of a public school district: name, address, county, grade range, kind, charter and virtual status, enrolment, teachers and student-teacher ratio. Private schools carry no enrolment. Give `school_type` and either a point (`latitude`, `longitude`, with `radius_km` 0.5 to 10, default 2) or a public `district_id` (the seven-digit NCES district id); private schools have no district. Private rows carry no enrolment, phone, district, level, kind or status: the source layer does not publish them. `total` counts the schools the source returned, at most 2,000; `more` is true when more than `limit` were returned or the source held more than 2,000. Enrolment, teachers and ratio are null when the source marks them missing, not applicable or suppressed. Each row carries its school year. A point or district with no school gives `total: 0` and an empty list.",
3109
+ "inputSchema": {
3110
+ "type": "object",
3111
+ "properties": {
3112
+ "school_type": {
3113
+ "type": "string",
3114
+ "enum": [
3115
+ "public",
3116
+ "private"
3117
+ ],
3118
+ "description": "public for the Common Core of Data, private for the Private School Survey"
3119
+ },
3120
+ "latitude": {
3121
+ "type": "number",
3122
+ "description": "Latitude in decimal degrees, for example 42.2808. From -90 to 90."
3123
+ },
3124
+ "longitude": {
3125
+ "type": "number",
3126
+ "description": "Longitude in decimal degrees (west is negative), for example -83.743. From -180 to 180."
3127
+ },
3128
+ "radius_km": {
3129
+ "type": "number",
3130
+ "description": "Distance from the point in kilometres, 0.5 to 10. From 0.5 to 10. Defaults to `2`."
3131
+ },
3132
+ "district_id": {
3133
+ "type": "string",
3134
+ "description": "The seven-digit NCES district id (LEAID), for example 2602820 for Ann Arbor Public Schools; public schools only. district_id is the seven-digit NCES district id."
3135
+ },
3136
+ "limit": {
3137
+ "type": "integer",
3138
+ "description": "Most schools to return, 1 to 50. From 1 to 50. Defaults to `20`."
1675
3139
  }
1676
3140
  },
1677
3141
  "required": [
1678
- "query"
3142
+ "school_type"
1679
3143
  ]
1680
3144
  },
1681
3145
  "example": {
1682
- "query": "TP53"
3146
+ "school_type": "public",
3147
+ "latitude": 42.2808,
3148
+ "longitude": -83.743,
3149
+ "limit": 1
1683
3150
  }
1684
3151
  },
1685
3152
  {
1686
- "name": "protein_sequence",
1687
- "path": "lookup/protein-sequence",
1688
- "title": "Protein Sequence",
1689
- "description": "Returns the reference sequence UniProtKB holds for a protein, from UniProt under CC BY 4.0, attributed to the UniProt Consortium: the one-letter sequence, length, molecular weight in daltons, checksums, gene, organism and listed isoforms. It is never an individual's sequence. Medical or genetic information is for research and education only. Covers reviewed and unreviewed entries; an accession with an isoform suffix (P04637-2) returns that isoform’s sequence. The checksums are CRC64 and MD5. sequence_version and last_sequence_update describe the entry, also for an isoform. UniProt releases updates every eight weeks. Absent values are null. A merged, demerged or deleted accession returns no protein and the source’s inactive reason with any replacement accessions. No match, including an isoform the entry does not list, returns null for both.",
3153
+ "name": "place_storm_events",
3154
+ "path": "lookup/place-storm-events",
3155
+ "title": "Storm Events",
3156
+ "description": "Lists the severe weather events the US National Oceanic and Atmospheric Administration recorded in a US county, parish or independent city since 1950, newest first: type, begin and end time, location, magnitude, deaths, injuries and property and crop damage. Events appear about three months after they happen; for the last three days use Hail and Wind Reports. Use it to check what hail, wind, tornado, flood or winter weather a property, a claim or a site has been through. `county` must be spelled as the source lists it (`Cleveland`, `Calcasieu Parish`, `City of Richmond`); case does not matter and a trailing ` County` may be left off. A county the source does not list returns `county_found` false and `counties`, the names it accepts for that state. `since` and `until` (YYYY-MM-DD) set the dates, both inclusive; default the last ten years. Events before 1996 cover only tornado, thunderstorm wind and hail, and before 1955 only tornadoes. `event_types` narrows to the source's types (`Hail`, `Thunderstorm Wind`, `Tornado`, `Flash Flood`, ...); omitted, every type. A county search includes events recorded on the forecast zone of the same name (`area_type` zone). Null damage means none was reported, never zero. `truncated` true means the source cut the answer at its row cap and older events in the range are missing: narrow the dates. Times carry the offset the source states; it labels times in standard time all year.",
1690
3157
  "inputSchema": {
1691
3158
  "type": "object",
1692
3159
  "properties": {
1693
- "accession": {
3160
+ "state": {
1694
3161
  "type": "string",
1695
- "description": "The UniProt accession, for example P04637, or an isoform accession, for example P04637-2"
3162
+ "enum": [
3163
+ "AL",
3164
+ "AK",
3165
+ "AZ",
3166
+ "AR",
3167
+ "CA",
3168
+ "CO",
3169
+ "CT",
3170
+ "DE",
3171
+ "DC",
3172
+ "FL",
3173
+ "GA",
3174
+ "HI",
3175
+ "ID",
3176
+ "IL",
3177
+ "IN",
3178
+ "IA",
3179
+ "KS",
3180
+ "KY",
3181
+ "LA",
3182
+ "ME",
3183
+ "MD",
3184
+ "MA",
3185
+ "MI",
3186
+ "MN",
3187
+ "MS",
3188
+ "MO",
3189
+ "MT",
3190
+ "NE",
3191
+ "NV",
3192
+ "NH",
3193
+ "NJ",
3194
+ "NM",
3195
+ "NY",
3196
+ "NC",
3197
+ "ND",
3198
+ "OH",
3199
+ "OK",
3200
+ "OR",
3201
+ "PA",
3202
+ "RI",
3203
+ "SC",
3204
+ "SD",
3205
+ "TN",
3206
+ "TX",
3207
+ "UT",
3208
+ "VT",
3209
+ "VA",
3210
+ "WA",
3211
+ "WV",
3212
+ "WI",
3213
+ "WY",
3214
+ "PR",
3215
+ "VI",
3216
+ "GU",
3217
+ "AS"
3218
+ ],
3219
+ "description": "USPS state code, for example OK; DC, PR, VI, GU and AS are accepted"
3220
+ },
3221
+ "county": {
3222
+ "type": "string",
3223
+ "description": "County, parish or independent city as the source names it, for example Cleveland, Calcasieu Parish or City of Richmond. 1 to 60 characters. Letters, digits, spaces, periods, apostrophes, parentheses and hyphens only."
3224
+ },
3225
+ "since": {
3226
+ "type": "string",
3227
+ "description": "Earliest event date; default ten years before the call. Use YYYY-MM-DD."
3228
+ },
3229
+ "until": {
3230
+ "type": "string",
3231
+ "description": "Latest event date; default the day of the call. Use YYYY-MM-DD."
3232
+ },
3233
+ "event_types": {
3234
+ "type": "array",
3235
+ "items": {
3236
+ "type": "string",
3237
+ "enum": [
3238
+ "Astronomical Low Tide",
3239
+ "Avalanche",
3240
+ "Blizzard",
3241
+ "Coastal Flood",
3242
+ "Cold/Wind Chill",
3243
+ "Debris Flow",
3244
+ "Dense Fog",
3245
+ "Dense Smoke",
3246
+ "Drought",
3247
+ "Dust Devil",
3248
+ "Dust Storm",
3249
+ "Excessive Heat",
3250
+ "Extreme Cold/Wind Chill",
3251
+ "Flash Flood",
3252
+ "Flood",
3253
+ "Freezing Fog",
3254
+ "Frost/Freeze",
3255
+ "Funnel Cloud",
3256
+ "Hail",
3257
+ "Heat",
3258
+ "Heavy Rain",
3259
+ "Heavy Snow",
3260
+ "High Surf",
3261
+ "High Wind",
3262
+ "Hurricane",
3263
+ "Ice Storm",
3264
+ "Lake-Effect Snow",
3265
+ "Lakeshore Flood",
3266
+ "Lightning",
3267
+ "Marine Dense Fog",
3268
+ "Marine Hail",
3269
+ "Marine Heavy Freezing Spray",
3270
+ "Marine High Wind",
3271
+ "Marine Hurricane/Typhoon",
3272
+ "Marine Lightning",
3273
+ "Marine Strong Wind",
3274
+ "Marine Thunderstorm Wind",
3275
+ "Marine Tropical Depression",
3276
+ "Marine Tropical Storm",
3277
+ "Rip Current",
3278
+ "Seiche",
3279
+ "Sleet",
3280
+ "Sneakerwave",
3281
+ "Storm Surge/Tide",
3282
+ "Strong Wind",
3283
+ "Thunderstorm Wind",
3284
+ "Tornado",
3285
+ "Tropical Depression",
3286
+ "Tropical Storm",
3287
+ "Tsunami",
3288
+ "Volcanic Ash",
3289
+ "Waterspout",
3290
+ "Wildfire",
3291
+ "Winter Storm",
3292
+ "Winter Weather"
3293
+ ]
3294
+ },
3295
+ "description": "Event types to return, as the source names them; omitted, every type"
3296
+ },
3297
+ "limit": {
3298
+ "type": "integer",
3299
+ "description": "Most events to return. From 1 to 200. Defaults to `50`."
1696
3300
  }
1697
3301
  },
1698
3302
  "required": [
1699
- "accession"
3303
+ "state",
3304
+ "county"
1700
3305
  ]
1701
3306
  },
1702
3307
  "example": {
1703
- "accession": "P00001"
3308
+ "state": "OK",
3309
+ "county": "Cleveland",
3310
+ "since": "2013-05-20",
3311
+ "until": "2013-05-20",
3312
+ "event_types": [
3313
+ "Tornado"
3314
+ ]
1704
3315
  }
1705
3316
  },
1706
3317
  {
1707
- "name": "protein_structure",
1708
- "path": "lookup/protein-structure",
1709
- "title": "Protein Structure",
1710
- "description": "Returns a protein's structures by UniProt accession: with `coverage` set to `experimental`, the newest RCSB Protein Data Bank entries with method, resolution, release date and files; with `predicted`, the EMBL-EBI predicted model with its confidence and files. A predicted model is a computed estimate, not an experimental structure: low-confidence regions should not be read as structure. `experimental` lists the newest entries in the Protein Data Bank that contain the protein, each with its title, experimental method, resolution in angstrom, release date, page and structure file, with `total` counting every matching entry. `predicted` returns the predicted model for the accession, with its version, creation date, residue range, mean confidence, the fraction of residues at each confidence level, and its structure and error-image files, or null when no model exists. Predicted models come from the predicted-structure database at EMBL-EBI, used under CC BY 4.0; experimental entries come from the RCSB Protein Data Bank. Use it to check whether a protein has a solved structure, to find the file to load into a viewer or a docking run, or to judge how far a predicted model can be trusted. Covers proteins with a UniProt accession. The sequence, alignment links and the names of the prediction software and its maker are not returned.",
3318
+ "name": "place_tropical_cyclones",
3319
+ "path": "lookup/place-tropical-cyclones",
3320
+ "title": "Tropical Cyclones",
3321
+ "description": "Lists active storms and official forecast points in the Atlantic and eastern/central North Pacific. Source fields are observed; movement_kt, distance_km, closest_approach_km and closest_approach_at are derived. Empty storms with coverage.covered true means looked, saw nothing matching; false means no evidence either way. Coverage names watched basins and latest advisory time. West Pacific and Indian Ocean are unwatched. All inputs are optional. With no point, lists all active storms; basin can narrow the list. Limit defaults to 25, at most 200. Derived movement_kt converts observed movement_mph to knots; distance_km is a great-circle distance. Each derived value names its rule and input fields. Point coverage uses the northern hemisphere from the date line east to 20E, including coastal and inland sites. Coverage does not extend to the other hemisphere or other basins when a radius crosses the boundary. Closest approach uses shortest great-circle segments with time interpolated between official points, starting at the current position. It is a forecast, not a measured impact or wind footprint. The uncertainty cone is omitted. The latest advisory and forecast must match. Missing or incomplete forecast data fails the lookup instead of implying there are no nearby storms. NWS public-data terms apply: https://www.weather.gov/disclaimer. No endorsement is implied.",
1711
3322
  "inputSchema": {
1712
3323
  "type": "object",
1713
3324
  "properties": {
1714
- "accession": {
1715
- "type": "string",
1716
- "description": "The UniProt accession of the protein, for example P04637. A UniProt accession is 6 or 10 letters and digits in the UniProt form."
3325
+ "latitude": {
3326
+ "type": "number",
3327
+ "description": "Latitude in decimal degrees; give longitude too. From -90 to 90."
1717
3328
  },
1718
- "coverage": {
3329
+ "longitude": {
3330
+ "type": "number",
3331
+ "description": "Longitude in decimal degrees; west is negative. From -180 to 180."
3332
+ },
3333
+ "radius_km": {
3334
+ "type": "number",
3335
+ "description": "Maximum current or forecast distance from the point in kilometres. From 1 to 2000. Defaults to `500`."
3336
+ },
3337
+ "basin": {
1719
3338
  "type": "string",
1720
3339
  "enum": [
1721
- "experimental",
1722
- "predicted"
3340
+ "atlantic",
3341
+ "east_pacific",
3342
+ "central_pacific"
1723
3343
  ],
1724
- "description": "Which kind of structure: experimental (entries in the Protein Data Bank) or predicted (the predicted model)"
3344
+ "description": "Basin to list; omitted means all three watched basins"
1725
3345
  },
1726
3346
  "limit": {
1727
3347
  "type": "integer",
1728
- "description": "How many experimental structures to return, newest release first (1 to 25). Ignored for predicted. From 1 to 25. Defaults to `10`."
3348
+ "description": "Maximum storms to return. From 1 to 200. Defaults to `25`."
1729
3349
  }
1730
3350
  },
1731
- "required": [
1732
- "accession",
1733
- "coverage"
1734
- ]
3351
+ "required": []
1735
3352
  },
1736
3353
  "example": {
1737
- "accession": "P04637",
1738
- "coverage": "experimental",
1739
- "limit": 2
3354
+ "limit": 10
1740
3355
  }
1741
3356
  },
1742
3357
  {
1743
- "name": "company_financials",
1744
- "path": "lookup/company-financials",
1745
- "title": "Reported Financials",
1746
- "description": "Returns one reported financial figure of a US public company, by Central Index Key (CIK), from its filings with the US Securities and Exchange Commission: one value per period, newest first, with dates, fiscal period, form, filing date and accession number. Figures are as the company reported them; a later filing that restates a period replaces the earlier value. The CIK is the registrant number the US Securities and Exchange Commission assigns to every filer, as for Company Filings. Looks up by identifier only: it does not search by company name or ticker. `metric` is one of `revenue`, `net_income`, `operating_income`, `total_assets`, `total_liabilities`, `stockholders_equity`, `cash` or `eps_diluted`; `period` is `annual` (default) or `quarterly`. Returns the company name, the US GAAP tag and unit the figures come from, and each value's calendar frame, start and end dates, fiscal year and period. Figures are not adjusted or restated by anyone else. `periods` is empty when the company never reported the metric under its US GAAP tag. History is kept per series: Changes addresses one by the padded identifier, metric and period joined with colons (`0000320193:revenue:annual`); a call with a non-default `limit` is kept as a query.",
3358
+ "name": "market_truck_rates",
3359
+ "path": "lookup/market-truck-rates",
3360
+ "title": "Truck Rates",
3361
+ "description": "Returns reported weekly rates for refrigerated produce loads, not a quote, from the US Department of Agriculture. Origins are shipping districts. Each lane includes weekly low, high, midpoint and rate per mile, plus truck availability: 1 means surplus, 3 adequate supply and 5 shortage, with intermediate values 2 and 4. Origin and optional destination match uppercase substrings. Omit destination to return several lanes. Reads one page of weeks × 40 rows, capped at 1000, newest first; keeps up to weeks rows per lane from that page. History is available from the first call. Lane details use the newest row. Empty numeric fields are null. No match returns an empty lanes list.",
1747
3362
  "inputSchema": {
1748
3363
  "type": "object",
1749
3364
  "properties": {
1750
- "cik": {
1751
- "type": "string",
1752
- "description": "The registry identifier (CIK), for example 320193. Shorter numbers are padded with zeros. A CIK is 1 to 10 digits."
1753
- },
1754
- "metric": {
3365
+ "origin": {
1755
3366
  "type": "string",
1756
- "enum": [
1757
- "revenue",
1758
- "net_income",
1759
- "operating_income",
1760
- "total_assets",
1761
- "total_liabilities",
1762
- "stockholders_equity",
1763
- "cash",
1764
- "eps_diluted"
1765
- ],
1766
- "description": "Which reported figure to return"
3367
+ "description": "Shipping district substring, for example Salinas or Florida. 2 to 80 characters."
1767
3368
  },
1768
- "period": {
3369
+ "destination": {
1769
3370
  "type": "string",
1770
- "enum": [
1771
- "annual",
1772
- "quarterly"
1773
- ],
1774
- "description": "Fiscal years or fiscal quarters. Defaults to `\"annual\"`."
3371
+ "description": "Destination city substring, for example Chicago. 2 to 80 characters."
1775
3372
  },
1776
- "limit": {
3373
+ "weeks": {
1777
3374
  "type": "integer",
1778
- "description": "Most periods to return, newest first. From 1 to 20. Defaults to `5`."
3375
+ "description": "Most recent weeks per lane. From 1 to 26. Defaults to `4`."
1779
3376
  }
1780
3377
  },
1781
3378
  "required": [
1782
- "cik",
1783
- "metric"
3379
+ "origin"
1784
3380
  ]
1785
3381
  },
1786
3382
  "example": {
1787
- "cik": "320193",
1788
- "metric": "revenue",
1789
- "limit": 2
3383
+ "origin": "Salinas",
3384
+ "destination": "Chicago",
3385
+ "weeks": 1
1790
3386
  }
1791
3387
  },
1792
3388
  {
@@ -1812,6 +3408,29 @@ export const LOOKUP_MANIFEST = [
1812
3408
  "rsid": "rs80357906"
1813
3409
  }
1814
3410
  },
3411
+ {
3412
+ "name": "variant_frequency",
3413
+ "path": "lookup/variant-frequency",
3414
+ "title": "Variant Frequency",
3415
+ "description": "Reports aggregate allele counts and frequencies from the Genome Aggregation Database (gnomAD), Broad Institute, showing what a public reference population contains, by genetic ancestry group. For research; not medical advice. An rsID matching several variants needs the variant_id. Supply one variant identifier, never a person’s genome, sequencing data or a VCF file. Uses gnomAD v4 (GRCh38), exomes and genomes. Data refresh per versioned release; no observation date is supplied. Primary exome and genome data are CC0 1.0. Never try to reidentify participants. Only ancestry groups are returned; sex splits, reference-panel subsets and other annotations are excluded. An absent data type is null. Allele frequency is allele count divided by allele number, or null when the denominator is zero.",
3416
+ "inputSchema": {
3417
+ "type": "object",
3418
+ "properties": {
3419
+ "variant_id": {
3420
+ "type": "string",
3421
+ "description": "gnomAD variant ID on GRCh38, for example 1-55051215-G-GA; supply only variant_id or rsid"
3422
+ },
3423
+ "rsid": {
3424
+ "type": "string",
3425
+ "description": "dbSNP identifier, for example rs527413419; supply only rsid or variant_id"
3426
+ }
3427
+ },
3428
+ "required": []
3429
+ },
3430
+ "example": {
3431
+ "variant_id": "1-55051215-G-GA"
3432
+ }
3433
+ },
1815
3434
  {
1816
3435
  "name": "variant_resolve",
1817
3436
  "path": "resolve/variant",
@@ -1880,6 +3499,10 @@ export const LOOKUP_MANIFEST = [
1880
3499
  "vat_number": {
1881
3500
  "type": "string",
1882
3501
  "description": "The VAT number, 2 to 14 letters and digits once spaces, dots and dashes are removed; a leading country code equal to country is removed. 2 to 40 characters. letters, digits, spaces, dots and dashes only."
3502
+ },
3503
+ "fresh": {
3504
+ "type": "boolean",
3505
+ "description": "Look the record up again instead of using OneShot's stored copy from an earlier lookup, and refresh that copy. Off by default: a record stored within its freshness window is returned as is, with cached: true and its fetched_at."
1883
3506
  }
1884
3507
  },
1885
3508
  "required": [
@@ -2367,6 +3990,54 @@ export const ROUTE_MANIFEST = [
2367
3990
  "since": "2026-01-01"
2368
3991
  }
2369
3992
  },
3993
+ {
3994
+ "name": "company_dossier",
3995
+ "method": "POST",
3996
+ "path": "/v1/tools/lookup/company-dossier",
3997
+ "paid": true,
3998
+ "readOnly": true,
3999
+ "title": "Company Dossier",
4000
+ "description": "One call that answers \"who is this company?\": its identifiers, identity, locations, operations and size, licences and registrations, court cases, regulatory results, key people, recent news and a written summary, each section with its state and sources and each entry tied to the company by an identifier. Key people (name, title, work email) are included unless include_people is false. Give the name and at least one of domain, address or state; add the USDOT number for a motor carrier. Runs for up to 15 minutes and answers with a request id to poll. Paid per call at one fixed price.",
4001
+ "inputSchema": {
4002
+ "type": "object",
4003
+ "properties": {
4004
+ "name": {
4005
+ "type": "string",
4006
+ "description": "The company name"
4007
+ },
4008
+ "domain": {
4009
+ "type": "string",
4010
+ "description": "The company website domain. Give at least one of domain, address or state"
4011
+ },
4012
+ "address": {
4013
+ "type": "string",
4014
+ "description": "A street address of the company. Give at least one of domain, address or state"
4015
+ },
4016
+ "state": {
4017
+ "type": "string",
4018
+ "description": "Two-letter US state the company is in or formed in. Give at least one of domain, address or state"
4019
+ },
4020
+ "dot_number": {
4021
+ "type": "string",
4022
+ "description": "USDOT number, digits only, for a motor carrier"
4023
+ },
4024
+ "include_people": {
4025
+ "type": "boolean",
4026
+ "default": true,
4027
+ "description": "Key people (name, title, work email) are included unless this is false"
4028
+ }
4029
+ },
4030
+ "required": [
4031
+ "name"
4032
+ ]
4033
+ },
4034
+ "example": {
4035
+ "name": "Example Freight LLC",
4036
+ "state": "TX",
4037
+ "dot_number": "1234567"
4038
+ },
4039
+ "timeout": 1020
4040
+ },
2370
4041
  {
2371
4042
  "name": "compute_budget",
2372
4043
  "method": "GET",
@@ -2609,6 +4280,91 @@ export const ROUTE_MANIFEST = [
2609
4280
  "domain": "mail.example.com"
2610
4281
  }
2611
4282
  },
4283
+ {
4284
+ "name": "files_read",
4285
+ "method": "POST",
4286
+ "path": "/v1/tools/files/read",
4287
+ "paid": true,
4288
+ "readOnly": true,
4289
+ "title": "File read",
4290
+ "description": "Read content inline, at most 10 MB. Google Drive supports Sheets as CSV (first or named sheet); other Drive content is not supported yet. Known oversized content is refused before payment. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4291
+ "inputSchema": {
4292
+ "type": "object",
4293
+ "properties": {
4294
+ "connection_id": {
4295
+ "type": "string",
4296
+ "format": "uuid",
4297
+ "description": "List GET /v1/connections first and choose by system and account_label."
4298
+ },
4299
+ "file_id": {
4300
+ "type": "string",
4301
+ "description": "Opaque id returned by files/search; pass it unchanged."
4302
+ },
4303
+ "sheet": {
4304
+ "type": "string",
4305
+ "minLength": 1,
4306
+ "maxLength": 100,
4307
+ "description": "Google Sheets tab name; omitted means the first sheet. Other file types do not support this option."
4308
+ }
4309
+ },
4310
+ "required": [
4311
+ "connection_id",
4312
+ "file_id"
4313
+ ]
4314
+ },
4315
+ "example": {
4316
+ "connection_id": "00000000-0000-4000-8000-000000000001",
4317
+ "file_id": "drive-1:file-1"
4318
+ }
4319
+ },
4320
+ {
4321
+ "name": "files_search",
4322
+ "method": "POST",
4323
+ "path": "/v1/tools/files/search",
4324
+ "paid": true,
4325
+ "readOnly": true,
4326
+ "title": "File search",
4327
+ "description": "Search file metadata on the chosen connection. At most 50 rows. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4328
+ "inputSchema": {
4329
+ "type": "object",
4330
+ "properties": {
4331
+ "connection_id": {
4332
+ "type": "string",
4333
+ "format": "uuid",
4334
+ "description": "List GET /v1/connections first and choose by system and account_label."
4335
+ },
4336
+ "query": {
4337
+ "type": "string",
4338
+ "minLength": 1,
4339
+ "maxLength": 500,
4340
+ "description": "Required search text. Keep the same filters when paging."
4341
+ },
4342
+ "limit": {
4343
+ "type": "integer",
4344
+ "minimum": 1,
4345
+ "maximum": 50,
4346
+ "default": 25
4347
+ },
4348
+ "cursor": {
4349
+ "type": "string",
4350
+ "description": "The next_cursor from the previous page."
4351
+ },
4352
+ "folder_id": {
4353
+ "type": "string",
4354
+ "description": "Optional opaque folder id. Recursive for Microsoft; direct children for Google Drive."
4355
+ }
4356
+ },
4357
+ "required": [
4358
+ "connection_id",
4359
+ "query"
4360
+ ]
4361
+ },
4362
+ "example": {
4363
+ "connection_id": "00000000-0000-4000-8000-000000000001",
4364
+ "query": "invoice",
4365
+ "limit": 25
4366
+ }
4367
+ },
2612
4368
  {
2613
4369
  "name": "physical_mail_order",
2614
4370
  "method": "GET",
@@ -2646,39 +4402,143 @@ export const ROUTE_MANIFEST = [
2646
4402
  "properties": {
2647
4403
  "quote_id": {
2648
4404
  "type": "string",
2649
- "description": "Quote id from oneshot_physical_mail_preview"
4405
+ "description": "Quote id from oneshot_physical_mail_preview"
4406
+ }
4407
+ },
4408
+ "required": [
4409
+ "quote_id"
4410
+ ]
4411
+ },
4412
+ "example": {
4413
+ "quote_id": "00000000-0000-4000-8000-000000000000"
4414
+ }
4415
+ },
4416
+ {
4417
+ "name": "voice_inbound_get",
4418
+ "method": "GET",
4419
+ "path": "/v1/tools/voice/numbers/{phone_number_id}/inbound",
4420
+ "paid": false,
4421
+ "readOnly": true,
4422
+ "title": "Get Call Answering Settings",
4423
+ "description": "Read how one of the agent's numbers answers inbound calls: the prompt, greeting, allowed tools, hours and whether it is enabled. Free.",
4424
+ "inputSchema": {
4425
+ "type": "object",
4426
+ "properties": {
4427
+ "phone_number_id": {
4428
+ "type": "string",
4429
+ "description": "Number id from oneshot_voice_numbers"
4430
+ }
4431
+ },
4432
+ "required": [
4433
+ "phone_number_id"
4434
+ ]
4435
+ },
4436
+ "example": {
4437
+ "phone_number_id": "pn_01HX"
4438
+ }
4439
+ },
4440
+ {
4441
+ "name": "company_insider_trades",
4442
+ "method": "POST",
4443
+ "path": "/v1/tools/lookup/company-insider-trades",
4444
+ "paid": true,
4445
+ "readOnly": true,
4446
+ "title": "Insider Trades",
4447
+ "description": "Look up a company’s reported insider transactions by issuer CIK or exact ticker: insiders and roles, filing dates, transaction codes, shares and prices. For example, “Which insiders bought or sold GFS?” or “Show transaction amounts, beyond the filing documents listed by company_filings.” Quarterly Forms 3, 4 and 5 transaction filings, posted about a week after each quarter ends. The current quarter’s filings are not yet included. Filings without transaction rows are excluded. All reporting owners of a filing accompany its transactions; the source does not assign individual transaction rows to individual owners.",
4448
+ "inputSchema": {
4449
+ "type": "object",
4450
+ "properties": {
4451
+ "cik": {
4452
+ "type": "string",
4453
+ "description": "Issuer CIK, 1 to 10 digits; exactly one of cik or ticker is required"
4454
+ },
4455
+ "ticker": {
4456
+ "type": "string",
4457
+ "description": "Exact issuer ticker, case insensitive; exactly one of ticker or cik is required"
4458
+ },
4459
+ "filed_after": {
4460
+ "type": "string",
4461
+ "description": "First filing date inclusive, YYYY-MM-DD"
4462
+ },
4463
+ "filed_before": {
4464
+ "type": "string",
4465
+ "description": "Last filing date inclusive, YYYY-MM-DD"
4466
+ },
4467
+ "code": {
4468
+ "type": "string",
4469
+ "description": "Transaction code, such as P or S"
4470
+ },
4471
+ "limit": {
4472
+ "type": "integer",
4473
+ "description": "Page size, 1-100, default 25"
4474
+ },
4475
+ "offset": {
4476
+ "type": "integer",
4477
+ "description": "Transactions to skip, 0-10000, default 0"
2650
4478
  }
2651
4479
  },
2652
- "required": [
2653
- "quote_id"
2654
- ]
4480
+ "required": []
2655
4481
  },
2656
4482
  "example": {
2657
- "quote_id": "00000000-0000-4000-8000-000000000000"
4483
+ "cik": "1709048"
2658
4484
  }
2659
4485
  },
2660
4486
  {
2661
- "name": "voice_inbound_get",
2662
- "method": "GET",
2663
- "path": "/v1/tools/voice/numbers/{phone_number_id}/inbound",
2664
- "paid": false,
4487
+ "name": "ledger_bank_transactions",
4488
+ "method": "POST",
4489
+ "path": "/v1/tools/ledger/bank_transactions",
4490
+ "paid": true,
2665
4491
  "readOnly": true,
2666
- "title": "Get Call Answering Settings",
2667
- "description": "Read how one of the agent's numbers answers inbound calls: the prompt, greeting, allowed tools, hours and whether it is enabled. Free.",
4492
+ "title": "Ledger bank transactions",
4493
+ "description": "Bank account lines from a connected accounting system over a period of at most 366 days: date, bank account, counterparty, description, reference, amount with its direction (in or out), `reconciled` (whether the line is matched off against the bank statement) and `has_attachment` (whether a receipt or document is attached), plus the bank accounts seen so the next read can be narrowed with bank_account_id. Xero: every line carries both flags, and both filters apply. QuickBooks: `has_attachment` comes from its attachment records; `reconciled` is null on every line because QuickBooks does not say it per line, the `reconciled: true` filter lists its matched lines only, and `reconciled: false` is refused as unsupported_for_system before payment. Zoho Books and NetSuite bank transactions are not supported and are refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
2668
4494
  "inputSchema": {
2669
4495
  "type": "object",
2670
4496
  "properties": {
2671
- "phone_number_id": {
4497
+ "connection_id": {
2672
4498
  "type": "string",
2673
- "description": "Number id from oneshot_voice_numbers"
4499
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4500
+ },
4501
+ "limit": {
4502
+ "type": "number",
4503
+ "description": "Records per page (1 to 100, default 25)"
4504
+ },
4505
+ "cursor": {
4506
+ "type": "string",
4507
+ "description": "The next_cursor of the previous page"
4508
+ },
4509
+ "from": {
4510
+ "type": "string",
4511
+ "description": "The first day of the period (YYYY-MM-DD)"
4512
+ },
4513
+ "to": {
4514
+ "type": "string",
4515
+ "description": "The last day of the period (YYYY-MM-DD), at most 366 days after from"
4516
+ },
4517
+ "bank_account_id": {
4518
+ "type": "string",
4519
+ "description": "Only the lines of this bank account: an id from the bank_accounts of an earlier answer"
4520
+ },
4521
+ "reconciled": {
4522
+ "type": "boolean",
4523
+ "description": "true: only lines matched off against the bank statement; false: only lines not yet matched (Xero only). Left out: both"
4524
+ },
4525
+ "missing_attachment": {
4526
+ "type": "boolean",
4527
+ "description": "true: only lines with no receipt or document attached. Left out or false: every line"
2674
4528
  }
2675
4529
  },
2676
4530
  "required": [
2677
- "phone_number_id"
4531
+ "connection_id",
4532
+ "from",
4533
+ "to"
2678
4534
  ]
2679
4535
  },
2680
4536
  "example": {
2681
- "phone_number_id": "pn_01HX"
4537
+ "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
4538
+ "from": "2026-09-01",
4539
+ "to": "2026-09-30",
4540
+ "missing_attachment": true,
4541
+ "limit": 25
2682
4542
  }
2683
4543
  },
2684
4544
  {
@@ -2737,6 +4597,62 @@ export const ROUTE_MANIFEST = [
2737
4597
  "limit": 25
2738
4598
  }
2739
4599
  },
4600
+ {
4601
+ "name": "ledger_invoice_lines",
4602
+ "method": "POST",
4603
+ "path": "/v1/tools/ledger/invoice-lines",
4604
+ "paid": true,
4605
+ "readOnly": true,
4606
+ "title": "Ledger invoice lines",
4607
+ "description": "Invoice and credit memo item lines from NetSuite: invoice, issue date, counterparty, item, quantity, amount and currency. Sold units are positive; credit memo quantity and amount are negative. Voided transactions and non-item lines are excluded. Required invoice dates from/to must be at most 400 days apart; up to 500 lines per page. No aggregation: group by customer, item or month yourself. QuickBooks, Xero and Zoho Books invoice lines are not supported and are refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4608
+ "inputSchema": {
4609
+ "type": "object",
4610
+ "properties": {
4611
+ "connection_id": {
4612
+ "type": "string",
4613
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4614
+ },
4615
+ "limit": {
4616
+ "type": "integer",
4617
+ "minimum": 1,
4618
+ "maximum": 500,
4619
+ "default": 25,
4620
+ "description": "Lines per page (1 to 500, default 25); keep the same limit when paging"
4621
+ },
4622
+ "cursor": {
4623
+ "type": "string",
4624
+ "description": "The next_cursor of the previous page"
4625
+ },
4626
+ "from": {
4627
+ "type": "string",
4628
+ "description": "Invoice date on or after this date (YYYY-MM-DD)"
4629
+ },
4630
+ "to": {
4631
+ "type": "string",
4632
+ "description": "Invoice date on or before this date, at most 400 days after from"
4633
+ },
4634
+ "counterparty": {
4635
+ "type": "string",
4636
+ "description": "Only records whose counterparty name contains this text"
4637
+ },
4638
+ "item": {
4639
+ "type": "string",
4640
+ "description": "Only lines whose item name contains this text"
4641
+ }
4642
+ },
4643
+ "required": [
4644
+ "connection_id",
4645
+ "from",
4646
+ "to"
4647
+ ]
4648
+ },
4649
+ "example": {
4650
+ "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
4651
+ "from": "2026-09-01",
4652
+ "to": "2026-09-30",
4653
+ "limit": 25
4654
+ }
4655
+ },
2740
4656
  {
2741
4657
  "name": "ledger_invoices",
2742
4658
  "method": "POST",
@@ -2800,7 +4716,7 @@ export const ROUTE_MANIFEST = [
2800
4716
  "paid": true,
2801
4717
  "readOnly": true,
2802
4718
  "title": "Ledger reports",
2803
- "description": "A report from a connected accounting system. QuickBooks: balance_sheet, profit_and_loss and trial_balance, dated with as_of or from/to. Xero: the same three, with a profit_and_loss of at most 365 days. Zoho Books: trial_balance as of today only (no as_of); no balance_sheet or profit_and_loss. NetSuite reports are not supported. A report the system does not serve is refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4719
+ "description": "A report from a connected accounting system. QuickBooks: balance_sheet, profit_and_loss and trial_balance, dated with as_of or from/to. Xero: the same three, with a profit_and_loss of at most 365 days. Zoho Books: the same three, with a profit_and_loss that needs from. NetSuite reports are not supported. A report the system does not serve is refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
2804
4720
  "inputSchema": {
2805
4721
  "type": "object",
2806
4722
  "properties": {
@@ -2823,11 +4739,11 @@ export const ROUTE_MANIFEST = [
2823
4739
  "profit_and_loss",
2824
4740
  "trial_balance"
2825
4741
  ],
2826
- "description": "The report. QuickBooks and Xero: all three. Zoho Books: trial_balance only. NetSuite: no reports"
4742
+ "description": "The report. QuickBooks, Xero and Zoho Books: all three (Zoho Books: profit_and_loss needs from). NetSuite: no reports"
2827
4743
  },
2828
4744
  "as_of": {
2829
4745
  "type": "string",
2830
- "description": "Balance sheet and trial balance: the date the report stands at (YYYY-MM-DD). QuickBooks and Xero; Zoho Books serves the trial balance as of today"
4746
+ "description": "Balance sheet and trial balance: the date the report stands at (YYYY-MM-DD); today when left out"
2831
4747
  },
2832
4748
  "from": {
2833
4749
  "type": "string",
@@ -2888,6 +4804,106 @@ export const ROUTE_MANIFEST = [
2888
4804
  },
2889
4805
  "example": {}
2890
4806
  },
4807
+ {
4808
+ "name": "mailbox_attachment",
4809
+ "method": "POST",
4810
+ "path": "/v1/tools/mailbox/attachment",
4811
+ "paid": true,
4812
+ "readOnly": true,
4813
+ "title": "Mailbox attachment",
4814
+ "description": "Read content inline, at most 10 MB. Gmail supports attachments included in the message MIME payload; external attachments are not supported yet. Known oversized content is refused before payment. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4815
+ "inputSchema": {
4816
+ "type": "object",
4817
+ "properties": {
4818
+ "connection_id": {
4819
+ "type": "string",
4820
+ "format": "uuid",
4821
+ "description": "List GET /v1/connections first and choose by system and account_label."
4822
+ },
4823
+ "message_id": {
4824
+ "type": "string"
4825
+ },
4826
+ "attachment_id": {
4827
+ "type": "string"
4828
+ }
4829
+ },
4830
+ "required": [
4831
+ "connection_id",
4832
+ "message_id",
4833
+ "attachment_id"
4834
+ ]
4835
+ },
4836
+ "example": {
4837
+ "connection_id": "00000000-0000-4000-8000-000000000001",
4838
+ "message_id": "message-1",
4839
+ "attachment_id": "attachment-1"
4840
+ }
4841
+ },
4842
+ {
4843
+ "name": "mailbox_messages",
4844
+ "method": "POST",
4845
+ "path": "/v1/tools/mailbox/messages",
4846
+ "paid": true,
4847
+ "readOnly": true,
4848
+ "title": "Mailbox messages",
4849
+ "description": "Search message snippets and attachment metadata on the chosen connection. At most 50 rows. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4850
+ "inputSchema": {
4851
+ "type": "object",
4852
+ "properties": {
4853
+ "connection_id": {
4854
+ "type": "string",
4855
+ "format": "uuid",
4856
+ "description": "List GET /v1/connections first and choose by system and account_label."
4857
+ },
4858
+ "query": {
4859
+ "type": "string",
4860
+ "minLength": 1,
4861
+ "maxLength": 500,
4862
+ "description": "Required search text. Keep the same filters when paging."
4863
+ },
4864
+ "limit": {
4865
+ "type": "integer",
4866
+ "minimum": 1,
4867
+ "maximum": 50,
4868
+ "default": 25
4869
+ },
4870
+ "cursor": {
4871
+ "type": "string",
4872
+ "description": "The next_cursor from the previous page."
4873
+ },
4874
+ "from": {
4875
+ "type": "string",
4876
+ "format": "date",
4877
+ "description": "Inclusive received date, YYYY-MM-DD."
4878
+ },
4879
+ "to": {
4880
+ "type": "string",
4881
+ "format": "date",
4882
+ "description": "Inclusive received date, YYYY-MM-DD."
4883
+ },
4884
+ "sender": {
4885
+ "type": "string",
4886
+ "format": "email"
4887
+ },
4888
+ "has_attachments": {
4889
+ "type": "boolean"
4890
+ }
4891
+ },
4892
+ "required": [
4893
+ "connection_id",
4894
+ "query",
4895
+ "from",
4896
+ "to"
4897
+ ]
4898
+ },
4899
+ "example": {
4900
+ "connection_id": "00000000-0000-4000-8000-000000000001",
4901
+ "query": "invoice",
4902
+ "from": "2026-10-01",
4903
+ "to": "2026-10-31",
4904
+ "limit": 25
4905
+ }
4906
+ },
2891
4907
  {
2892
4908
  "name": "notifications_mark_all_read",
2893
4909
  "method": "PATCH",
@@ -2903,6 +4919,95 @@ export const ROUTE_MANIFEST = [
2903
4919
  },
2904
4920
  "example": {}
2905
4921
  },
4922
+ {
4923
+ "name": "meetings_get",
4924
+ "method": "POST",
4925
+ "path": "/v1/tools/meetings/get",
4926
+ "paid": true,
4927
+ "readOnly": true,
4928
+ "title": "Meetings get",
4929
+ "description": "One meeting from the customer's connected meeting recorder: its summary and action items, and its transcript only when asked for. Read-only; returned inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4930
+ "inputSchema": {
4931
+ "type": "object",
4932
+ "properties": {
4933
+ "connection_id": {
4934
+ "type": "string",
4935
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4936
+ },
4937
+ "meeting_id": {
4938
+ "type": "string",
4939
+ "description": "The id of the meeting, as meetings_list answers it"
4940
+ },
4941
+ "include": {
4942
+ "type": "array",
4943
+ "items": {
4944
+ "type": "string",
4945
+ "enum": [
4946
+ "summary",
4947
+ "action_items",
4948
+ "transcript"
4949
+ ]
4950
+ },
4951
+ "description": "What to read besides the meeting itself (default summary and action_items); the transcript only when asked for"
4952
+ }
4953
+ },
4954
+ "required": [
4955
+ "connection_id",
4956
+ "meeting_id"
4957
+ ]
4958
+ },
4959
+ "example": {
4960
+ "connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
4961
+ "meeting_id": "0dba4400-0000-4000-8000-000000000001",
4962
+ "include": [
4963
+ "summary",
4964
+ "action_items"
4965
+ ]
4966
+ }
4967
+ },
4968
+ {
4969
+ "name": "meetings_list",
4970
+ "method": "POST",
4971
+ "path": "/v1/tools/meetings/list",
4972
+ "paid": true,
4973
+ "readOnly": true,
4974
+ "title": "Meetings list",
4975
+ "description": "Meetings recorded by the customer's connected meeting recorder, with title, start, duration and participants, filtered by start day and by title or participant. Read-only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4976
+ "inputSchema": {
4977
+ "type": "object",
4978
+ "properties": {
4979
+ "connection_id": {
4980
+ "type": "string",
4981
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4982
+ },
4983
+ "since": {
4984
+ "type": "string",
4985
+ "description": "Meetings that started on or after this day (YYYY-MM-DD, UTC)"
4986
+ },
4987
+ "query": {
4988
+ "type": "string",
4989
+ "description": "Meetings whose title, or a participant's name or email, contains this text (any case)"
4990
+ },
4991
+ "limit": {
4992
+ "type": "integer",
4993
+ "description": "Meetings per page, 1 to 100 (default 25)"
4994
+ },
4995
+ "cursor": {
4996
+ "type": "string",
4997
+ "description": "The next_cursor of the previous page"
4998
+ }
4999
+ },
5000
+ "required": [
5001
+ "connection_id"
5002
+ ]
5003
+ },
5004
+ "example": {
5005
+ "connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
5006
+ "since": "2026-10-01",
5007
+ "query": "client",
5008
+ "limit": 25
5009
+ }
5010
+ },
2906
5011
  {
2907
5012
  "name": "physical_mail_preview",
2908
5013
  "method": "POST",
@@ -2956,6 +5061,46 @@ export const ROUTE_MANIFEST = [
2956
5061
  }
2957
5062
  }
2958
5063
  },
5064
+ {
5065
+ "name": "company_private_raises",
5066
+ "method": "POST",
5067
+ "path": "/v1/tools/lookup/company-private-raises",
5068
+ "paid": true,
5069
+ "readOnly": true,
5070
+ "title": "Private Raises",
5071
+ "description": "Look up a company’s private offerings by issuer CIK from its Form D and D/A notices: amounts sought, sold and remaining, exemption, security types, industry, investor counts and related persons. For example, “How much has Southview Timberland Fund raised privately and under which exemption?” or “Show the amounts and investors behind a Form D, beyond the filing documents listed by company_filings.” Quarterly Form D and D/A notices of exempt offerings, posted about a week after each quarter ends. The current quarter’s notices are not yet included. Amendments are listed as their own notices with previous_accession_number, so the newest notice of an offering carries its latest figures. Issuer and related-person street addresses, ZIP codes and phone numbers are excluded.",
5072
+ "inputSchema": {
5073
+ "type": "object",
5074
+ "properties": {
5075
+ "cik": {
5076
+ "type": "string",
5077
+ "description": "Issuer CIK, 1 to 10 digits"
5078
+ },
5079
+ "filed_after": {
5080
+ "type": "string",
5081
+ "description": "First filing date inclusive, YYYY-MM-DD"
5082
+ },
5083
+ "filed_before": {
5084
+ "type": "string",
5085
+ "description": "Last filing date inclusive, YYYY-MM-DD"
5086
+ },
5087
+ "limit": {
5088
+ "type": "integer",
5089
+ "description": "Page size, 1-50, default 20"
5090
+ },
5091
+ "offset": {
5092
+ "type": "integer",
5093
+ "description": "Notices to skip, 0-10000, default 0"
5094
+ }
5095
+ },
5096
+ "required": [
5097
+ "cik"
5098
+ ]
5099
+ },
5100
+ "example": {
5101
+ "cik": "1991882"
5102
+ }
5103
+ },
2959
5104
  {
2960
5105
  "name": "procurement_bills",
2961
5106
  "method": "POST",
@@ -3117,6 +5262,10 @@ export const ROUTE_MANIFEST = [
3117
5262
  "inputSchema": {
3118
5263
  "type": "object",
3119
5264
  "properties": {
5265
+ "fresh": {
5266
+ "type": "boolean",
5267
+ "description": "Refresh the source lists before screening"
5268
+ },
3120
5269
  "name": {
3121
5270
  "type": "string",
3122
5271
  "description": "The company name to check, 2 to 200 characters, free text. Word order and punctuation do not matter"
@@ -3151,6 +5300,10 @@ export const ROUTE_MANIFEST = [
3151
5300
  "inputSchema": {
3152
5301
  "type": "object",
3153
5302
  "properties": {
5303
+ "fresh": {
5304
+ "type": "boolean",
5305
+ "description": "Refresh the source lists before screening"
5306
+ },
3154
5307
  "name": {
3155
5308
  "type": "string",
3156
5309
  "description": "The person name to check, 2 to 200 characters, free text. Word order, accents and punctuation do not matter"