Wolfram Research

Function Repository Resource:

CheckHyperlinks

Source Notebook

Checks hyperlinks in an expression, webpage, or notebook, on your computer or in the cloud

Contributed by: Wolfram Staff

ResourceFunction["CheckHyperlinks"][expr]

checks hyperlinks in expr and reports which can be successfully followed and which are broken.

ResourceFunction["CheckHyperlinks"][expr,props]

gives only the specified properties props of the hyperlinks.

Details and Options

ResourceFunction["CheckHyperlinks"][expr,] checks hyperlinks either in expr itself or in an object to which expr is pointing.
The following expressions are interpreted as pointers to the target object:
CloudObject cloud object representing an API or a notebook
NotebookObject open notebook in the front end
URL URL object
File file object
String string representing a URL, or a path to a notebook or HTML file
Strings that do not point to a notebook or HTML file give an error.
Unless expr has special interpretation rules, ResourceFunction["CheckHyperlinks"] follows only elements with the explicit head Hyperlink.
Notebook expressions have special interpretation rules.
ResourceFunction["CheckHyperlinks"][obj] returns results in the form: <|"Valid"{vurl1,vurl2,},"Broken"{burl1,burl2,},"BrokenData"assoc|>, where vurli and burli are vaild and broken urls, respectively, and the association assoc is in the form <|burl1resp1,burl2resp2,|>, where respi are response or failure objects for burli.
Possible properties in ResourceFunction["CheckHyperlinks"][obj,props] are:
"Valid" valid URLs
"Broken" broken URLs
"BrokenData" association giving broken URLs and corresponding response or failure objects

Examples

Basic Examples

Check a hyperlink:

In[1]:=
ResourceFunction["CheckHyperlinks"][
 Hyperlink["https://www.wolfram.com"]]
Out[1]=

Check only for broken links:

In[2]:=
ResourceFunction["CheckHyperlinks"][
 Hyperlink["https://www.wolfram.com/broken"], "Broken"]
Out[2]=

Check several hyperlinks:

In[3]:=
{Hyperlink["https://www.wolfram.com"], Hyperlink["bad URL", "https://wolfram.com/does-not-exist"]}
Out[3]=
In[4]:=
ResourceFunction["CheckHyperlinks"][%]
Out[4]=

Check hyperlinks on a webpage:

In[5]:=
ResourceFunction["CheckHyperlinks"]["https://www.wolframalpha.com"]
Out[5]=

Check hyperlinks in a cloud object:

In[6]:=
co = CloudPublish[{Hyperlink["https://www.wolfram.com"], Hyperlink["http://www.wolfram.com/does-not-exist"]}]
Out[6]=
In[7]:=
ResourceFunction["CheckHyperlinks"][%]
Out[7]=

Check the same object given as a URL:

In[8]:=
First[co]
Out[8]=
In[9]:=
ResourceFunction["CheckHyperlinks"][%]
Out[9]=

Scope

Check hyperlinks in an expression:

In[10]:=
ResourceFunction["CheckHyperlinks"][
 Hold[If[True, Hyperlink["https://www.wolfram.com"], Hyperlink["https://www.wolfram.com/2"], Hyperlink["https://www.wolfram.com/3"]]]]
Out[10]=

Check hyperlinks in a cloud object:

In[11]:=
ResourceFunction["CheckHyperlinks"][
 CloudPublish[Hyperlink["https://www.wolfram.com"]]]
Out[11]=

Check hyperlinks in the body of a cloud API function:

In[12]:=
CloudPublish[
 Delayed[{Hyperlink["https://www.wolfram.com"]; DateString[]}]]
Out[12]=
In[13]:=
ResourceFunction["CheckHyperlinks"][%]
Out[13]=

Check hyperlinks in an open notebook object:

In[14]:=
nb = CreateDocument[{TextCell["S1", "Section"], TextCell[Hyperlink["Text link", "http://www.wolfram.com"], "Text"], ExpressionCell[
     Hyperlink["Input cell link", "https://www.wolfram.com/1"], "Input"]}];
