Bulk stock prices

Download daily stock prices for every ticker as CSV files. Each file holds one calendar month of unadjusted open, high, low, close, and volume values. One route lists every file together with a signed download link. Add year and period to get one file.

Signed download URLs are valid for one hour after URL generation. Start each file download within this window. If a URL expires, request a new one.

GET/v3.0.0/stock-prices/bulk

Plan Access

Free

(Your plan)

Individual

$29/mo

Professional

$89/mo

Request
curl "https://api.roic.ai/v3.0.0/stock-prices/bulk?apikey=YOUR_API_KEY"
Response
200 OK
{
  "data": [
    {
      "id": "bulk_38c3mwwgBTw4DYlp5Eou02",
      "dataset": "stock-prices",
      "year": 2026,
      "period": "07",
      "format": "csv",
      "compression": "gzip",
      "size": 30131467,
      "sha256": "4451d072217f8bad0b189b95b0fe8c493fdf4c75e9525041893d37662ca41472",
      "updated_at": "2026-09-08T02:11:35.458Z",
      "url": "https://bulk.roic.ai/stock-prices/v3/2026/07.csv.gz?verify=1789064631-<mac>",
      "expires_at": "2026-09-08T19:23:51.178Z"
    },
    {
      "id": "bulk_Gjd79vhoj5bbr2n3-vryOZ",
      "dataset": "stock-prices",
      "year": 2026,
      "period": "08",
      "format": "csv",
      "compression": "gzip",
      "size": 27877456,
      "sha256": "94f49f7642110052f9cfc5ba75ac2d30060dbabcb2ceb68112be8fde2c9ef6a5",
      "updated_at": "2026-09-08T02:11:41.039Z",
      "url": "https://bulk.roic.ai/stock-prices/v3/2026/08.csv.gz?verify=1789064631-<mac>",
      "expires_at": "2026-09-08T19:23:51.178Z"
    }
  ],
  "next_page_url": null,
  "previous_page_url": null
}

Available files

Browse the files and download them from the browser. Downloads require a Professional or Enterprise plan. The route returns the same list with your API key.

Files777 files, 4.58 GB compressed

