GoFiler Legato Script Reference
Legato v 1.5d Application v 5.25a
|
Table of Contents | < < Previous | Next >> |
Chapter Twenty-one — EDGARView Integration (continued)
Overview
The EDGARLookupCIK function accesses the SEC’s public-facing company database and returns an array with basic information for the specified CIK.
Syntax/Parameters
Syntax
string[] = EDGARLookupCIK ( string cik | qword cik );
Parameters
cik
A string or a qword that specifies the registrant CIK to retrieve. Note that EDGAR CIK values can exceed a 32-bit integer or dword size. If providing a string, the CIK need not be zero leading.
Return Value
A string array containing data from the SEC. On failure, the array will be empty. Use the GetLastError function to return details of the error.
If the CIK cannot be located (but a connection was made to the SEC), the last error will be ERROR_EOD.
If there is an issue with the content of the response, ERROR_SYNTAX with a low word code will be returned. Contact technical support if this error is returned since it can indicate that the SEC has changed its response format.
Remarks
The information returned by this function is the same as the public-facing company database. Note that this information can differ slightly from the private access company database, specifically in the area of the address since the SEC stores multiple types of addresses.
Each entry within the returned list will have one of the following key names:
Name | Description | ||||
General Information | |||||
CompanyName | Company name. | ||||
CIK | Company CIK (matches requested value but will be zero filled). | ||||
IRSNumber | IRS Number on file. | ||||
FileNumber | Primary File Number. Note that some entities may have multiple file numbers. | ||||
EntityType | Regulated entity type. | ||||
SIC | Standing Industrial Classification Code. | ||||
Address | A combined address in the form of 2 lines and a third address line containing city, state, zip or foreign postal information. The lines are separated by a CR (0x0D) character. There is no fixed format. | ||||
PhoneNumber | Phone number. | ||||
SOI | State of Incorporation. Unlike other EDGAR values, this is spelled out and not a code. | ||||
FYE | Fiscal Year End. | ||||
LastUpdate | Date the last time the record was updated. | ||||
SeriesList | If the CIK has series/class information associated, this entry will contain a list of all the series ID codes separated by spaces. | ||||
Series and Class | |||||
S000000000_ID | The series ID where “S000000000” is the matching series ID. Each partial key component will be in the series list. There will be matching items for each of the fives suffixes, including this one, for each series in the SeriesList. | ||||
S000000000_Name | The name of the series. | ||||
S000000000_Status | The status of the series. This is normally ‘Active’ or ‘Inactive’. | ||||
S000000000_Classes | A list of the class ID codes attached to the series. | ||||
S000000000_C000000000_ID | The class ID where “C000000000” is the class ID and “S00000000” is the series ID. For each class, the series ID and class ID are combined with a suffix. | ||||
S000000000_C000000000_Name | The name of the class. | ||||
S000000000_C000000000_Ticker | Ticker symbol/name for the class. | ||||
S000000000_C000000000_Status | The status of the class. This is normally ‘Active’ or ‘Inactive’. |
For certain investment companies, the array can be very large. Programmers should consider using an auto-allocated array since the number of list entries may vary.
An example of reading a random fund with series and class information (any valid CIK can be used, so illustrate series and class data, pick a CIK for an investment company with one or more series):
string list[]; string cik; string s1; int ix, size; int rc; cik = "0000355916"; list = EDGARLookupCIK(cik); if (IsError()) { rc = GetLastError(); AddMessage("CIK Not found %s, 0x%08X", cik, rc); exit; } size = ArrayGetAxisDepth(list); while (ix < size) { s1 = ArrayGetKeyName(list, ix); AddMessage("%3d - %-30s : %s", ix, s1, list[ix]); ix++; }
This will result in a fairly long list of data, some of it presented in the log below:
0 - CompanyName : BlackRock Variable Series Funds, Inc. 1 - CIK : 0000355916 2 - IRSNumber : 133093080 3 - FileNumber : 811-03290 4 - EntityType : 5 - SIC : 0000 6 - Address : 100 BELLEVUE PARKWAY WILMINGTON, DELAWARE 19809 7 - PhoneNumber : 800-441-7762 8 - SOI : MARYLAND 9 - FYE : 1231 10 - LastUpdate : 05/19/08 11 - SeriesList : S000002874 S000002875 S000002876 S000002877 S000002878 ... 12 - S000002874_ID : S000002874 13 - S000002874_Name : BlackRock Managed Volatility V.I. Fund 14 - S000002874_Status : Active 15 - S000002874_Classes : C000007899 C000007900 C000007901 16 - S000002874_C000007899_ID : C000007899 17 - S000002874_C000007899_Name : Class I 18 - S000002874_C000007899_Ticker : 19 - S000002874_C000007899_Status : Active 20 - S000002874_C000007900_ID : C000007900 21 - S000002874_C000007900_Name : Class II 22 - S000002874_C000007900_Ticker : 23 - S000002874_C000007900_Status : Active 24 - S000002874_C000007901_ID : C000007901 25 - S000002874_C000007901_Name : Class III 26 - S000002874_C000007901_Ticker : 27 - S000002874_C000007901_Status : Active ...
Note that array index 11 (do not rely on fixed indices) has the list of the series IDs which has been truncated in this example. Each of those IDs can be used to build key names to access the series data. In addition, each series has a class list, as shown at index 15, these IDs can be combined with the related series ID to build key names for the class data.
To create an array of series or class IDs, use the ExplodeString function.
The company database operates outside of EDGAR operation hours and is normally available on a 24/7 basis.
When performing multiple searches where the same information may be requested, it is a good idea to locally cache the data retrieved to avoid constant web page scraping. For example:
string cik_list[100][2]; // Global Cache of CIK Names string get_cik_name(string ss) { // Look Up CIK's Name string data[]; int ix; ix = FindInTable(cik_list, ss); if (IsNotError(ix)) { return cik_list[ix][1]; } data = EDGARLookupCIK(ss); if (IsError()) { return ""; } ix = ArrayGetAxisDepth(cik_list, AXIS_ROW); if (ix < 100) { cik_list[ix][0] = ss; cik_list[ix][1] = data["CompanyName"]; } return data["CompanyName"]; }
Repeatedly calling with the same CIK will not likely pound the SEC’s server since both the application and WinInet will cache pages. Further, if changes are made to the SEC database, they are not likely to quickly appear when referenced from the EDGARLookupCIK function.
Related Functions
Platform Support
Go13, Go16, GoFiler Complete, GoFiler Corporate, GoFiler, GoFiler Lite, GoXBRL
Legato IDE, Legato Basic
Page revised 2024-12-13
Table of Contents | < < Previous | Next >> |
© 2012-2024 Novaworks, LLC. All rights reserved worldwide. Unauthorized use, duplication or transmission prohibited by law. Portions of the software are protected by US Patents 10,095,672, 10,706,221 and 11,210,456. GoFiler™ and Legato™ are trademarks of Novaworks, LLC. EDGAR® is a federally registered trademark of the U.S. Securities and Exchange Commission. Novaworks is not affiliated with or approved by the U.S. Securities and Exchange Commission. All other trademarks are property of their respective owners. Use of the features specified in this language are subject to terms, conditions and limitations of the Software License Agreement.