In[15]:=
\!\(\*
GraphicsBox[
TagBox[RasterBox[CompressedData["
1:eJzt3Ql8VHW+5/2eeWae17ye55m5fWemb99l7p25fe+dmb6tuC/dane70Hda
bVTUVnFpRREUwQX39WqjIGKDKAooi2wiCGHfIXvIvqcqC6RYAgQJJJJokKC/
5/xPUpVTVefUXqlU/p/36/U1SdU5p86/glX/b+qcqr8f/fjIh//tD37wg0n/
wfjPyAeeu/qppx544dYfGj/cPnHSI2MnjnnotxOfHjN2zFOXj/6/jAs7/s0P
fvBvjW/+nfH96dOnxZru7m75+uuvpbOzUzo6OuTkyZNy4sQJaWtr88vx48dD
5ssvvwybY8eORZTW1ta4cvTo0UGbI0eOEEIIIYRonVTPx0Il3nlopPPdSObO
4ebfgfN1NYdXc3k1p1dzezXHV3N9p/m/Wk7ti8fjEZfLJRUVFVJcXCyFhYWy
Z88eKSgocEx+fn7I5OXlRZTc3NyokpOTk9BkZ2cTQgghhJAhmETPG6Odt0Y6
Hw43rw41J1dzdjV3V3N4NZdXc3o1t1dzfDXXt/YB9VV1BNUj9u7dK1VVVebX
tuNt0nmqU7o6u+Trrq8JIYQQQgghaRI1h1dzeTWnt87x1Zxfzf2/+eYbOXXq
lPm6h7pu3759Zk849dUp6WjvkPaT7XLyxEk52UYIIYQQQghJmxhzeDWXV3N6
c25vzPHVXF/N+dXcX3UB9bW6uloOHz4sX3V8JSfaTsixo8ek9UgrIYQQQggh
JM2j5vZqjq/m+mrOr+b+6pwD1QkOtxw2+wLzf0IIIYQQQoZm1FxfzfnV3L+p
qck8Tki9bnD08FFCCCGEEELIEI+a+1dWVprnDhxpOUIIIYQQQgjRJE2NTeZr
BKnuJIQQ4pSMjAxZvnx50qK2n+oxEkIIIQMddWxQqrsIIYQ4ZX/zfnOurt7T
IBnUdtX2Uz1OQgghZMBz+IgcPnSYEEIGZZr/5ofS/Of/JikdwEv1gFSPkxBC
CCGEENIf1QHoAYQQQkiaJTdfWma9J4cefVgO3jZCDgz/lRn1vbpMXaeWSdX+
HarNkkPZb8nBdb+X/csvE8+ifzCjvleXqevUMqnav93uLHl9z1S5adtdct66
q+RvvjjHjPpeXaauU8uk/PdMSBKT8dO/Nefp9ABCCCEksWk52JL45BfIoWcn
yYFf/1y++d11InfcJHLPbSJ/uKM36nvjMnWdWkYtq9ZJyr7Y5FBdjhzc9KB4
FvyVdGX8tci2fxDZ/VOR7HN6o743LlPXqWXUsmqdgdq/THeO3LvrYfnhqn+U
/7LzHPm7gsvkJyVXyP8s/5UZ9b26TF2nllHLqnUGav8IGcjsbdo7ID0g1eMc
iHj2eeTgINgPQgghgyOHDhxKbBYtlP2/uVp6Rl4vMvpOkYfuFnnQIeo6Yxm1
rFpHrZvw/QnIwYLZ0vzpP8mZjf9DJHeYSP55Innn20ddZyyjllXrqHWTvX/v
lXwkf/vFufKX2RfKTyuvln+uvlb+uaovlX3x/mxcp5ZRy6p11LrJ3j9CBjrR
nh/wfU+PHBt9h/k1mh6Q6nEmMwf375Vlb4yRyy+9XC6/5D7Jq9kX1foH9tXK
/GlT5a3Jr8tnW0oHdN9Lt3wmr09+S6ZOWyB1+w4kdNsNNTVSuqdISouLpbi4
QuobPFGt3+Sq9a1fVlItDU2J3T9CCEmrvPeenPrt1SJ3j/Sf/48eZR9rHzDW
UeuqbSRr/w5mvSlfrfqRyK7/5T//z3WItQ8Y66h11TaStX//WjBFfrj1p/L3
RVf0z/+Nef9PK66xja8TGMuqddS6ahsp/3dASAIT7vyAM559fj93zJ0lBy/7
qfk11HLx9oCD+5tl0Yuj5arfXCUPv75MmvcfDLtO7spZxvL/R64a/riUuKOb
c8Z1H7ry5SbVAfry1tKcKNffI3f0rfv4+9sG9Pe/9YNJff3lJsl3NSdkmyU7
1sjo31zpuz+sefSF2VJSF7on1Zdmykt/uMl2/VdnfC71Ce4rhBCSrBw0nrsS
kkULezuAOu7Hdv5/Z0Bs+oCxrtqG2lbC9qsvBwo+7O0A6rgf6/w/Z1hvss/z
j/dyax8w1lXbUNtK9P7NKpljzuP/qeyX/vP/8jCx9AG1rtqG2lai94+QVCXc
+QFHb/+ttFx7sZz6YrmcbT0iLb+6QL7raDe/qp/V5S3XXGouF6oHRLtfBzxN
8u6918hll1wmvxr5jtQ37w+7zo65T5vLX3bx7yXPmGsm6j5qqsiUCffdL/fe
9pCsza8Lut7TVCGPXnJp720bWbSj0nL9fsn44DW531h/0uuLpclzIGj9fe4C
ubdv/Umztgzo73/nvJd899meuO+z/bL23Sd894NzrpGNBS7bbRRvWhB+/YvG
J2BfCSEkTZJXYJ7/a74OENQBjDn/A3fZx9oHvOsZ2zDPJTa2maj9O1CTbZ7/
a74OENgBAuf/dn3A2gWMbahtqW0mav8yXTnm+b/m6wB2HaDMITZdQG1DbUtt
M+X/LghJQJoamkL2gC8fHyOe//6f5Ni4e+TAOf9Nvpr3vnm5+qp+Vper69Vy
ie4BMy09wG7+HJjEzmn7U5O5xDcHXZpZZbtMfVmBbNm6XXbuKpL9AeOYdusv
Q/aZodIDKncs8Zuvj3/9QykoqZT6ulrJ3b5aHhh+hWUu/5zUBNwX+6ozZYRl
/dufnCpZ+aVSU1UhG5fN9tv2vzz8UUT/JgjRPXtdFbJy4aeycN6nUlzdaLvM
PneVfPzuH2X8I4/0ZYIsz8gUT4j/x6JZx9NQJ0tnz5CnnnjSyEuydkeR/b7W
lMmn8z6WBQu+kPp94f/2kw45YNwf8ebg00/JmZuv7z8WKJIO4NQFjG2obalt
JmLfzGwYLd9u+Lv+Y4ECO0CWkcyAZDl0AWMbaltqm4nav3t2jJEfZ53feyyQ
XQcovVr+ueQav6jLbLuAsQ21LbXNhN1/hKQw4c4POPnmK9I+Y4r5msBX8z+U
Q1cOkzN7G82v6md1efuf3jKXC9UDot2v/c2NMuOeX8ulF18qv7xlmjQac8Zw
6+yY+6K5/KUX3S4FtXsTdh/VZX/eu10jn2fXRDmOvb5xXHP3u7bj2OvKl3su
vsRc5qn3tgzo7z9x95lHlv/rXb776Y0F24L/rTWWy1PX/cK3zJLd1X7Xb58z
yXfd2De/MOcT1uvrS7bJ7/quv/Tia2R7WeOA3leEpFvKsjbJhHHj5NG+bCkI
fvxqrCyQSZZlrHnpneWy1+YxK5p1PPvqZebj44OWW7GtyG+b1uVenbVSmiN4
zNciOTly8JeX987nQ3WA+wMSqgsYP6ttqm3Hu3/7q3fL/vl/0XtOcKgOsDsg
obqAsS21TbXtePdvZ91u+bPPf9J7TnCVcwf438X+cewCVb3nDqttqm2n/N8H
IXHG7vwAdQ7w6apyc55/+LdXSseHM+TQVedJ26tPy/6f/pV4/vL/Nr+qn9Xl
6nq13FcLPpJvqyuCziFOfQ/wSF1FlZSXV0rj3t7t1JQVypa162X1qtWyJmOD
5BdXB21vX4NLqqpqZPeKmb756cwVO8VVVSVVxvbcDZ7+Zd0u87Kqirq++atH
3MZyleUFvrnvL659SooqetetqnL71o2sB3ikYk+OrDX2d7WZtZKZV2b7HB0Y
T5Nb8nZs6RvrOtmxM19cffueqB6gfl/T77m6b1u/k1yHbRVvnGPpAZWO62fX
7rNdf/OsJ23XJ4T0x7O3XlZ/ND1o7h3YA9Tce9q4sX3XvyQFZbXSvHevZK75
1LfOovUFca1TV7TdvGzC429LbVOzVOVvMn9+8vl50riv/zF026fv9q4/9i1z
uXBjdNW6ZJ3xeKYeT8Mtq5ZRy6p1Bvp3sd94jI4nB2fM6H1vUL/XAsJ0gFBd
oO81AbVNte149+9A5uTe9wb1vhYQqgPsGtabUF2g7zUBtU217Xj377X8t8z3
//S9FhBBBwjVBbyvCahtqm3Hu3+EpDpB5wd8/70cveN6afn1hXJqyXw5XVkm
LVdfbJ4bbPruOzk8/OfmV0Vdrq5Xy51a/Inx/UXm+oE9INr98uxrkD/d/Wu5
5KJL5Kqb35YG4/ki3Drb57xgLn/JhbdJfk2T7/KagjW9lxtZtCVT3n98pO9n
a26dOFOqGpt9621971Hb5bxZsK3ct+wm77IX3ig5NXulqS5Pbgyx7s+vfkNc
e3tvSy1790UXm5c/OXNT0LjcZZky8ZarbLfzi2vGyK4St+N9Urb7C8f9+Cgj
x3jufcP2Pos2zXtdMvWWK/3uA7vlSrfM993+4l0Vluua5YvpL8ltI2+TR15d
6Pj73j3/JYf1CSHeZC6dJY+MHWtm+fpNMuP5ieb3m/Or/ZarLdzWt9x4yS5r
8Ltux6KZ5nWPTXhH3HubY17Hu/zsFVnmz/saKuXFvmW8j4FVeRt9+5tdVh/R
GF9/7XVj+UfkicefkMKCQsfl1HVqGbWsWmegfxfq/aTjycGxD/Z+PoD1tYBI
OoBtF7C8JmBsU2073v3bv+a23s8HCHwtwNoBvPP/wAR2AetrAsY21bbj3b8b
N99hfhaA32sBEXQAxy7Q95qA2qbadrz7R0iqU++qDzo/4LuvOqTlusulu7jA
/PnrbRvF8xf/Xs401ps/H77xV+ZX9bN6bUBdr6jlW669zFw/sAdEu1/Ne+vl
3VG/kosvvFiuvGmq1BvPF+HW2fbR8+byF19wq+RVN/our8z8rPfyCHLdg3Ol
se+2tn74ZMhlP91Z7njbTXUFcmuIdS//9etS17TPXLexNldGXXiRefkTMzb6
jakqZ3VE+/1FZlXQ/VGyeWHE4w68z2LJ2mljfdubtjwn6Pp9TVXyys1X+JZZ
V1Ab5W3sk3kTb+nb3xtkZ0VTyv//IWQwZueSaTLu4aclu6hG1P838199wvj5
YdmU5/84sXne2+blL0xdLvsCttFUWyRPGtep63cU1ca8TnX+FvPnN+dt7Fum
RJ4xfh7/2J/EbTwGen9WyyxYmxfxGF9+8WVjnXFmnpj4hOzJ3xO0jLpMXedd
Tq0z0L+LZuP5JJ4cuPV3vZ8LZvdagHW+7/0MMW/suoD1NQFjm2rb8e6fZ9ml
vZ8L5u0B3r/t270OYNcDvF3Au563BxjbVNuOd/+Grb3S/FywwB4Q2AF+WnS1
X4K6QEAPUNtU2453/whJeRzODzhzpMV8T6Cjo0aI57//UI7cMtz83ADVD/b/
zx+bX9XP6nJ1vVpOLa/Wszs/INr92tfklul3XSUXXXCRXDFiivl8EW6drR8+
Zy5/0fkjJbeqwXd5xe7lvZd7c/5dkrGtUBoa9kmjq0bWfvKm3/Vf5FX37kND
g7jdDVKwbp7vug/XFUiT2y3uOrc0WPbJ7rYbjGXqXRXy8k2/6BvHK1Jh9C61
rruuybduQ02O3HXBheYyj/9pg+/yvY0V8ljf5Sq3GM+bxZV1xuV7pa6yWKZO
uNl33WW/flYqjcu96za5i+R+y7pXjHhKsoqqjDE3ibuqVOa+cn/AfeJ/n8WS
hvLdcr1lmy9MWyolZdVSW10rRVmb5Km++0Hlt5MW+t1/kUS9l5Bvf8+bIBWW
8RJC+tNQUyV1rt7/P/Y1NcgnrzwuY8eMkQ25lb5l9ja65aNnHzMv/2xbSdA2
1PXv913vXS+WdRrKc+VR42d12aqN22TB2y+a3z8/ZYW5b3P79u35KUukKYrH
BPV3/scnqHXHmlHfF+QV+K5X3wder9ZJ9e8m2uy/7pf97xWayB5gLKO2He/+
eRb+pP+9Qu16gFMHCHxNILAHGNtU2453//561c/Mzwj2Oz843h5gbEttU207
1f8+CIk7Dp8f8G19nXls0Ndb1pvH+nzXecq8XJ0LcOD8n5hfzdcOjMvV9eZy
xvJqvUHdA86/XnaUNwatm/H2Y75lFu2o8LuuyrJ+4HXhbts6jl/dOc12HE49
oHjTh77bHT5+btC8eW9jrbx91y99y3yypf95ueCLGZYO8IpfR+jNXlnxx0cS
2gNU3CW7fGNxykNvLJbaKOfwqmOMtGxj4ZbgOQghJDhOPcB6+daCGtv15gas
F8s6KtlrF5mX9ed5KalplJxVc/p+fknKXU1Rj82pC9h1AGtHGNj7f19cSXYP
iHf/kt0D4t2/ZPeAePePkFTH7vMDeg4fMt8T9OidN8rBi/7R915BX+/cIod/
8wv57tRX5lf1s/c9g9Ryanm1nlo/sAdEu197G13yzp1XyYXnXyi/+N1b4jLm
jeHW2TL7WXP5C8+7RXIq632Xl+9a1nu5kYenrLJdt9KyzHMfbPG7zrr+wu2l
Ud12JOOor86WO8+/wFxm4rvr+y5vkgVPj+zb5m9le3mD7e1WZ63w7dsj72b0
3Wa9fDT+Wss+l9uua73dwP2ONVnrlsotfbfrlJvHT5H8cnfE22ysLZTx3v00
f4cZKf//hpB0iXo8+PjlifLwQw/J+pzKsJf3p0lWznjFvP7dT7fHvI43teWl
kp2ZLTnZe8TV0CS1e7aYy6lsya8xl1HHqda7GqManzr2Z+Jjap8eNqO+D/w5
Pzc/hff/3rhyYGQSjwsyth3v/nmWJvG4IGPb8e7fsIwkHhdkbDve/SMk1amr
qQs6T7j1D7eZrxGo84G/3rzOfN9Qz9/8v+L50b+XU0sXmIupr+pndbm6Xr0e
oJZX66n1A3tAtPvV1FAn0+64Qi447wL5+Y1vSp3xvBFunc0fPGMuf8GwmyW7
wu27vHzn0t7LjUyYvs523VDLWK9bsK0kqtuOZBzuqiy547zz/W5brTelbz2V
12cvlMWLFgdkuXz8pxeC9ttv3WF3SFaV23afmxrc8u4Dvwrab3X5++NH+LZr
m2H3SV51vf99MPdlv2XuGv+qrFq3WTJ37ZQVC2fJzX7r3yzbSuvC/k4b68vk
xd9d7lvvqt9Pler6xpT/f0NIukT9/zzvpQky5sEHZX12RdjL7a5fubUo5nXs
0lBbKi8Yy6jlPli2SxrqymXK04+aP6s8//pHUlHXEPEY1d/6J4xXtzvGL+qy
vJy8FN//TXHlwMOjk3aesNp2vPvnWX1r0s4TVtuOd/+u3/T7pJ0nrLYd7/4R
kuo4nR/wXftJ8+/96rh/9RlhZ/btlS8fuU8OXvgT8/MD1Ff1s3m5cb1aTi2v
1rM7Lija/Wqsr5W3f/8LOX/Y+XLl7VOk1pj7hVtn0/tPm8uff+5NklXu8l1e
umNJ7+VGHntnre26oZaxXjd/a3FUt20dx+U3TLYdh6syU34/7Dy/27auF2m8
24/mvrPbb7X+H2+8LPTtnfsvsssyTlfJVrnCcv2iDQVBt9XgrpJ5L97rW+aa
cR+KK8S+qeWn3/9L3/IXXzVJimrrU/7/DCHplMZ6l8x98TF5aPRoWZtV7nf5
h32XZ2SWhVxvozHnj3Wd4GXqZcmbk8xlHnvqA+MxwCUfTHqk9+dJL8nzjzxs
fv/M5MVSH8Hjvjfqb/6PPaJu+yEz6vvc7NyU3//xxvPu9KS9b6jadrz717zz
9aS9b6jadrz793LOH5P2vqFq26n+90FIvHE6P8DrxOsvyDe5meb3Xz76B+mY
O0s8f/v/Scec98yfFXW9Ws5JvD3g/HPvlT3V4ed/Q7kH3PvAI+bftpzy4AP3
yvPvrjDPA/a/zRek0t3geJ+tnj7epge4ZNXsP8mbf5wm77z9jk2mytS3F/lt
d9enr/n29eU5mxxvr8FdIo/98mLfbVq7hP/v3yVznrq5v3ec86DkVrlT/v8L
IekW5x7QPx+f+vGGoPXqa0rkGeM663qxrBOYnLULzesfGv2EFFS6xVWSKWON
n8eOe0uqjMcUd2WBPNl3/Z7K6P6fV13g6aeeNqO+T/V9b95nDY1xZe+uXUn7
HDG17Xj3r6lsW9I+R0xtO97921K5LWmfI6a2He/+EZLq2J0fYPXlYw/IqS+W
y7Fx98iBc/7O/EyBw9dfZX5VP6vLO1d/Zi4XqgdEu1/17kp548ZL5Txjfnze
uSNkZ3ldyOUb6mvkzd//3Hb5kh2Ley83Mv6dDNv1Qy1jve6TrSW26298f5Lv
tjMtt632a2rffl1x+1tSU98QtG5d5W65fdgwv9v2H//tkl3jSvh9F7hcZpj7
OFQ2zHrMdx8t3lEa8vc01fJ7sr/Neln21mjf9tT4d5XGvm+E6JyG+jqZ8+J4
eXD0A5KRVeZ3XcHmJeblDz7wspTWuf2uK965qve60U8b83FXXOt4U124re/6
B2TVzt7H0tKsjL7tTZEad72xv+6+/X1OimvccY8/1WkwHvPjjeepx+XMzdcH
vCZg0wXsEtgBjG2obaltJmLfVJrX/UG+3fB3/a8JOHUBa5w6gLENtS21zUTt
313bRsuPs87vf03AoQtYY9sB+l4LUNtS20zU/hGSytRU14TsAeozwVof+L35
2QDff91lvjeo+dlhxlf1s7q89f7bgz47LLAHxLJvy1+7T4adO8zMo9PWhFy2
InuVb9lh59wtWZV1vuuKt38adjuhlrFe9+G6fNv1N8x6qu+2fye7y2p9l9e7
q2XK7Zeb1116/XNS7nIHrVtbsUtuO/fcoNu2jt/pds31q6ql2kit+RyqLnPL
py/c7Vv3nRXZ9r/7gvXyc9995r/f0cY3fiPvrXbeV7d6H9UbLvHd5g6b21xr
2ZZaZsuempT/f0JIuqbeXSsfvfCojH7gflmTWep3XV1FvjxuXK6ue+7NBVLd
9/hUWbzbd/mLMz+Pex0VV12pvNZ3/eTZ/Y9zVXu2mpc98uR0qTK2VVeVL5PM
5R6X/Iq6hN0P6ZzGXbt73zfo7pG9c/lIu0BgB1AxtqG2pbaZsH0s3db7vkG7
/lfvXN6uCzjF2gFUjG2obaltJmr/tlRsN9/b5++Les8Xtu0CdgnsAMa6ahtq
W2qbqf53QUgi0vxXfx7yuCD13kBWp1YtM5dXX0Mtl4geULBhXv980Mjs1faP
W9XFO+SBc871LTfy+cV+18fdA7Yu8l03ZlqG7fqhesDkvh5gznsrgue9Tj3A
uk+q2+wuCV533Ucv+JZ5ddEO3+VFWz62rHubbAuYS7tdxfLq7T/3m2/H0wP8
b89+X1V2Lpvav9zPxsmeGpf/9Z9O8dun9QWx7xMhpLcHfODQA1SyMuab16mM
GTdBXnrxGd/Pox+YZDsXj34dt6yc+VLv8mMnS4Xl7yFuV6W80bfuky++Ji9N
esz8/rHnP7T8bSON405M9s6bK6d+e3X/e4j6dYG+PuCXUcEdwFhXbUNtK1H7
5U1T1kz5atWP+t9D1NoF7PqA93JrBzDWVdtQ20r0/k3PnyU/3PpT+aeyX9p3
AadYOoBaV21DbSvR+0dIqhLu/IAg338vJ159xvwaKbMHxLBv9a5aefe+K435
4DBfbhz3mmzcni0lRSWyJzdLFs961e/6YT/7newsrvPbTvG2T33XP/r2Gtvb
CrVMRc4Xltv4hUz+aLls3bxVSircvmU2vPeU7/Z3l9b6jWHOuBt86w+/7VnJ
2LBJtu/c41umttzoAarHBNy2u65CJt/2c8vYhssnyzdI0Z4iyd6+Ud564i6/
cVtv111XLs9ceYHffr/36WrJ3JUpG1cvlTuvvDDofrOuH21c1QUytm8M3n2d
vWy9lJRVSIWR4rxdMvP50X63+czsDX7byPlidsA+3S1z5s6RGe/OCMrbU96W
ZevyUv7/DyGDPfUulyyebMzT779f1meX2y6TtX65eb01Y8a+KvllNY7bjWad
ivzNfcs8LplF1UHXVxZlyqSA7RSU18U03sGW3vdCTUz2vfNObxdQrwt4jxEK
6gM28/+Hel8HUOuqbSRyn6zZu/213i6gXhfwHiPk7QN2yes/Fkito9ZV20jW
/r2Y9bo5jzdfF6i+1r8P2MQ7/1fLqnXUumobydo/QlKRcOcHJILafqz7p16D
fva3F8u5Pzs3glwuy7YWBm2jaPNC3zKPTF1teztFWxc5LuOqLZOnrzg/6PbU
Zwt7l1k349Hey//5RtleUuO3fl7GB0HrXvDzF6W81mVeX1OyU2782Tm2t11T
tFMeuuKCsGOftnx30JiqCrf6tut0f/2Ld9s2+x1tKnLWyrUR/Z7OlV+PmeEb
f+99XC4vRfx77s0Db6xM+f8/hAyVuCorZU/uHikpLJKCghJxJWkdp7jr6qSy
vNJMnflZ7Km/TwZj9s6dI57hv5aekdf3/t3f2gcC81DvOcFqWbWOWjfZ+9eU
+SfZt+gf5czG/9F77rC1DwRGXWcso5ZV66h1k71/0/Jmyt+sOkf+MvvC3nOH
vX2grxP45v5983+1jFpWraPWTfXvn5BEp7qyelD3ABV3XY1sWDQz5Bzzgedm
SEFZne36ZTlrfOu+NHeL7TKlmSvl8hDLVBdnyqtjb/e7zXmb9viu37Hwjb75
9CjJKq8NWN8lm5e+57f/l/yf16Wq77muripX7u+brz81Y33QbasesnDaM7bj
vmfsq7Ilu8Txvqsry5Vpj98RtN51tz4hW/Mrwux39HGVF8nsV590/D1deMXN
8smKHUHzBfU7fn/s9VH1ALv7ihBCBlPcxuN8otOwfYd4nnxc9v/q8t73FFWf
L6A+a8z7GWLqe+MydZ1aRi2r1knGvtilvniLNK/9g3jm/7j3PUXV5wuozxpT
xwypqO+Ny9R1ahm1rFpnoPZvY+kWuWvraPmzlf9gvv+n+iwA9blg6jOCVdT3
6jJ1nVpGLavWGaj9I2Qgs++v/yy644Ji7AGJ2FdXbbXk7dohG9aslXXrN8pa
4+umrTulqKxm4O6zmjqprq41P3+tLob1ayuNdet6txH1+CsrpSh/j5SWlJnH
BlVWRr6NqpJS2bOnVMqMr6VlVUm/n+oqyiR7+1bj97RZdm7fLhuNrzl5xTHd
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
jDnOxxlVsjXgXIOgubztvGqxfJBRK1XlLpkZ+P6Ud+22/I01nh4g0umpl8VL
c2XFymKZ/Yr1dubLlAWF/u+ZuirXWLZcDib4vIGO8t1B9911EzbL+vxmqapu
kDULN/nuvwkrA14Paa0Oum+nrKyT5taTcsgdfN990XTWcT906gHtnrq+37v3
91ssK95fFFcPGDs9W7ZmlcsM9bkKjv9end83tKM6P+j/nz1tHA8EAKlGD4B2
4uwB90yu8Hvvde9nJ3lzt3V7Abd1yzN5AZ+t1Bn0XvXL3d96V46rB1idbbLs
o3rNYkBOhT4ubwfMJ4OPfTJ0HJY1K2sDju05Ixv93rtzsexqCZw3dsh8y2se
d4d4nyedeoC9w/JiTD1gsax2n7IuIJ8/O8dvf6yv4QTuq/p3dtod3AF2tdIB
AGAwoAdAO3H0gOse2h38+Ut+5wAEbC/gtha5gv9m3VG+3W+etKgq8T0gJe/j
0lbnd1z/zZNrIv8M255WecP6GsKD+XK8+4y0d3T50tndLXnvf+y3jNNnY2nf
AyL9Nx+w3PuF3wQt4teLA/bHf19Xye6isoBzO1SfG4LvxwUAaYoeAO3E0wMm
2H3+Uqff36VD9YB5VcHzKunY69cjXtt+3LtyWveArmr/Y4Lm+fpNJCt7Qp9X
bBP7303f5ugBMfUAu9+Z37FeoXqAXe6y6dEAgJShB0A78fQA289hDTFPjKQH
BCzTf5x8eveAs55Sh9c5ItDjfxxLRLkrh9cDnMTcA4L/vYban7A94Cb1Pr0D
e/8BAJzRA6CdQdYDTgfMnRY5nB9gN3867Xfcf4Q9QB2bMQDHZwe+HvBuXthP
CbCs7P8ayfARW6SwulkKixod4pbc8i8djzuiBwyeHqDSfw4MACCV6AHQTsBc
J9zfJxPZA+zODyibu9RvjjTP4fwA9d6YgapXfRFZD4jnGJ1YGXN5v2PDjbm8
4z3dcyZgDn9CPrR8/oE6LyPwveqj2hWH97GJjP/vIdT5yMkQ3773SWEPWK7+
zQd8dt/wERn+768LAEgJegCGvrPS3dUtnWbOSHdbvd/fmq+Z7JJuYx7a6V2m
23+unsgecMsz2VLX0T/j9eT7nyNszpV9V3cGfAbAYlnf9LXvNouWfRGwboi/
FQecs3vtM0UB8+qz0tnRHfl5vBHpCHovpGuN8ft/7vJZ8RQVmfsW+F70ZQv9
+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
m+ioDjB37lz5/wGq+bq7
"], {{0, 496}, {770, 0}}, {0, 255},
ColorFunction->RGBColor],
BoxForm`ImageTag["Byte", ColorSpace -> "RGB", Interleaving -> True],
Selectable->False],
AspectRatio->Full,
DefaultBaseStyle->"ImageGraphics",
ImageSize->{338.98984375, 200.},
ImageSizeRaw->{770, 496},
PlotRange->{{0, 770}, {0, 496}}]\)
In[16]:=
ResourceFunction["CheckHyperlinks"][nb]
Out[16]=

Check hyperlinks in a notebook file, using different representations a pointer to the file:

In[17]:=
file = FileNameJoin[{$InstallationDirectory, "Documentation", "English", "System", "ReferencePages", "Symbols", "Hyperlink.nb"}];
In[18]:=
ResourceFunction["CheckHyperlinks"][file]
Out[18]=
In[19]:=
ResourceFunction["CheckHyperlinks"][File[file]]
Out[19]=
In[20]:=
ResourceFunction["CheckHyperlinks"]["file://" <> file]
Out[20]=

Check hyperlinks in a Notebook object:

In[21]:=
ResourceFunction["CheckHyperlinks"][
 Notebook[{Cell[
    BoxData[TemplateBox[{"link", "http://www.wolfram.com"}, "HyperlinkURL"]], "Text"]}]]
Out[21]=

Check only for the specified properties of the links:

In[22]:=
expr = {Hyperlink["https://www.wolfram.com"], Hyperlink["https://www.wolfram.com/broken"]}
Out[22]=
In[23]:=
ResourceFunction["CheckHyperlinks"][expr, "Valid"]
Out[23]=
In[24]:=
ResourceFunction["CheckHyperlinks"][expr, "Broken"]
Out[24]=
In[25]:=
ResourceFunction["CheckHyperlinks"][expr, {"Valid", "BrokenData"}]
Out[25]=

Possible Issues

Some front end objects are not currently recognized as special objects:

In[26]:=
cell = Cell[
   BoxData[TemplateBox[{"link", "http://www.wolfram.com"}, "HyperlinkURL"]], "Text"];
In[27]:=
ResourceFunction["CheckHyperlinks"][cell]
Out[27]=

Apply the Notebook wrapper to check links:

In[28]:=
ResourceFunction["CheckHyperlinks"][Notebook[{cell}]]
Out[28]=

Resource History