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.

Files778 files, 4.70 GB compressed

YearPeriodSize
2026
January
28.0 MB
2026
February
25.6 MB
2026
March
29.4 MB
2026
April
27.9 MB
2026
May
26.8 MB
2026
June
29.8 MB
2026
July
31.1 MB
2026
August
28.6 MB
2026
September
28.7 MB
2026
October
21.4 MB
2025
January
25.5 MB
2025
February
24.2 MB
2025
March
25.5 MB
2025
April
25.1 MB
2025
May
25.6 MB
2025
June
25.8 MB
2025
July
29.0 MB
2025
August
26.4 MB
2025
September
28.1 MB
2025
October
29.0 MB
2025
November
25.8 MB
2025
December
27.5 MB
2024
January
25.8 MB
2024
February
23.6 MB
2024
March
24.0 MB
2024
April
25.0 MB
2024
May
25.9 MB
2024
June
23.5 MB
2024
July
27.3 MB
2024
August
26.4 MB
2024
September
24.4 MB
2024
October
26.6 MB
2024
November
25.0 MB
2024
December
24.5 MB
2023
January
23.3 MB
2023
February
22.6 MB
2023
March
26.3 MB
2023
April
20.9 MB
2023
May
24.7 MB
2023
June
24.5 MB
2023
July
24.0 MB
2023
August
26.2 MB
2023
September
23.5 MB
2023
October
24.5 MB
2023
November
25.2 MB
2023
December
23.4 MB
2022
January
22.9 MB
2022
February
21.4 MB
2022
March
25.6 MB
2022
April
21.8 MB
2022
May
23.3 MB
2022
June
23.9 MB
2022
July
22.8 MB
2022
August
25.3 MB
2022
September
24.1 MB
2022
October
22.5 MB
2022
November
24.4 MB
2022
December
24.0 MB
2021
January
20.4 MB
2021
February
19.8 MB
2021
March
23.8 MB
2021
April
21.4 MB
2021
May
21.0 MB
2021
June
23.5 MB
2021
July
23.2 MB
2021
August
23.7 MB
2021
September
23.4 MB
2021
October
22.4 MB
2021
November
24.1 MB
2021
December
24.3 MB
2020
January
19.2 MB
2020
February
18.4 MB
2020
March
20.9 MB
2020
April
19.0 MB
2020
May
18.2 MB
2020
June
20.7 MB
2020
July
21.9 MB
2020
August
20.4 MB
2020
September
21.3 MB
2020
October
20.8 MB
2020
November
21.0 MB
2020
December
21.4 MB
2019
January
18.9 MB
2019
February
16.5 MB
2019
March
18.4 MB
2019
April
18.2 MB
2019
May
19.2 MB
2019
June
17.4 MB
2019
July
20.3 MB
2019
August
19.3 MB
2019
September
18.3 MB
2019
October
19.3 MB
2019
November
18.6 MB
2019
December
18.3 MB
2018
January
18.6 MB
2018
February
16.4 MB
2018
March
18.3 MB
2018
April
17.4 MB
2018
May
18.6 MB
2018
June
17.8 MB
2018
July
18.6 MB
2018
August
19.4 MB
2018
September
16.6 MB
2018
October
19.1 MB
2018
November
18.6 MB
2018
December
16.4 MB
2017
January
16.4 MB
2017
February
15.8 MB
2017
March
18.7 MB
2017
April
15.1 MB
2017
May
17.6 MB
2017
June
17.4 MB
2017
July
16.9 MB
2017
August
18.4 MB
2017
September
17.2 MB
2017
October
17.5 MB
2017
November
18.8 MB
2017
December
17.2 MB
2016
January
14.8 MB
2016
February
14.6 MB
2016
March
16.3 MB
2016
April
15.4 MB
2016
May
15.8 MB
2016
June
16.5 MB
2016
July
15.7 MB
2016
August
17.6 MB
2016
September
16.2 MB
2016
October
15.5 MB
2016
November
17.1 MB
2016
December
16.7 MB
2015
January
14.6 MB
2015
February
13.5 MB
2015
March
16.0 MB
2015
April
15.1 MB
2015
May
14.5 MB
2015
June
16.0 MB
2015
July
16.2 MB
2015
August
15.3 MB
2015
September
15.0 MB
2015
October
15.4 MB
2015
November
15.2 MB
2015
December
16.0 MB
2014
January
14.2 MB
2014
February
12.8 MB
2014
March
14.2 MB
2014
April
13.7 MB
2014
May
13.9 MB
2014
June
14.1 MB
2014
July
15.2 MB
2014
August
14.3 MB
2014
September
15.1 MB
2014
October
15.3 MB
2014
November
13.8 MB
2014
December
15.0 MB
2013
January
13.6 MB
2013
February
11.7 MB
2013
March
12.8 MB
2013
April
12.9 MB
2013
May
13.6 MB
2013
June
12.2 MB
2013
July
13.9 MB
2013
August
13.1 MB
2013
September
12.5 MB
2013
October
14.0 MB
2013
November
13.1 MB
2013
December
13.3 MB
2012
January
11.3 MB
2012
February
12.1 MB
2012
March
13.0 MB
2012
April
11.2 MB
2012
May
12.7 MB
2012
June
11.9 MB
2012
July
12.6 MB
2012
August
12.9 MB
2012
September
11.6 MB
2012
October
13.0 MB
2012
November
13.0 MB
2012
December
11.8 MB
2011
January
11.6 MB
2011
February
10.7 MB
2011
March
13.0 MB
2011
April
10.9 MB
2011
May
11.9 MB
2011
June
12.0 MB
2011
July
11.5 MB
2011
August
12.6 MB
2011
September
11.6 MB
2011
October
11.0 MB
2011
November
11.9 MB
2011
December
11.8 MB
2010
January
10.4 MB
2010
February
9.6 MB
2010
March
12.0 MB
2010
April
11.1 MB
2010
May
10.9 MB
2010
June
11.4 MB
2010
July
11.5 MB
2010
August
11.7 MB
2010
September
11.3 MB
2010
October
11.3 MB
2010
November
12.0 MB
2010
December
12.3 MB
2009
January
8.8 MB
2009
February
8.9 MB
2009
March
10.0 MB
2009
April
9.6 MB
2009
May
9.4 MB
2009
June
10.7 MB
2009
July
10.9 MB
2009
August
10.3 MB
2009
September
10.6 MB
2009
October
10.6 MB
2009
November
10.3 MB
2009
December
10.9 MB
2008
January
10.6 MB
2008
February
9.4 MB
2008
March
9.4 MB
2008
April
10.2 MB
2008
May
9.9 MB
2008
June
10.0 MB
2008
July
10.7 MB
2008
August
9.7 MB
2008
September
9.9 MB
2008
October
10.4 MB
2008
November
9.0 MB
2008
December
9.7 MB
2007
January
9.2 MB
2007
February
8.3 MB
2007
March
9.6 MB
2007
April
8.6 MB
2007
May
9.8 MB
2007
June
9.7 MB
2007
July
10.4 MB
2007
August
10.7 MB
2007
September
9.1 MB
2007
October
10.7 MB
2007
November
10.3 MB
2007
December
9.1 MB
2006
January
8.1 MB
2006
February
7.9 MB
2006
March
9.2 MB
2006
April
7.7 MB
2006
May
8.9 MB
2006
June
8.9 MB
2006
July
8.4 MB
2006
August
9.3 MB
2006
September
8.6 MB
2006
October
8.8 MB
2006
November
9.2 MB
2006
December
8.5 MB
2005
January
6.3 MB
2005
February
6.1 MB
2005
March
7.0 MB
2005
April
6.5 MB
2005
May
6.7 MB
2005
June
7.1 MB
2005
July
7.7 MB
2005
August
8.7 MB
2005
September
8.3 MB
2005
October
7.8 MB
2005
November
8.1 MB
2005
December
8.3 MB
2004
January
5.3 MB
2004
February
5.1 MB
2004
March
6.8 MB
2004
April
6.1 MB
2004
May
5.9 MB
2004
June
6.4 MB
2004
July
6.5 MB
2004
August
6.5 MB
2004
September
6.5 MB
2004
October
6.4 MB
2004
November
6.7 MB
2004
December
6.9 MB
2003
January
3.8 MB
2003
February
3.4 MB
2003
March
3.7 MB
2003
April
3.8 MB
2003
May
4.0 MB
2003
June
4.2 MB
2003
July
4.7 MB
2003
August
4.4 MB
2003
September
4.8 MB
2003
October
5.4 MB
2003
November
4.7 MB
2003
December
5.8 MB
2002
January
3.3 MB
2002
February
2.9 MB
2002
March
3.0 MB
2002
April
3.1 MB
2002
May
3.2 MB
2002
June
3.1 MB
2002
July
3.5 MB
2002
August
3.3 MB
2002
September
3.2 MB
2002
October
3.5 MB
2002
November
3.4 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.5 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.3 MB
2000
June
2.3 MB
2000
July
2.2 MB
2000
August
2.4 MB
2000
September
2.2 MB
2000
October
2.3 MB
2000
November
2.3 MB
2000
December
2.2 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.8 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.6 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.5 MB
1997
October
1.6 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.3 MB
1996
December
1.3 MB
1995
January
895 KB
1995
February
835 KB
1995
March
999 KB
1995
April
824 KB
1995
May
976 KB
1995
June
1.0 MB
1995
July
977 KB
1995
August
1.1 MB
1995
September
1.1 MB
1995
October
1.1 MB
1995
November
1.1 MB
1995
December
1.1 MB
1994
January
834 KB
1994
February
774 KB
1994
March
914 KB
1994
April
749 KB
1994
May
817 KB
1994
June
869 KB
1994
July
792 KB
1994
August
927 KB
1994
September
883 KB
1994
October
857 KB
1994
November
886 KB
1994
December
883 KB
1993
January
601 KB
1993
February
599 KB
1993
March
702 KB
1993
April
644 KB
1993
May
635 KB
1993
June
702 KB
1993
July
699 KB
1993
August
773 KB
1993
September
770 KB
1993
October
762 KB
1993
November
790 KB
1993
December
823 KB
1992
January
609 KB
1992
February
530 KB
1992
March
602 KB
1992
April
565 KB
1992
May
540 KB
1992
June
599 KB
1992
July
609 KB
1992
August
580 KB
1992
September
597 KB
1992
October
618 KB
1992
November
590 KB
1992
December
638 KB
1991
January
498 KB
1991
February
472 KB
1991
March
502 KB
1991
April
534 KB
1991
May
531 KB
1991
June
493 KB
1991
July
546 KB
1991
August
555 KB
1991
September
513 KB
1991
October
583 KB
1991
November
537 KB
1991
December
555 KB
1990
January
482 KB
1990
February
408 KB
1990
March
469 KB
1990
April
421 KB
1990
May
474 KB
1990
June
462 KB
1990
July
495 KB
1990
August
533 KB
1990
September
437 KB
1990
October
512 KB
1990
November
475 KB
1990
December
455 KB
1989
January
423 KB
1989
February
383 KB
1989
March
441 KB
1989
April
408 KB
1989
May
446 KB
1989
June
455 KB
1989
July
412 KB
1989
August
478 KB
1989
September
420 KB
1989
October
461 KB
1989
November
440 KB
1989
December
432 KB
1988
January
366 KB
1988
February
373 KB
1988
March
436 KB
1988
April
378 KB
1988
May
388 KB
1988
June
420 KB
1988
July
383 KB
1988
August
437 KB
1988
September
398 KB
1988
October
402 KB
1988
November
404 KB
1988
December
416 KB
1987
January
375 KB
1987
February
345 KB
1987
March
402 KB
1987
April
386 KB
1987
May
359 KB
1987
June
399 KB
1987
July
412 KB
1987
August
399 KB
1987
September
402 KB
1987
October
430 KB
1987
November
378 KB
1987
December
420 KB
1986
January
338 KB
1986
February
298 KB
1986
March
319 KB
1986
April
350 KB
1986
May
329 KB
1986
June
333 KB
1986
July
353 KB
1986
August
334 KB
1986
September
341 KB
1986
October
366 KB
1986
November
312 KB
1986
December
371 KB
1985
January
314 KB
1985
February
277 KB
1985
March
302 KB
1985
April
304 KB
1985
May
320 KB
1985
June
292 KB
1985
July
323 KB
1985
August
316 KB
1985
September
278 KB
1985
October
333 KB
1985
November
301 KB
1985
December
324 KB
1984
January
284 KB
1984
February
269 KB
1984
March
290 KB
1984
April
266 KB
1984
May
292 KB
1984
June
275 KB
1984
July
275 KB
1984
August
312 KB
1984
September
258 KB
1984
October
312 KB
1984
November
290 KB
1984
December
280 KB
1983
January
261 KB
1983
February
236 KB
1983
March
287 KB
1983
April
252 KB
1983
May
269 KB
1983
June
281 KB
1983
July
255 KB
1983
August
289 KB
1983
September
267 KB
1983
October
271 KB
1983
November
272 KB
1983
December
276 KB
1982
January
222 KB
1982
February
211 KB
1982
March
255 KB
1982
April
235 KB
1982
May
223 KB
1982
June
242 KB
1982
July
231 KB
1982
August
250 KB
1982
September
244 KB
1982
October
255 KB
1982
November
257 KB
1982
December
271 KB
1981
January
236 KB
1981
February
210 KB
1981
March
250 KB
1981
April
242 KB
1981
May
228 KB
1981
June
253 KB
1981
July
246 KB
1981
August
234 KB
1981
September
238 KB
1981
October
241 KB
1981
November
227 KB
1981
December
251 KB
1980
January
228 KB
1980
February
207 KB
1980
March
216 KB
1980
April
208 KB
1980
May
208 KB
1980
June
213 KB
1980
July
229 KB
1980
August
221 KB
1980
September
227 KB
1980
October
248 KB
1980
November
201 KB
1980
December
244 KB
1979
January
208 KB
1979
February
178 KB
1979
March
211 KB
1979
April
195 KB
1979
May
211 KB
1979
June
204 KB
1979
July
203 KB
1979
August
228 KB
1979
September
189 KB
1979
October
229 KB
1979
November
204 KB
1979
December
203 KB
1978
January
186 KB
1978
February
167 KB
1978
March
200 KB
1978
April
192 KB
1978
May
213 KB
1978
June
210 KB
1978
July
187 KB
1978
August
227 KB
1978
September
195 KB
1978
October
214 KB
1978
November
197 KB
1978
December
186 KB
1977
January
196 KB
1977
February
174 KB
1977
March
208 KB
1977
April
181 KB
1977
May
190 KB
1977
June
198 KB
1977
July
174 KB
1977
August
203 KB
1977
September
186 KB
1977
October
185 KB
1977
November
191 KB
1977
December
197 KB
1976
January
192 KB
1976
February
180 KB
1976
March
212 KB
1976
April
187 KB
1976
May
173 KB
1976
June
186 KB
1976
July
180 KB
1976
August
189 KB
1976
September
185 KB
1976
October
178 KB
1976
November
181 KB
1976
December
211 KB
1975
January
167 KB
1975
February
145 KB
1975
March
159 KB
1975
April
173 KB
1975
May
168 KB
1975
June
169 KB
1975
July
180 KB
1975
August
150 KB
1975
September
150 KB
1975
October
170 KB
1975
November
151 KB
1975
December
192 KB
1974
January
178 KB
1974
February
144 KB
1974
March
165 KB
1974
April
155 KB
1974
May
162 KB
1974
June
146 KB
1974
July
162 KB
1974
August
160 KB
1974
September
147 KB
1974
October
170 KB
1974
November
145 KB
1974
December
167 KB
1973
January
198 KB
1973
February
175 KB
1973
March
199 KB
1973
April
178 KB
1973
May
195 KB
1973
June
169 KB
1973
July
171 KB
1973
August
174 KB
1973
September
164 KB
1973
October
208 KB
1973
November
192 KB
1973
December
186 KB
1972
January
88 KB
1972
February
84 KB
1972
March
93 KB
1972
April
110 KB
1972
May
121 KB
1972
June
119 KB
1972
July
107 KB
1972
August
125 KB
1972
September
107 KB
1972
October
119 KB
1972
November
114 KB
1972
December
142 KB
1971
January
78 KB
1971
February
75 KB
1971
March
91 KB
1971
April
84 KB
1971
May
80 KB
1971
June
87 KB
1971
July
84 KB
1971
August
89 KB
1971
September
84 KB
1971
October
84 KB
1971
November
85 KB
1971
December
92 KB
1970
January
79 KB
1970
February
71 KB
1970
March
79 KB
1970
April
82 KB
1970
May
80 KB
1970
June
81 KB
1970
July
81 KB
1970
August
77 KB
1970
September
80 KB
1970
October
84 KB
1970
November
76 KB
1970
December
86 KB
1969
January
78 KB
1969
February
64 KB
1969
March
71 KB
1969
April
75 KB
1969
May
75 KB
1969
June
75 KB
1969
July
74 KB
1969
August
74 KB
1969
September
76 KB
1969
October
85 KB
1969
November
71 KB
1969
December
83 KB
1968
January
70 KB
1968
February
60 KB
1968
March
66 KB
1968
April
67 KB
1968
May
73 KB
1968
June
58 KB
1968
July
58 KB
1968
August
62 KB
1968
September
59 KB
1968
October
64 KB
1968
November
60 KB
1968
December
64 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.