-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapi.openapi.yaml
More file actions
260 lines (258 loc) · 6.11 KB
/
api.openapi.yaml
File metadata and controls
260 lines (258 loc) · 6.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
openapi: 3.0.3
info:
title: tulip API
description: |-
Documentation for the [tulip](https://github.com/shoriwe/tulip) API.
contact:
email: [email protected]
license:
name: MIT
url: https://github.com/shoriwe/tulip/blob/main/LICENSE
version: TBA
tags:
- name: symbol
description: Query information about specific symbols
- name: notes
description: CRUD operations over the user Notes
paths:
/api/quote/{symbol}:
get:
tags:
- symbol
description: Quote the latest price for a Symbol
parameters:
- in: path
required: true
name: symbol
schema:
type: string
example: AAPL
responses:
200:
description: Last candle returned
content:
application/json:
schema:
$ref: "#/components/schemas/candle"
/api/candles/{symbol}/{resolution}/{from}/{to}:
get:
tags:
- symbol
description: Get the historical candles of symbol
parameters:
- in: path
required: true
name: symbol
schema:
type: string
example: AAPL
- in: path
required: true
name: resolution
schema:
$ref: "#/components/schemas/resolution"
- in: path
description: UNIX timestamp millisecond
required: true
name: from
schema:
type: number
example: 1673023865007
- in: path
description: UNIX timestamp millisecond
required: true
name: to
schema:
type: number
example: 1673023865007
responses:
200:
description: List of candles
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/candle"
/api/recommendation/trends/{symbol}:
get:
tags:
- symbol
description: Get the operational recommendation trends for symbol
parameters:
- in: path
required: true
name: symbol
schema:
type: string
example: AAPL
responses:
200:
description: Recommendation trend
content:
application/json:
schema:
$ref: "#/components/schemas/recommendation-trend"
/api/peers/{symbol}:
get:
tags:
- symbol
description: Get peers for the symbol specified
parameters:
- in: path
required: true
name: symbol
schema:
type: string
example: AAPL
responses:
200:
description: Peers
content:
application/json:
schema:
type: array
items:
type: string
example: ["AAPL", "AMD"]
/api/notes:
get:
tags:
- notes
description: List all notes in the database
responses:
200:
description: List of notes
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/note"
put:
tags:
- notes
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/note"
description: Returns a note object
responses:
200:
description: Note created successfully
/api/notes/{name}:
get:
tags:
- notes
parameters:
- in: path
required: true
name: name
schema:
type: string
example: My note
description: Returns a note object
responses:
200:
description: List of notes
content:
application/json:
schema:
$ref: "#/components/schemas/note"
patch:
tags:
- notes
parameters:
- in: path
required: true
name: name
schema:
type: string
example: My note
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/note"
description: Updates a note, notice that the name in the note object is not required
responses:
200:
description: Note updated successfully
delete:
tags:
- notes
parameters:
- in: path
required: true
name: name
schema:
type: string
example: My note
description: Deletes a note based on its name
responses:
200:
description: Note deleted successfully
components:
schemas:
resolution:
type: string
enum: ["1", "60", "D", "M"]
db-resolution:
description: Mapped directly to the string resolution of above
type: number
enum: [0, 1, 2, 3]
candle:
type: object
properties:
symbol:
type: string
example: AAPL
timestamp:
type: string
example: "2009-11-10T23:00:00Z"
resolution:
$ref: "#/components/schemas/db-resolution"
open:
type: number
example: 10
high:
type: number
example: 10
low:
type: number
example: 10
close:
type: number
example: 10
prevClose:
type: number
example: 10
volume:
type: number
example: 10
recommendation-trend:
type: object
properties:
buy:
type: number
example: 10
strongBuy:
type: number
example: 10
hold:
type: number
example: 10
sell:
type: number
example: 10
strongSell:
type: number
example: 10
note:
type: object
properties:
name:
type: string
content:
type: string