-
Notifications
You must be signed in to change notification settings - Fork 2
/
aca-api.yaml
executable file
·3443 lines (3388 loc) · 107 KB
/
aca-api.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
swagger: '2.0'
info:
title: Marketplace API
version: '1'
description: |
# About
The Marketplace API delivers data that helps users find and evaluate health care insurance plans, providers, and coverage information on the marketplace. It’s used by [HealthCare.gov](https://healthcare.gov) and other third party services. Request an API token [here](https://developer.cms.gov/marketplace-api/key-request.html), or learn more from [the developer site](https://developer.cms.gov/marketplace-api/).
## Retention
Marketplace API data includes at minimum the last three years of data.
## Limitations
API keys are rate limited. This rate limit is passed along in the Header information provided. If you have concerns with the rate limit, please reach out to the [Marketplace API team](mailto:[email protected]).
# Quickstart
This section will cover a short workflow for a common scenario — looking up insurance plans for a person's household with premiums and estimated tax credits, obtaining details about a particular plan, and looking up the drug coverage for a specific plan. Other endpoints, like looking up doctors and providers, or getting recent state medicaid information, are covered in the docs.
## Search for health insurance plans
We begin by searching for the health insurance plans for a 27 year-old woman living in North Carolina by posting a single person household to the plan search endpoint
```
apikey="d687412e7b53146b2631dc01974ad0a4" # rate limited test key
curl --request POST \\
--url "https://marketplace.api.healthcare.gov/api/v1/plans/search?apikey=${apikey}" \\
--header 'content-type: application/json' \\
--data '{
"household": {
"income": 52000,
"people": [
{
"age": 27,
"aptc_eligible": true,
"gender": "Female",
"uses_tobacco": false
}
]
},
"market": "Individual",
"place": {
"countyfips": "37057",
"state": "NC",
"zipcode": "27360"
},
"year": 2019
}'
```
This **POST** request returns health insurance information and pricing estimates for the plans for which she can sign up. More discussion about building the household JSON object can be found later on this page. Don't know the county [FIPS](https://en.m.wikipedia.org/wiki/FIPS_county_code) code? To look it up for this person's zip code, we use the counties by zip endpoint.
```
apikey="d687412e7b53146b2631dc01974ad0a4"
zipcode="27360"
curl "https://marketplace.api.healthcare.gov/api/v1/counties/by/zip/${zipcode}?apikey=${apikey}"
```
This helps gather the necessary information to build the household object to submit to the API.
## Get details about a specific health insurance plan
With a plan search completed, let's look more closely at a particular plan. For example, **Blue Cross Blue Shield of North Carolina Blue Value Catastrophic** was one of the first returned from the example above. We will use it as an example to drill down
```
apikey="d687412e7b53146b2631dc01974ad0a4"
planid="11512NC0100031"
year="2019"
curl "https://marketplace.api.healthcare.gov/api/v1/plans/${planid}?year=${year}&apikey=${apikey}"
```
Using this endpoint will provide more granular information about the particular plan for a searching user, like issuer information, cost sharing deductibles, eligible dependents, website urls, quality ratings, and more.
## Standard Plans
Some plans are considered **standard plans.** These can be identified in the results of a plan search or plan details endpoint. If a plan has a **design_type** that is one of the following, it is considered a standard plan: "DESIGN1", "DESIGN2", "DESIGN3", "DESIGN4", "DESIGN5". If a plan has a **design_type** of "NOT_APPLICABLE", then it is not considered a standard plan.
## Get drug coverage information about a health insurance plan
Now that we have a plan of interest, let's look up what drugs it covers. We want to know if **ibuprofen** is covered under the insurance plan. First, we can mimic a user interaction with an autocomplete for ibuprofen for a typeahead.
```
apikey="d687412e7b53146b2631dc01974ad0a4"
query="ibuprof"
curl "https://marketplace.api.healthcare.gov/api/v1/drugs/autocomplete?q=${query}&apikey=${apikey}"
```
Among other things, this provides us with an **RxCUI**, a unique identifier for a clinical drug. We can use it along with the plan id to query the API for whether or not **ibuprofen** is covered under this plan
```
apikey="d687412e7b53146b2631dc01974ad0a4"
drugs="1049589"
planids="11512NC0100031"
year="2019"
curl "https://marketplace.api.healthcare.gov/api/v1/drugs/covered?year=${year}&drugs=${drugs}&planids=${planids}&apikey=${apikey}"
```
The API confirms that ibuprofen is covered.
# More information about households
The household in the example above was sufficient to query Marketplace API, but there are more optional fields that can provide more accurate search results and premium estimates, or can be used by application developers to specify scenarios. For example, if a household does not live together, certain plans may no longer be eligible to them.
We begin with an example, describing what some of the less intuitive fields means. Here's the JSON of a fully filled in household, using all possible features
```
{
"aptc_override": 288.61,
"household": {
"effective_date": "2019-05-01",
"has_married_couple": true,
"income": 52000,
"unemployment_received": Adult,
"people": [
{
"age": 27,
"dob": "1992-01-01",
"aptc_eligible": true,
"does_not_cohabitate": false,
"gender": "Female",
"has_mec": false,
"is_parent": false,
"is_pregnant": false,
"relationship": "Self",
"uses_tobacco": false,
"utilization": "Medium"
},
{
"age": 25,
"dob": "1994-03-03,
"aptc_eligible": true,
"does_not_cohabitate": false,
"gender": "Male",
"has_mec": false,
"is_parent": false,
"is_pregnant": false,
"relationship": "Spouse",
"uses_tobacco": false,
"utilization": "Medium"
}
]
},
"market": "Individual",
"place": {
"countyfips": "37057",
"state": "NC",
"zipcode": "27360"
},
"year": 2019
}
```
## APTC Override
The `aptc_override` is an optional override to specify the Advanced Premium Tax Credit for a user, if the exact value is already known. For persons in the household, `aptc_eligible` denotes if the person is eligible for the Advanced Premium Tax Credit.
## Unemployment Received
As part of the American Rescue Plan, if the household has received unemployment benefits during 2021 the household income must be capped to 133% of the Federal Poverty Level for the household size in APTC and CSR estimations. If the recipient is an adult tax payer, both ATPC and CSRs will be affected. If only a tax dependent received unemployment, the only effect will be to CSR eligibility.
If both an adult and dependent have received unemployment, "Adult" should be passed so that the maximum APTC and CSRs are received.
This field defaults to None if not included and only affects the 2021 market year.
## Effective Date
This is the date a plan or coverage goes into effect and is used in premium calculations and determining eligibility. If omitted, the value defaults to the effective date of the plan, which is generally Jan 1 of the market year. The `effective_date` is required to correctly calculate the number of months since an individual has used tobacco. The number of months is the difference of the last tobacco use date until the `effective_date`. Considering the number of months since last tobacco use can impact the rate charged by a plan, this field is required to be included for a more accurate search result.
## Age Calculation
Either an `age` or `dob` value must be provided. If `age` is provided that value is used in determining eligibility and premiums. If a `dob` is provided, a more accurate age is calculated using the combination of `dob`, the effective date, and plan specific rating-age adjustments. If both fields are populated, `age` takes precedence and no calculation will occur.
Plan rates can have age adjustments affecting what premiums get returned. Additionally, effective date in relation to age affects premium calculation and eligibility. Therefore, determining the correct age is important for accurate results.
## Cohabitation
`does_not_cohabitate` indicates whether the person is living with the household.
## Minimal Essential Coverage (MEC)
`has_mec` indicates whether a person has Medicaid/CHIP and may possibly not be included in the household for premium determination and insurance eligibility.
## Relationship
`relationship` — which is not required to issue a request — is the relationship of a household member to the person applying for health insurance. For the main enrollee, the `Self` relationship is used.
Each plan on the marketplace defines a set of dependent relationships within a household as eligible to enroll in that plan.
If it is known by the caller what relationships exist within a household when making a request to Marketplace API, the API can more accurately determine household eligibility for plans. If the relationship field is used in a request, it must be a valid relationship for the provided market year (see list below).
When a household request is sent without relationships present in the household, Marketplace API will make as accurate an eligibility determinaton as possible without the relationship values.
The total set of dependent relationships that plans may use to restrict eligibility may change over the years. For 2020 and 2021, the possible relationship types that plans may utilize are as follows
2020 | 2021
--------------------------------- | ---------------------------
`Self` | `Self`
`Brother or Sister` | `Brother or Sister`
`Child` | `Child`
`Collateral Dependent` | `Collateral Dependent`
`Ex-Spouse` | `Ex-Spouse`
`Foster Child` | `Foster Child`
`Grandson or Granddaughter` | `Grandson or Granddaughter`
`Life Partner` | `Life Partner`
`Nephew or Niece` | `Nephew or Niece`
`Other Relationship` | `Other Relationship`
`Other Relative` | `Other Relative`
`Sponsored Dependent` | `Sponsored Dependent`
`Spouse` | `Spouse`
`Stepson or Stepdaughter` | `Stepson or Stepdaughter`
`Ward` | `Ward`
`Adopted Child` |
`Annultant` |
`Brother-in-Law or Sister-in-Law` |
`Court Appointed Guardian` |
`Dependent of a Minor Dependent` |
`Guardian` |
`Son-in-Law or Daughter-in-Law` |
`Stepparent` |
As can be seen from this list, the list of potential relationships has been simplified between 2020 and 2021. When a relationship is not one of the obvious choices in this list, the fallback values of `Other Relative` and `Other Relationship` may be used.
## Utilization
Finally, `utilization` is one of `{"Low", "Medium", "High"}` and is a description of how much a person intends to use their health insurance.
# Understanding Errors
The Marketplace API returns standard HTTP status codes which indicate whether a specific HTTP request has successfully completed. For some errors, additional information is provided in the response body, including an application error code and a brief message.
## HTTP Response Status Codes
Responses are grouped in five classes:
- Successful responses (200–299)
- Client errors (400–499)
- Server errors (500–599)
## Marketplace API Error Codes
The various codes are listed below:
1000 - errInternalServerError |
-----
The Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
```
Request: GET /api/v1/drugs/search?q=...
Response: {
"code": "1000",
"status": "500",
"message": "Internal server error",
"error": "sql: Scan called without calling Next"
}
```
1001 - errCountyNotFound |
-----
This error code is returned by the [County Lookup by FIPS](#reference/geography/county-lookup-by-fips/get) endpoint when no county is found using the FIPS provided in the request. For example:
```
Request: GET /api/v1/counties/35094
Response: {
"code": "1001",
"status": "404",
"message": "county not found"
"error": "sql: No records found"
}
```
1002 - errStateNotFound |
-----
This error code is returned by the [Lookup State](#reference/geography/lookup-state/get) endpoint when no state is found using the state provided in the request. For example:
```
Request: GET /api/v1/states/NP
Response: {
"code": "1002",
"status": "404",
"message": "state not found"
"error": "sql: No records found"
}
```
1003 - errInvalidInput |
-----
This error code is returned by various endpoints when the required input is invalid. The message provided in the response will assist in resolving the problem before re-sending the request. For example:
```
Request: GET /api/v1/issuers/1019
Response: {
"code": "1003",
"status": "400",
"message": "invalid issuers request"
"error": "invalid issuer ID format"
}
```
1004 - errIssuerNotFound |
-----
This error code is returned by the [Get Issuer](#reference/insurance-issuers/get-issuer/get-issuer) endpoint when no issuer is found using the issuer id provided in the request. For example:
```
Request: GET /api/v1/issuers/01922
Response: {
"code": "1004",
"status": "404",
"message": "issuer not found"
"error": "sql: No records found"
}
```
1005 - errCrosswalkNotFound |
-----
This error code is returned by the [Crosswalk a previous year plan](#reference/insurance-plans/plan-crosswalk/crosswalk-a-previous-year-plan) endpoint when no crosswalk is found using the parameters provided in the request. For example:
```
Request: GET /api/v1/crosswalk&year=2018&plan_id=53882IL0040002&state=IN
&zipcode=60647&fips=17031
Response: {
"code": "1005",
"status": "404",
"message": "No crosswalk found for those parameters"
"error": "sql: No records found"
}
```
1006 - errPlanNotFound |
-----
This error code is returned by various endpoints when no plan is found using the parameters provided in the request. For example:
```
Request: GET /api/v1/plans/11512NC0100035
Response: {
"code": "1006",
"status": "404",
"message": "Plan not found"
"error": "sql: No records found"
}
```
1007 - errTimeout |
-----
This error code is returned by various endpoints when the request timed out. For example:
```
Request: various endpoints
Response: {
"code": "1007",
"status": "500",
"message": "request timed-out, try again"
"error": "db query timed-out"
}
```
1008 - errStateMedicaidNotFound |
-----
This error code is returned by the [State Medicaid Data](#reference/geography/state-medicaid-data/get) endpoint when no medicaid is found using the parameters provided in the request. For example:
```
Request: GET /api/v1/states/NV/medicaid
Response: {
"code": "1008",
"status": "404",
"message": "state medicaid not found"
"error": "year out of range"
}
```
1009 - errPovertyGuidelineNotFound |
-----
This error code is returned by the [State Poverty Guidelines](#reference/geography/state-poverty-guidelines/get) endpoint when no U.S. federal poverty guidelines is found using the parameters provided in the request. For example:
```
Request: GET /api/v1/states/XX/poverty-guidelines
Response: {
"code": "1009",
"status": "400",
"message": "poverty guideline not found"
"error": "sql: No records found"
}
```
1010 - errPercentageFPLNotFound |
-----
This error code is returned by the [Poverty Level Percentage](#reference/households-&-eligibility/poverty-level-percentage/get) endpoint when no percentage of federal poverty level is found using the parameters provided in the request. For example:
```
Request: GET /api/v1/households/pcfpl&year=2021&state=NV&size=2&income=14000
Response: {
"code": "1010",
"status": "404",
"message": "percentage of federal poverty level not found"
"error": "guideline not found for state: NV, year: 2021"
}
```
1011 - errQualityRatingNotFound |
-----
This error code is returned by the [Quality Ratings](#reference/insurance-plans/quality-ratings/get) endpoint when there are no quality ratings for a plan. For example:
```
Request: GET /api/v1/plans/XXXXXXXXXXX/quality-ratings&year=2021
Response: {
"code": "1011",
"status": "404",
"message": No quality rating found for those parameters"
"error": "sql: No records found"
}
```
1012 - errCoverageUnavailable |
-----
This error code is returned by various endpoints when the coverage data is temporarily unavailable. For example:
```
Request: various endpoints
Response: {
"code": "1012",
"status": "503",
"message": "coverage data temporarily unavailable"
"error": "coverage database unavailable"
}
```
1013 - errProviderNotFound |
-----
This error code is returned by various Provider related endpoints when the provider is not found. For example:
```
Request: various endpoints
Response: {
"code": "1013",
"status": "404",
"message": "provider not found"
"error": "sql: No records found"
}
```
1014 - errDrugNotFound |
-----
This error code is returned by various Drug related endpoints when the drug is not found. For example:
```
Request: various endpoints
Response: {
"code": "1014",
"status": "404",
"message": "drug not found"
"error": "sql: No records found"
}
```
1015 - errMissingMedicaidCHIPEligibility |
-----
This error code is returned when no Medicaid CHIP Eligibility plans are found using the parameters provided in the request.
```
Request: POST /api/v1/households/eligibility/estimates
Response: {
"code": "1015",
"status": "404",
"message": "missing medicaid eligibility data"
"error": "missing eligibility for fiscal year: YYYY, quarter: Q, state: SS"
}
```
1016 - errTooFewPlans |
-----
This error code is returned when there are not enough plans in a given service area to compute a second lowest cost silver plan for an example, the errTooFewPlans code may be returned.
```
Request: POST /api/v1/households/eligibility/estimates
Response: {
"code": "1016",
"status": "404",
"message": "not enough plans to calculate SLCSP/LCBP"
"error": "not enough plans to calculate SLCSP/LCBP"
}
```
1017 - errRateAreaNotFound |
-----
This error code is returned by various Drug related endpoints when the rate area is not found. For example:
```
Request: GET /api/v1/rate-areas?state=IN&zipcode=60647&fips=17031
Response: {
"code": "1017",
"status": "404",
"message": "rate area not found"
"error": "No rate area could be determined"
}
```
## Marketplace API Common Error Codes
```
400 Bad Request - Client supplied invalid or incorrect values to the requested end-point
404 Not Found - End-point could not find the requested object(s)
````
## Marketplace API Uncommon Error Codes
```
500 Internal Server Error - An unexpected error occurred
503 Service Unavailable - The requested service is temporarily unavailable, try again later.
````
schemes:
- https
host: marketplace.api.healthcare.gov
basePath: /api/v1
produces:
- application/json
tags:
- name: Geography
description: 'Geographic data, including information on states, counties, and zipcodes.'
- name: Provider & Drug Coverage
description: 'Lookup information on providers, drugs, and what is covered under what plans.'
- name: Households & Eligibility
description: 'Household specific calculations, including eligibility information, out of pocket costs, poverty levels, and cost benchmarks.'
- name: Insurance Plans
description: Data on both health and dental insurance plans.
- name: Insurance Issuers
description: Data related to health insurance issuers on the marketplace.
- name: Enrollments
description: Enrollment grouping validation and information.
- name: API Reference
description: Information about the state of Marketplace API.
definitions:
Address:
properties:
city:
type: string
state:
type: string
street_1:
type: string
street_2:
type: string
zipcode:
type: string
countyfips:
description: 5-digit county FIPS code
type: string
type: object
ApplicationError400:
properties:
code:
description: Marketplace API status code
type: string
example: '1003'
status:
description: HTTP status code
type: string
example: '400'
msg:
description: Message describing the type of error
type: string
example: 'invalid get county request'
err:
description: Specific error encountered
type: string
example: 'FIPS: has invalid format'
type: object
ApplicationError404:
properties:
code:
description: Marketplace API status code
type: string
example: '1006'
status:
description: HTTP status code
type: string
example: '404'
msg:
description: Message describing the type of error
type: string
example: 'Plan not found'
err:
description: Specific error encountered
type: string
example: 'sql: No records found'
type: object
Benefit:
properties:
name:
type: string
covered:
type: boolean
cost_sharings:
items:
$ref: '#/definitions/CostSharing'
type: array
explanation:
type: string
exclusions:
type: string
has_limits:
type: boolean
limit_unit:
type: string
limit_quantity:
format: integer
type: number
type: object
CostSharing:
properties:
coinsurance_options:
type: string
coinsurance_rate:
format: float
type: number
copay_amount:
type: number
copay_options:
type: string
network_tier:
$ref: '#/definitions/NetworkTierEnum'
csr:
$ref: '#/definitions/CostSharingReductionEnum'
display_string:
type: string
type: object
CSRRequestEnum:
type: string
description: Cost-sharing reduction (CSR) override for requests
enum:
- CSR73
- CSR87
- CSR94
- LimitedCSR
- ZeroCSR
CostSharingReductionEnum:
type: string
description: Cost-sharing reduction (CSR)
enum:
- Exchange variant (no CSR)
- Zero Cost Sharing Plan Variation
- Limited Cost Sharing Plan Variation
- 73% AV Level Silver Plan CSR
- 87% AV Level Silver Plan CSR
- 94% AV Level Silver Plan CSR
- Non-Exchange variant
- Unknown CSR
properties: {}
CSREligibilityEnum:
type: string
description: Cost-sharing reduction (CSR)
enum:
- 73% AV Level Silver Plan CSR
- 87% AV Level Silver Plan CSR
- 94% AV Level Silver Plan CSR
properties: {}
County:
properties:
fips:
type: string
example: '04013'
name:
type: string
example: Maricopa County
state:
description: 2-letter USPS state abbreviation
example: AZ
type: string
type: object
CurrentEnrollment:
description: Current/existing enrollment information used to determine tobacco status for CiC enrollments. This will ensure rate calculation is done correctly.
required:
- plan_id
- effective_date
- uses_tobacco
properties:
plan_id:
$ref: '#/definitions/PlanID'
effective_date:
description: Date plan went into effect (ISO-8601 YYYY-MM-DD)
type: string
pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'
x-example: '2020-01-01'
uses_tobacco:
type: boolean
type: object
DataVersion:
type: object
properties:
name:
type: string
updated:
type: string
description: iso-8601 date
Deductible:
properties:
amount:
type: number
csr:
$ref: '#/definitions/CostSharingReductionEnum'
family_cost:
$ref: '#/definitions/FamilyCostEnum'
network_tier:
$ref: '#/definitions/NetworkTierEnum'
type:
enum:
- Medical EHB Deductible
- Combined Medical and Drug EHB Deductible
- Drug EHB Deductible
type: string
individual:
description: Applies to individuals
type: boolean
family:
description: Applies to families
type: boolean
display_string:
type: string
description: An optional human-readable description
type: object
DiseaseMgmtProgramsEnum:
enum:
- Asthma
- Heart Disease
- Depression
- Diabetes
- High Blood Pressure and High Cholesterol
- Low Back Pain
- Pain Management
- Pregnancy
- Weight Loss Programs
type: string
properties: {}
Drug:
properties:
id:
description: drug ID
type: string
pattern: '^[0-9]{1,10}$'
name:
description: normalized SAB=RXNORM name
type: string
rxcui:
$ref: '#/definitions/RxCUI'
strength:
description: strength information for this drug
type: string
route:
description: route information for this drug
type: string
full_name:
description: full name information for this drug
type: string
rxterms_dose_form:
description: rxtermsDoseForm value for this drug
type: string
rxnorm_dose_form:
description: rxnormDoseForm for this drug
type: string
type: object
Coverage:
type: string
enum:
- Covered
- NotCovered
- DataNotProvided
- GenericCovered
properties: {}
DrugCoverage:
properties:
rxcui:
$ref: '#/definitions/RxCUI'
plan_id:
$ref: '#/definitions/PlanID'
coverage:
$ref: '#/definitions/Coverage'
generic_rxcui:
type: string
description: The RxCUI for the generic equivalent of the given drug
Eligibility:
properties:
aptc:
format: float
type: number
csr:
$ref: '#/definitions/CSREligibilityEnum'
hardship_exemption:
type: boolean
is_medicaid_chip:
type: boolean
type: object
FamilyCostEnum:
description: family cost enumeration for MOOPs and deductibles
enum:
- Individual
- Family Per Person
- Family
type: string
properties: {}
HRA:
description: monthly employee HRA from employer
format: float
type: number
Range:
properties:
min:
format: float
type: number
max:
format: float
type: number
type: object
PlanSearchFilter:
description: plan search filter
properties:
disease_mgmt_programs:
type: array
items:
$ref: '#/definitions/DiseaseMgmtProgramsEnum'
division:
$ref: '#/definitions/ProductDivisionEnum'
issuer:
description: Issuer name
type: string
issuers:
description: A List of Issuers names
type: array
items:
type: string
metal_levels:
description: A list of Metalic Levels
type: array
items:
$ref: '#/definitions/MetalLevelEnum'
metal_level:
$ref: '#/definitions/MetalLevelEnum'
metal_design_types:
description: A list of Plan Design Type / Metalic Level Combinations
type: array
items:
$ref: '#/definitions/MetalDesignType'
design_types:
description: A list of Plan Design Types
type: array
items:
$ref: '#/definitions/DesignTypeEnum'
premium:
type: number
type:
$ref: '#/definitions/PlanTypeEnum'
types:
type: array
items:
$ref: '#/definitions/PlanTypeEnum'
description: a list of plan types
deductible:
type: number
hsa:
description: HSA eligibilty
type: boolean
oopc:
description: Out of Pocket Costs
type: number
child_dental_coverage:
description: Only show plans with child dental coverage
type: boolean
adult_dental_coverage:
description: Only show plans with adult dental coverage
type: boolean
drugs:
description: A list of RXCUIs
type: array
items:
type: string
pattern: '^[0-9]{5,7}$'
providers:
description: A list of NPIs
type: array
items:
type: string
pattern: '^[0-9]{10}$'
quality_rating:
description: Quality ratings for a plan
type: number
simple_choice:
type: boolean
premium_range:
$ref: '#/definitions/Range'
deductible_range:
$ref: '#/definitions/Range'
type: object
GenderEnum:
enum:
- Male
- Female
type: string
Household:
description: 'If a household is not included, will default to Individual household'
properties:
income:
description: household's yearly income in dollars
format: float
type: number
unemployment_received:
description:
Specifies whether a tax payer or tax dependent in the household received unemployment benefits for market year 2021.
May affect ATPC and CSR calulations due to income percentage capping if income is above 133% of the Federal poverty level.
If the person who received unemployment is a tax dependent, only the eligible CSRs will be affected.
Defaults to None
enum:
- Adult
- Dependent
- None
type: string
people:
description: people in household applying for coverage/seeking eligibility esimate; first is considered the subscriber
items:
$ref: '#/definitions/Person'
type: array
has_married_couple:
type: boolean
effective_date:
description: The effective date of the application (YYYY-MM-DD)
type: string
pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'
example:
income: 20000
people:
- age: 34
dob: "1984-01-06"
is_pregnant: false
is_parent: false
uses_tobacco: false
gender: Male
has_married_couple: false
type: object
ICHRAResponse:
properties:
affordable:
type: boolean
premium:
type: number
example:
affordable: 'true'
premium: 850.16
type: object
LowestCostPlanHousehold:
properties:
income:
description: household's yearly income in dollars
format: float
type: number
people:
description: people in household applying for coverage/seeking eligibility esimate
items:
$ref: '#/definitions/LowestCostPlanPerson'
type: array
example:
income: 60000
people:
- dob: '1979-01-06'
current_plan: 45127PA0020020
csr_variant: no_csr_eligibility
relationship: Self
uses_tobacco: false
age: 39
effective_date: '2019-01-01'
type: object
InsuranceMarketEnum:
enum:
- QHP
- MSP
type: string
properties: {}
Issuer:
properties:
eligible_dependents:
description: list of allowed relationship types for dependents
items:
$ref: '#/definitions/Relationship'
type: array
id:
description: 5-digit HIOS ID
type: string
individual_url:
description: URL for individual market plans
type: string
name:
description: issuer's name
type: string
shop_url:
description: URL for SHOP market plans
type: string
state:
description: 2-letter USPS state abbreviation
type: string
toll_free:
description: toll-free customer service phone number
type: string
tty:
description: TTY customer service number)
type: string
type: object
MOOP:
description: maximum out-of-pocket
properties:
amount:
type: number
csr:
$ref: '#/definitions/CostSharingReductionEnum'
family_cost:
type: string
enum:
- Individual
- Family
- Family Per Person
network_tier:
$ref: '#/definitions/NetworkTierEnum'
type:
enum:
- Maximum Out of Pocket for Medical and Drug EHB Benefits (Total)
- Maximum Out of Pocket for Medical EHB Benefits
- Maximum Out of Pocket for Drug EHB Benefits
type: string
individual:
description: Applies to individuals
type: boolean
family:
description: Applies to families
type: boolean
display_string:
type: string
description: An optional human-readable description
type: object
MarketYear:
type: number
MarketYears:
description: Current and supported market years
type: object
properties:
current:
description: Current market year
type: number
supported:
description: Supported market years
type: array
items:
$ref: '#/definitions/MarketYear'
MarketEnum:
enum:
- Individual
- SHOP