8f0b9b181e4b7be813445c43693a3f666e8b7619
lrnassar
  Fri Oct 10 18:57:15 2025 -0700
Adding API key documentation and updating the CAPTCHA message so people can find it, refs #36428

diff --git src/hg/htdocs/FAQ/FAQdownloads.html src/hg/htdocs/FAQ/FAQdownloads.html
index 64d080806a7..09095894f1a 100755
--- src/hg/htdocs/FAQ/FAQdownloads.html
+++ src/hg/htdocs/FAQ/FAQdownloads.html
@@ -43,30 +43,31 @@
 <li><a href="#download20">Minus strand coordinates - axtNet files</a></li>
 <li><a href="#download21">Mapping UCSC STS marker IDS to those of other groups</a></li>
 <li><a href="#download22">deCODE map data</a></li>
 <li><a href="#download29">Direct MariaDB (MySQL) access to data</a></li>
 <li><a href="#download34">Name of fourth column in BED output</a></li>
 <li><a href="#download36">Track data access</a></li>
 <li><a href="#snp">How do I download dbSNP data?</a></li>
 <li><a href="#snpAlleles">Why doesn't this SNP have two alleles?</a></li>
 <li><a href="#download37">Known issues with Table Browser GTF output</a></li>
 <li><a href="#download38">Table Browser output file not ordered</a></li>
 <li><a href="#download39">'Permisssion denied' error when trying to use command-line utilities</a></li>
 <li><a href="#download40">Restricted Track Data</a></li>
 <li><a href="#downloadAnalysis">What is the genome analysis set?</a></li>
 <li><a href="#downloadGenArk">How do I download GenArk data?</li>
 <li><a href="#downloadConservation">Why are the conservation scores different from the ones in the download file?</li>
+<li><a href="#CAPTCHA">How to make programmatic queries to the Genome Browser</li>
 </ul>
 <hr>
 <p>
 <a href="index.html">Return to FAQ Table of Contents</a></p>
 
 <a name="download1"></a>
 <h2>Downloading sequence and annotation data</h2>
 <h6>How do I obtain the sequence and/or annotation data for a release?</h6>
 <p> 
 Sequence and annotation data downloads are usually made available within the first week of the 
 release of a new assembly. The download directories are automatically updated nightly to 
 incorporate additions and modifications to the data.</p> 
 <p>
 You can download sequence and annotation data <a href="../goldenPath/help/ftp.html">using our FTP 
 server</a>, but we recommend using rsync, which has the advantage of starting up where it left off 
@@ -1285,16 +1286,35 @@
 <pre>https://hgdownload.soe.ucsc.edu/hubs/GCA/004/027/835/</pre>
 </p>
 
 <a name="downloadConservation"></a>
 <h2>Conservation scores downloads</h2>
 <h6>Why are the conservation scores on the UCSC Genome Browser site different from the ones in the
 download file?</h6>
 <p>
 The difference in the conservation scores, for both PhastCons and PhyloP, is that the wiggle
 database format (from which the details page and Table Browser scores are extracted) uses lossy
 compression that keeps enough resolution to display the pixelated scores in the browser graphic
 display but does not reconstruct the true original scores. This is why we make the original score
 files available for download.
 </p>
 
+<a name="CAPTCHA"></a>
+<h2>How to make programmatic queries to the Genome Browser</h2>
+<p>
+To access the UCSC Genome Browser programmatically and bypass the CAPTCHA, all requests must 
+include an API key. Note than an API key is not needed to use our <a target="_blank"
+href="/goldenPath/help/api.html">REST API</a>.</p>
+<p>
+To generate your own key, first <a target="_blank" href="/cgi-bin/hgSession">log in</a>
+with your UCSC Genome Browser account. Once logged in, go to the <a 
+target="_blank" href="/cgi-bin/hgHubConnect#hubDeveloper">Hub Development</a> page and generate a key
+from the <b>API key</b> section at the bottom of the page.</p>
+<p>
+The key must be appended to your request URLs using the <code>apiKey=</code> variable. 
+Separate it from other URL parameters with an ampersand (&amp;). For example, most queries will 
+work by adding <code>apiKey=YOUR_UNIQUE_KEY</code> to the end of the URL:</p>
+<p>
+<code>https://genome.ucsc.edu/cgi-bin/hgTracks?db=hg38&amp;apiKey=YOUR_UNIQUE_KEY</code></p>
+<p>
+If you experience any issues using the API key, please <a href="/contacts.html">contact us</a>.</p>
 <!--#include virtual="$ROOT/inc/gbPageEnd.html" -->