YearPeriodSize
2026
January
27.3 MB
2026
February
25.0 MB
2026
March
28.7 MB
2026
April
27.3 MB
2026
May
26.2 MB
2026
June
29.1 MB
2026
July
30.2 MB
2026
August
27.9 MB
2026
September
10.3 MB
2025
January
25.0 MB
2025
February
23.7 MB
2025
March
25.0 MB
2025
April
24.6 MB
2025
May
25.0 MB
2025
June
25.2 MB
2025
July
28.4 MB
2025
August
25.9 MB
2025
September
27.5 MB
2025
October
28.3 MB
2025
November
25.2 MB
2025
December
26.9 MB
2024
January
25.3 MB
2024
February
23.1 MB
2024
March
23.5 MB
2024
April
24.5 MB
2024
May
25.4 MB
2024
June
23.0 MB
2024
July
26.7 MB
2024
August
25.8 MB
2024
September
23.9 MB
2024
October
26.0 MB
2024
November
24.5 MB
2024
December
24.1 MB
2023
January
22.8 MB
2023
February
22.1 MB
2023
March
25.7 MB
2023
April
20.5 MB
2023
May
24.2 MB
2023
June
24.0 MB
2023
July
23.5 MB
2023
August
25.6 MB
2023
September
23.0 MB
2023
October
24.0 MB
2023
November
24.7 MB
2023
December
23.0 MB
2022
January
22.4 MB
2022
February
20.9 MB
2022
March
25.0 MB
2022
April
21.3 MB
2022
May
22.8 MB
2022
June
23.4 MB
2022
July
22.4 MB
2022
August
24.8 MB
2022
September
23.6 MB
2022
October
22.1 MB
2022
November
23.9 MB
2022
December
23.6 MB
2021
January
20.0 MB
2021
February
19.4 MB
2021
March
23.3 MB
2021
April
21.0 MB
2021
May
20.6 MB
2021
June
23.0 MB
2021
July
22.7 MB
2021
August
23.2 MB
2021
September
22.9 MB
2021
October
22.0 MB
2021
November
23.6 MB
2021
December
23.8 MB
2020
January
18.8 MB
2020
February
18.1 MB
2020
March
20.5 MB
2020
April
18.6 MB
2020
May
17.9 MB
2020
June
20.3 MB
2020
July
21.5 MB
2020
August
20.0 MB
2020
September
20.9 MB
2020
October
20.4 MB
2020
November
20.6 MB
2020
December
21.0 MB
2019
January
18.6 MB
2019
February
16.2 MB
2019
March
18.1 MB
2019
April
17.9 MB
2019
May
18.9 MB
2019
June
17.0 MB
2019
July
19.9 MB
2019
August
19.0 MB
2019
September
18.0 MB
2019
October
18.9 MB
2019
November
18.3 MB
2019
December
18.0 MB
2018
January
18.3 MB
2018
February
16.1 MB
2018
March
18.0 MB
2018
April
17.1 MB
2018
May
18.3 MB
2018
June
17.4 MB
2018
July
18.3 MB
2018
August
19.0 MB
2018
September
16.3 MB
2018
October
18.8 MB
2018
November
18.3 MB
2018
December
16.2 MB
2017
January
16.1 MB
2017
February
15.5 MB
2017
March
18.4 MB
2017
April
14.9 MB
2017
May
17.3 MB
2017
June
17.1 MB
2017
July
16.6 MB
2017
August
18.0 MB
2017
September
16.8 MB
2017
October
17.2 MB
2017
November
18.4 MB
2017
December
16.9 MB
2016
January
14.5 MB
2016
February
14.4 MB
2016
March
16.0 MB
2016
April
15.1 MB
2016
May
15.5 MB
2016
June
16.2 MB
2016
July
15.4 MB
2016
August
17.3 MB
2016
September
15.9 MB
2016
October
15.3 MB
2016
November
16.8 MB
2016
December
16.4 MB
2015
January
14.4 MB
2015
February
13.2 MB
2015
March
15.7 MB
2015
April
14.9 MB
2015
May
14.2 MB
2015
June
15.7 MB
2015
July
16.0 MB
2015
August
15.1 MB
2015
September
14.8 MB
2015
October
15.1 MB
2015
November
14.9 MB
2015
December
15.7 MB
2014
January
13.9 MB
2014
February
12.6 MB
2014
March
14.0 MB
2014
April
13.5 MB
2014
May
13.7 MB
2014
June
13.9 MB
2014
July
15.0 MB
2014
August
14.1 MB
2014
September
14.9 MB
2014
October
15.0 MB
2014
November
13.6 MB
2014
December
14.8 MB
2013
January
13.4 MB
2013
February
11.5 MB
2013
March
12.6 MB
2013
April
12.7 MB
2013
May
13.4 MB
2013
June
12.0 MB
2013
July
13.6 MB
2013
August
12.9 MB
2013
September
12.3 MB
2013
October
13.8 MB
2013
November
12.9 MB
2013
December
13.1 MB
2012
January
11.1 MB
2012
February
11.9 MB
2012
March
12.8 MB
2012
April
11.0 MB
2012
May
12.6 MB
2012
June
11.7 MB
2012
July
12.4 MB
2012
August
12.7 MB
2012
September
11.5 MB
2012
October
12.9 MB
2012
November
12.8 MB
2012
December
11.6 MB
2011
January
11.5 MB
2011
February
10.5 MB
2011
March
12.8 MB
2011
April
10.8 MB
2011
May
11.7 MB
2011
June
11.9 MB
2011
July
11.4 MB
2011
August
12.5 MB
2011
September
11.5 MB
2011
October
10.8 MB
2011
November
11.7 MB
2011
December
11.6 MB
2010
January
10.2 MB
2010
February
9.5 MB
2010
March
11.9 MB
2010
April
10.9 MB
2010
May
10.7 MB
2010
June
11.2 MB
2010
July
11.3 MB
2010
August
11.6 MB
2010
September
11.2 MB
2010
October
11.1 MB
2010
November
11.8 MB
2010
December
12.2 MB
2009
January
8.6 MB
2009
February
8.8 MB
2009
March
9.9 MB
2009
April
9.5 MB
2009
May
9.3 MB
2009
June
10.5 MB
2009
July
10.8 MB
2009
August
10.2 MB
2009
September
10.5 MB
2009
October
10.4 MB
2009
November
10.2 MB
2009
December
10.8 MB
2008
January
10.4 MB
2008
February
9.3 MB
2008
March
9.3 MB
2008
April
10.1 MB
2008
May
9.7 MB
2008
June
9.9 MB
2008
July
10.6 MB
2008
August
9.6 MB
2008
September
9.7 MB
2008
October
10.2 MB
2008
November
8.9 MB
2008
December
9.6 MB
2007
January
9.1 MB
2007
February
8.2 MB
2007
March
9.5 MB
2007
April
8.5 MB
2007
May
9.7 MB
2007
June
9.6 MB
2007
July
10.2 MB
2007
August
10.6 MB
2007
September
9.0 MB
2007
October
10.5 MB
2007
November
10.1 MB
2007
December
9.0 MB
2006
January
8.0 MB
2006
February
7.8 MB
2006
March
9.1 MB
2006
April
7.6 MB
2006
May
8.8 MB
2006
June
8.8 MB
2006
July
8.3 MB
2006
August
9.2 MB
2006
September
8.5 MB
2006
October
8.7 MB
2006
November
9.1 MB
2006
December
8.4 MB
2005
January
6.3 MB
2005
February
6.1 MB
2005
March
6.9 MB
2005
April
6.4 MB
2005
May
6.6 MB
2005
June
7.0 MB
2005
July
7.6 MB
2005
August
8.6 MB
2005
September
8.1 MB
2005
October
7.7 MB
2005
November
8.0 MB
2005
December
8.2 MB
2004
January
5.2 MB
2004
February
5.1 MB
2004
March
6.7 MB
2004
April
6.0 MB
2004
May
5.9 MB
2004
June
6.3 MB
2004
July
6.4 MB
2004
August
6.4 MB
2004
September
6.4 MB
2004
October
6.3 MB
2004
November
6.6 MB
2004
December
6.8 MB
2003
January
3.8 MB
2003
February
3.3 MB
2003
March
3.7 MB
2003
April
3.7 MB
2003
May
4.0 MB
2003
June
4.2 MB
2003
July
4.6 MB
2003
August
4.4 MB
2003
September
4.7 MB
2003
October
5.3 MB
2003
November
4.6 MB
2003
December
5.7 MB
2002
January
3.2 MB
2002
February
2.9 MB
2002
March
2.9 MB
2002
April
3.1 MB
2002
May
3.1 MB
2002
June
3.0 MB
2002
July
3.5 MB
2002
August
3.3 MB
2002
September
3.1 MB
2002
October
3.5 MB
2002
November
3.3 MB
2002
December
3.3 MB
2001
January
2.4 MB
2001
February
2.2 MB
2001
March
2.4 MB
2001
April
2.2 MB
2001
May
2.5 MB
2001
June
2.4 MB
2001
July
2.4 MB
2001
August
2.6 MB
2001
September
2.1 MB
2001
October
2.6 MB
2001
November
2.5 MB
2001
December
2.2 MB
2000
January
2.1 MB
2000
February
2.2 MB
2000
March
2.4 MB
2000
April
1.9 MB
2000
May
2.2 MB
2000
June
2.2 MB
2000
July
2.1 MB
2000
August
2.4 MB
2000
September
2.1 MB
2000
October
2.3 MB
2000
November
2.3 MB
2000
December
2.1 MB
1999
January
1.5 MB
1999
February
1.5 MB
1999
March
1.8 MB
1999
April
1.6 MB
1999
May
1.6 MB
1999
June
1.8 MB
1999
July
1.7 MB
1999
August
1.7 MB
1999
September
1.7 MB
1999
October
1.7 MB
1999
November
1.8 MB
1999
December
1.9 MB
1998
January
1.4 MB
1998
February
1.4 MB
1998
March
1.6 MB
1998
April
1.5 MB
1998
May
1.4 MB
1998
June
1.5 MB
1998
July
1.6 MB
1998
August
1.5 MB
1998
September
1.5 MB
1998
October
1.5 MB
1998
November
1.5 MB
1998
December
1.6 MB
1997
January
1.4 MB
1997
February
1.2 MB
1997
March
1.3 MB
1997
April
1.3 MB
1997
May
1.3 MB
1997
June
1.4 MB
1997
July
1.5 MB
1997
August
1.4 MB
1997
September
1.4 MB
1997
October
1.5 MB
1997
November
1.3 MB
1997
December
1.5 MB
1996
January
1.2 MB
1996
February
1.1 MB
1996
March
1.2 MB
1996
April
1.2 MB
1996
May
1.3 MB
1996
June
1.2 MB
1996
July
1.3 MB
1996
August
1.3 MB
1996
September
1.2 MB
1996
October
1.4 MB
1996
November
1.2 MB
1996
December
1.3 MB
1995
January
890 KB
1995
February
831 KB
1995
March
995 KB
1995
April
820 KB
1995
May
972 KB
1995
June
1.0 MB
1995
July
973 KB
1995
August
1.1 MB
1995
September
1.0 MB
1995
October
1.1 MB
1995
November
1.1 MB
1995
December
1.1 MB
1994
January
831 KB
1994
February
770 KB
1994
March
910 KB
1994
April
746 KB
1994
May
813 KB
1994
June
864 KB
1994
July
789 KB
1994
August
922 KB
1994
September
879 KB
1994
October
853 KB
1994
November
882 KB
1994
December
879 KB
1993
January
599 KB
1993
February
597 KB
1993
March
700 KB
1993
April
641 KB
1993
May
633 KB
1993
June
699 KB
1993
July
696 KB
1993
August
770 KB
1993
September
767 KB
1993
October
759 KB
1993
November
786 KB
1993
December
819 KB
1992
January
606 KB
1992
February
527 KB
1992
March
600 KB
1992
April
562 KB
1992
May
538 KB
1992
June
597 KB
1992
July
607 KB
1992
August
578 KB
1992
September
595 KB
1992
October
616 KB
1992
November
588 KB
1992
December
635 KB
1991
January
496 KB
1991
February
470 KB
1991
March
500 KB
1991
April
531 KB
1991
May
528 KB
1991
June
491 KB
1991
July
543 KB
1991
August
553 KB
1991
September
511 KB
1991
October
580 KB
1991
November
535 KB
1991
December
553 KB
1990
January
480 KB
1990
February
407 KB
1990
March
467 KB
1990
April
420 KB
1990
May
473 KB
1990
June
460 KB
1990
July
492 KB
1990
August
530 KB
1990
September
435 KB
1990
October
509 KB
1990
November
473 KB
1990
December
452 KB
1989
January
421 KB
1989
February
382 KB
1989
March
439 KB
1989
April
406 KB
1989
May
445 KB
1989
June
453 KB
1989
July
410 KB
1989
August
477 KB
1989
September
418 KB
1989
October
460 KB
1989
November
438 KB
1989
December
430 KB
1988
January
365 KB
1988
February
371 KB
1988
March
434 KB
1988
April
377 KB
1988
May
387 KB
1988
June
418 KB
1988
July
381 KB
1988
August
435 KB
1988
September
396 KB
1988
October
401 KB
1988
November
403 KB
1988
December
414 KB
1987
January
373 KB
1987
February
343 KB
1987
March
400 KB
1987
April
384 KB
1987
May
357 KB
1987
June
397 KB
1987
July
410 KB
1987
August
396 KB
1987
September
400 KB
1987
October
427 KB
1987
November
376 KB
1987
December
417 KB
1986
January
336 KB
1986
February
297 KB
1986
March
318 KB
1986
April
349 KB
1986
May
327 KB
1986
June
332 KB
1986
July
351 KB
1986
August
333 KB
1986
September
339 KB
1986
October
364 KB
1986
November
311 KB
1986
December
369 KB
1985
January
313 KB
1985
February
275 KB
1985
March
300 KB
1985
April
302 KB
1985
May
319 KB
1985
June
291 KB
1985
July
321 KB
1985
August
315 KB
1985
September
277 KB
1985
October
332 KB
1985
November
299 KB
1985
December
323 KB
1984
January
282 KB
1984
February
268 KB
1984
March
289 KB
1984
April
265 KB
1984
May
291 KB
1984
June
273 KB
1984
July
274 KB
1984
August
311 KB
1984
September
257 KB
1984
October
310 KB
1984
November
289 KB
1984
December
279 KB
1983
January
260 KB
1983
February
235 KB
1983
March
286 KB
1983
April
251 KB
1983
May
267 KB
1983
June
279 KB
1983
July
253 KB
1983
August
287 KB
1983
September
265 KB
1983
October
269 KB
1983
November
270 KB
1983
December
274 KB
1982
January
221 KB
1982
February
209 KB
1982
March
253 KB
1982
April
233 KB
1982
May
222 KB
1982
June
240 KB
1982
July
229 KB
1982
August
249 KB
1982
September
243 KB
1982
October
253 KB
1982
November
256 KB
1982
December
269 KB
1981
January
234 KB
1981
February
209 KB
1981
March
248 KB
1981
April
241 KB
1981
May
227 KB
1981
June
252 KB
1981
July
245 KB
1981
August
232 KB
1981
September
237 KB
1981
October
240 KB
1981
November
225 KB
1981
December
249 KB
1980
January
227 KB
1980
February
206 KB
1980
March
215 KB
1980
April
207 KB
1980
May
207 KB
1980
June
212 KB
1980
July
228 KB
1980
August
219 KB
1980
September
225 KB
1980
October
246 KB
1980
November
199 KB
1980
December
242 KB
1979
January
207 KB
1979
February
177 KB
1979
March
209 KB
1979
April
194 KB
1979
May
210 KB
1979
June
203 KB
1979
July
202 KB
1979
August
227 KB
1979
September
188 KB
1979
October
228 KB
1979
November
203 KB
1979
December
202 KB
1978
January
184 KB
1978
February
165 KB
1978
March
199 KB
1978
April
191 KB
1978
May
212 KB
1978
June
209 KB
1978
July
186 KB
1978
August
225 KB
1978
September
195 KB
1978
October
213 KB
1978
November
196 KB
1978
December
185 KB
1977
January
194 KB
1977
February
173 KB
1977
March
206 KB
1977
April
179 KB
1977
May
188 KB
1977
June
196 KB
1977
July
173 KB
1977
August
201 KB
1977
September
184 KB
1977
October
183 KB
1977
November
189 KB
1977
December
196 KB
1976
January
190 KB
1976
February
179 KB
1976
March
210 KB
1976
April
184 KB
1976
May
170 KB
1976
June
181 KB
1976
July
175 KB
1976
August
184 KB
1976
September
182 KB
1976
October
174 KB
1976
November
179 KB
1976
December
210 KB
1975
January
164 KB
1975
February
143 KB
1975
March
156 KB
1975
April
169 KB
1975
May
163 KB
1975
June
163 KB
1975
July
175 KB
1975
August
149 KB
1975
September
149 KB
1975
October
168 KB
1975
November
146 KB
1975
December
187 KB
1974
January
174 KB
1974
February
141 KB
1974
March
160 KB
1974
April
154 KB
1974
May
160 KB
1974
June
145 KB
1974
July
160 KB
1974
August
159 KB
1974
September
146 KB
1974
October
169 KB
1974
November
144 KB
1974
December
164 KB
1973
January
196 KB
1973
February
174 KB
1973
March
198 KB
1973
April
175 KB
1973
May
192 KB
1973
June
165 KB
1973
July
166 KB
1973
August
171 KB
1973
September
160 KB
1973
October
206 KB
1973
November
189 KB
1973
December
184 KB
1972
January
87 KB
1972
February
83 KB
1972
March
92 KB
1972
April
110 KB
1972
May
121 KB
1972
June
118 KB
1972
July
107 KB
1972
August
124 KB
1972
September
106 KB
1972
October
118 KB
1972
November
113 KB
1972
December
141 KB
1971
January
78 KB
1971
February
74 KB
1971
March
90 KB
1971
April
83 KB
1971
May
79 KB
1971
June
87 KB
1971
July
83 KB
1971
August
89 KB
1971
September
83 KB
1971
October
84 KB
1971
November
84 KB
1971
December
91 KB
1970
January
78 KB
1970
February
70 KB
1970
March
78 KB
1970
April
82 KB
1970
May
79 KB
1970
June
81 KB
1970
July
80 KB
1970
August
77 KB
1970
September
79 KB
1970
October
83 KB
1970
November
75 KB
1970
December
85 KB
1969
January
77 KB
1969
February
64 KB
1969
March
70 KB
1969
April
74 KB
1969
May
74 KB
1969
June
74 KB
1969
July
74 KB
1969
August
74 KB
1969
September
75 KB
1969
October
84 KB
1969
November
70 KB
1969
December
82 KB
1968
January
69 KB
1968
February
59 KB
1968
March
65 KB
1968
April
65 KB
1968
May
71 KB
1968
June
57 KB
1968
July
58 KB
1968
August
61 KB
1968
September
59 KB
1968
October
63 KB
1968
November
60 KB
1968
December
63 KB
1967
January
1 KB
1967
February
1 KB
1967
March
1 KB
1967
April
1 KB
1967
May
1 KB
1967
June
1 KB
1967
July
1 KB
1967
August
1 KB
1967
September
1 KB
1967
October
1 KB
1967
November
1 KB
1967
December
1 KB
1966
January
1 KB
1966
February
1 KB
1966
March
1 KB
1966
April
1 KB
1966
May
1 KB
1966
June
1 KB
1966
July
1 KB
1966
August
1 KB
1966
September
1 KB
1966
October
1 KB
1966
November
1 KB
1966
December
1 KB
1965
January
1 KB
1965
February
1 KB
1965
March
1 KB
1965
April
1 KB
1965
May
1 KB
1965
June
1 KB
1965
July
1 KB
1965
August
1 KB
1965
September
1 KB
1965
October
1 KB
1965
November
1 KB
1965
December
1 KB
1964
January
1 KB
1964
February
1 KB
1964
March
1 KB
1964
April
1 KB
1964
May
1 KB
1964
June
1 KB
1964
July
1 KB
1964
August
1 KB
1964
September
1 KB
1964
October
1 KB
1964
November
1 KB
1964
December
1 KB
1963
January
1 KB
1963
February
1 KB
1963
March
1 KB
1963
April
1 KB
1963
May
1 KB
1963
June
1 KB
1963
July
1 KB
1963
August
1 KB
1963
September
1 KB
1963
October
1 KB
1963
November
1 KB
1963
December
1 KB
1962
January
1 KB
1962
February
1 KB
1962
March
1 KB
1962
April
1 KB
1962
May
1 KB
1962
June
1 KB
1962
July
1 KB
1962
August
1 KB
1962
September
1 KB
1962
October
1 KB
1962
November
1 KB
1962
December
1 KB

