-
-
Save ddd1600/3934032 to your computer and use it in GitHub Desktop.
getCIK = function(ticker) { | |
stopifnot(is.character(ticker)) | |
uri = "http://www.sec.gov/cgi-bin/browse-edgar" | |
response = getForm(uri,CIK=ticker,action="getcompany") | |
html = htmlParse(response) | |
CIKNode = getNodeSet(html, "//acronym[@title=\"Central Index Key\"][text() = \"CIK\"]") | |
CIKNodeText = sapply(CIKNode, function(x) xmlValue(getSibling(getSibling(x)))) | |
CIK = sub(" .*","",CIKNodeText) | |
CIK = sub("^0*","",CIK) | |
CIK | |
} | |
getCIK("AAPL") |
@Kregus the list you provided by Rank & Filed (http://rankandfiled.com/#/data/tickers) is awesome! Thanks a lot!
sometime an error occurs
Error in UseMethod("getSibling") :
no applicable method for 'getSibling' applied to an object of class "NULL"
Here is the html:
Click on CIK to view company filings
Items 1 - 2
CIK | Company | State/Country |
---|---|---|
0001480532 | York Capital Management Global Advisors, LLC | NY |
0000879074 | YORK CAPITAL MANAGEMENT L P formerly: YORK CAPITAL MANAGEMENT L P /NY/ (filings through 2009-03-18) |
NY |
Looks like the SEC changed the site address to an https
. The above wasn't working with http
:
require(XML)
require(RCurl)
getCIK = function(ticker) {
stopifnot(is.character(ticker))
uri = "https://www.sec.gov/cgi-bin/browse-edgar"
response = getForm(uri,CIK=ticker,action="getcompany")
html = htmlParse(response)
CIKNode = getNodeSet(html, "//acronym[@title=\"Central Index Key\"][text() = \"CIK\"]")
CIKNodeText = sapply(CIKNode, function(x) xmlValue(getSibling(getSibling(x))))
CIK = sub(" .*","",CIKNodeText)
CIK = sub("^0*","",CIK)
CIK
}
getCIK("GE")
# "40545"
is there a way to do Opposite. by feeding the CIK to the function and have it return the TradingSymbol ???
yes, using the mapping table they provide. Bash/awk implementation below as reference.
curl -sL https://www.sec.gov/include/ticker.txt | sort > tickercik.txt
awk '$2=="yourcik"{print $1}' tickercik.txt
fyi I'm seeing things that don't match up in the Rank and Filed data http://rankandfiled.com/#/data/tickers
for instance Aloca Inc (AA) on the SEC site has cik code 1675149 but on rank and filed it's 4281. 4281 matches up with Arconic Inc (ARNC)
Can also use the iEDGAR API (PHP example): https://gist.github.com/kregus/e0bc5be2502007bc7f56
A complete Ticker to CIK mapping can be found as a CSV file here: https://www.valuespreadsheet.com/iedgar
Rank & Filed also offers a similar Ticker to CIK mapping in CSV here:
http://rankandfiled.com/#/data/tickers