skip to main content

Advanced Search for Legislation

Use this page to find bills and resolutions in the United States Congress. We have complete information back to 1973, plus limited information about enacted laws from 1951-1972 and bills from 1799-1873. Can’t find a newly introduced bill? It can take a few days between a legislator announcing a new bill and when Congress publishes its official status information and text.

Page Icon
"); opt.find('input').attr('id', "searchform_field_" + field + "_" + j); opt.find('input').attr('name', field); if (values[j][0] !== null) // e.g. from BooleanField(null=True) opt.find('input').attr('value', values[j][0]); else opt.find('input').attr('value', '__NULL__'); opt.find('label').attr('for', "searchform_field_" + field + "_" + j); if (values[j][0] == "__ALL__") { opt.find('.name').text("All"); } else { opt.find('.name').text(values[j][1]); if (values[j][2]) opt.find('.count').text(make_count(values[j][2])); } if (values[j][3]) opt.attr("title", values[j][3]); if (type == "checkbox") { // restore checked status if (postdata[field]) { for (i in postdata[field]) { if ((""+postdata[field][i]) == (""+values[j][0])) { // convert value to string opt.find('input').attr('checked', '1'); if (postdata[field][i] != "__ALL__") has_default_value = false; } } } } else if (type == "radio") { if (postdata[field] == (""+values[j][0])) // convert value to string opt.find('input').attr('checked', '1'); if (postdata[field] != "__ALL__") has_default_value = false; } // check ALL if nothing is checked if (!postdata[field] && values[j][0] == "__ALL__") opt.find('input').attr('checked', '1'); node.append(opt); } } else if (type == "boolean") { var count = 0; node.attr('checked', field in postdata ); for (j in values) if (values[j][0] == "true") count = values[j][2]; if (count == 0) visible = false; // force hide node.parent().find('span.count').text(make_count(count)); } // On small-width screens, hide fields that have default values until the user wants to see them. if (visible && should_hide_default_facets && has_default_value) { field_container.attr("is-default-hidden", "true"); if (isinitial) field_container.hide(); else field_container.fadeOut(); } else { // Set visibility from what we're told from the server side. field_container.attr("is-default-hidden", "false"); field_container.toggle(visible); } } // Show the "Show more options" link if we've hidden anything. var has_hidden_facet = ($('#searchform *[is-default-hidden=true]').length > 0); $('#show_more_options').toggle(has_hidden_facet); // Don't show the facets until after the first time they are loaded. $('#searchform > .fieldset').show(); $('#searchform .initial_loading').hide(); } function show_more_options() { $('#searchform *[is-default-hidden=true]').fadeIn(); $('#show_more_options').fadeOut(); return false; // cancel click } var default_search = { }; default_search["congress"] = "119"; default_search["sort"] = "\u002Dproscore"; var current_page = 1; var update_search_lock = false; var prev_search = { }; function update_search(pagenum, pageinc, elem, isinitial) { if (update_search_lock) return; update_search_lock = true; $('#searchform input').prop('disabled', true); if (!pagenum && !pageinc) { // When changing the search options, reset to first page. pagenum = 1; } form = $('#searchform')[0]; if (elem && elem.type == "checkbox") { // If any ALL is chosen, clear out the other options. If any other option is // clicked, clear out the ALL. for (var i = 0; i " + r + "
\n" }) .join(""); // Prepare images to be lazy-loaded. results_html = results_html.replace(/ src=/g, " data-src="); results_container.append($("
" + results_html + "
")); results_container.find('img').Lazy(); $('#searcherror').text(''); $('.summary').show(); $('.summary .total').text(addCommas(res.total)); $('.summary .noun').text(res.total == 1 ? "bill" : "bills"); $('.summary .searchdescr').text(res.description ? " for " + res.description : ""); $("#loading_status").hide(); $("#show_more").toggle(res.page default_search) // may have yielded no results. Back off to all filters off. prev_search = { }; } prev_search.page = 1; // Call the search twice, because we get facets in two parts. prev_search.faceting = "false"; prev_search.do_search = 1; // always required $.ajax({ url: document.location.pathname, type: "GET", dataType: "json", data: prev_search, success: function(res) { if (res.error) return; show_facets(postdata, res.options, isinitial); } }); prev_search.faceting = "true"; $.ajax({ url: document.location.pathname, type: "GET", dataType: "json", data: prev_search, success: function(res) { if (res.error) return; show_facets(postdata, res, isinitial); } }); } else { // Updates checkboxes and radio buttons and the current values // for selects, but in order to be fast we were not returned // the other options for selects- that comes later. show_facets(postdata, res.options, isinitial); // After showing the main content and basic facets, show the full faceted results. postdata.faceting = "true"; $.ajax({ url: document.location.pathname, type: "GET", dataType: "json", data: postdata, success: function(res) { if (res.error) return; show_facets(postdata, res, isinitial); } }); prev_search = postdata; // Store the current search query in the hash so that the user can back-button to // this page and we will try to restore the query options. if (!current_search_set) { if (window.location.hash) // don't set if already blank window.location.hash = "#_"; // setting to blank jumps page to top } else { window.location.hash = "#" + form_qs(current_search); } } } current_page = res.page; update_search_lock = false; $('#searchform input').prop('disabled', false); }, error: function(jqXHR, textStatus, errorThrown) { $('.results').html(""); $('#searchform').text("Search is not currently operational: " + textStatus); update_search_lock = false; $('#searchform input').prop('disabled', false); $("#loading_status").show(); $("#show_more").hide(); } }); return false; // cancel any event } // jQuery may not be loaded yet so execute this naively window.post_jquery_load_scripts.push(function() { update_search(1, null, null, true); $(window).scroll(function() { if (update_search_lock) return; var s = $('#show_more'); if (s.is(":visible") && $(window).scrollTop() + $(window).height() > s.offset().top) s.click(); }); });