Parameters

Query parameters

yearintegeroptional

Return only the files of this year. Fundamentals and earnings calls use the fiscal year, stock prices use the calendar year. A year without files returns an empty list.

Example: 2026Min: 1900Max: 2100
periodstringoptional

Return only the file of this calendar month as two digits, 01 through 12.

Example: 08Values: 010203040506070809101112

Response

Each item is one file with its size, its SHA-256 digest, and a signed url. Items are sorted newest year first, then month order. Without filters the list holds every file, so the page URLs are always null. The example response is cut after two files. The response is not cached because every link expires one hour after the request.

Response fields

dataarray of objects

Array of file resources, newest year first. Without filters the array holds every available file, so the page URLs are always null.

+ Show child attributes
idstring

Stable identifier of the file, prefixed bulk_. It is derived from the storage path, so a rebuilt file keeps the same ID.

datasetstring

Dataset the file belongs to: fundamentals, earnings-calls, or stock-prices. The value is plural even for the singular /fundamental/bulk route.

yearnumber

Year of the data in the file. Fundamentals and earnings calls use the fiscal year. Stock prices use the calendar year.

periodstring

Slice of the year in the file. Fundamentals: annual, quarterly, or ttm. Earnings calls: q1 through q4. Stock prices: two-digit month 01 through 12.

formatstring

Always csv. The first row is a header row, and values obey RFC 4180.

compressionstring

Always gzip. Decompress the file before you read the CSV.

sizenumber

Size of the compressed .csv.gz file in bytes. The decompressed CSV is about three to four times larger.

sha256string

SHA-256 hex digest of the compressed file exactly as delivered. Compare it with the digest of your download before you decompress.

updated_atstring

ISO 8601 timestamp of the last rebuild of this file.

urlstring

Signed download link on bulk.roic.ai. Send a plain GET request without your API key and keep the verify token intact. Treat the link as a secret. The file host refuses links without a valid token.

expires_atstring

ISO 8601 timestamp after which url stops working, one hour after the request. Call the route again for fresh links if they expire before you start a download.

next_page_urlnullable

Relative URL of the next page, or null on the last page. Never contains your API key.

previous_page_urlnullable

Relative URL of the previous page, or null on the first page.

File contents

Each file is a gzip-compressed CSV with a header row. Rows are sorted by date, then by symbol. Prices are unadjusted, exactly as they traded on that day. To restate prices for splits or dividends, use the historical stock prices route with the adjustment parameter.

ColumnTypeMeaning
symbolstringExchange-qualified ticker, for example NASDAQ:AAPL.
datedateTrading day in YYYY-MM-DD format.
opennumberPrice of the first trade of the regular session.
highnumberHighest price traded during the session.
lownumberLowest price traded during the session.
closenumberPrice of the last trade of the regular session.
volumeintegerNumber of shares traded during the session.
currencystringISO 4217 code of the price currency, for example USD or EUR.

The first rows of the August 2026 file:

symbol,date,open,high,low,close,volume,currency
LSSI:121806,2026-08-01,14.35,14.35,14.35,14.35,82,EUR
LSSI:200417,2026-08-01,58.86,58.86,58.86,58.86,2,EUR
LSSI:394869,2026-08-01,5.715,5.715,5.715,5.715,5,EUR

Download, verify, and decompress

Run these commands to download one month, verify the digest, and decompress the file. Replace YOUR_API_KEY with your key.

# 1. Get the link and the digest of one file
RESP=$(curl -s -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.roic.ai/v3.0.0/stock-prices/bulk?year=2026&period=08")
URL=$(echo "$RESP" | jq -r '.data[0].url')
SHA=$(echo "$RESP" | jq -r '.data[0].sha256')
 
# 2. Download the file before the link expires
curl -o roic-stock-prices-2026-08.csv.gz "$URL"
 
# 3. Verify the digest
echo "$SHA  roic-stock-prices-2026-08.csv.gz" | shasum -a 256 -c
 
# 4. Decompress
gunzip roic-stock-prices-2026-08.csv.gz

The same steps in Python, with the file streamed to disk:

import gzip
import hashlib
import requests
 
API = "https://api.roic.ai/v3.0.0"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
 
listing = requests.get(
    f"{API}/stock-prices/bulk", params={"year": 2026, "period": "08"}, headers=HEADERS
).json()
meta = listing["data"][0]
 
digest = hashlib.sha256()
with requests.get(meta["url"], stream=True) as download, open("prices.csv.gz", "wb") as out:
    for chunk in download.iter_content(chunk_size=1 << 20):
        digest.update(chunk)
        out.write(chunk)
 
assert digest.hexdigest() == meta["sha256"], "digest mismatch, download again"
 
with gzip.open("prices.csv.gz", "rt", newline="") as csv_file:
    header = csv_file.readline().rstrip("\n").split(",")
    print(header)

Errors

StatusCodeCause
400invalid_parameterperiod is not a month from 01 to 12, or year is not a number.
401authentication_requiredThe API key is missing. Related codes: invalid_api_key and multiple_authentication_methods.
402bulk_download_restrictedThe plan does not include bulk downloads.
429rate_limit_exceededThe request limit is reached. Retry after Retry-After.

A year without files returns an empty data array. The file host bulk.roic.ai blocks a link without a valid verify token or after expires_at. Call the route again for fresh links.