Last active
January 8, 2020 13:20
-
-
Save tbarbugli/f40c2815b64ca517745acdedceaa7e9b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"openapi": "3.0.0", | |
"info": { | |
"description": "Stream Analytics API", | |
"version": "1.0.0", | |
"title": "Stream Analytics", | |
"contact": { | |
"email": "[email protected]" | |
} | |
}, | |
"servers": [ | |
{ | |
"url": "https://analytics.stream-io-api.com/analytics/v1.0", | |
"description": "Analytics API endpoint" | |
} | |
], | |
"paths": { | |
"/impression/": { | |
"post": { | |
"summary": "Track one or more impressions", | |
"requestBody": { | |
"$ref": "#/components/requestBodies/Impression" | |
}, | |
"responses": { | |
"201": { | |
"description": "Created" | |
}, | |
"401": { | |
"$ref": "#/components/responses/UnauthorizedError" | |
} | |
}, | |
"security": [ | |
{ | |
"apiKey": [], | |
"token": [] | |
} | |
] | |
} | |
}, | |
"/engagement/": { | |
"post": { | |
"summary": "Track a new engagement event", | |
"requestBody": { | |
"$ref": "#/components/requestBodies/Engagement" | |
}, | |
"responses": { | |
"201": { | |
"description": "Created" | |
}, | |
"401": { | |
"$ref": "#/components/responses/UnauthorizedError" | |
} | |
}, | |
"security": [ | |
{ | |
"apiKey": [], | |
"token": [] | |
} | |
] | |
} | |
} | |
}, | |
"components": { | |
"responses": { | |
"UnauthorizedError": { | |
"description": "Access token is missing or invalid" | |
} | |
}, | |
"securitySchemes": { | |
"apiKey": { | |
"type": "apiKey", | |
"in": "query", | |
"name": "api_key" | |
}, | |
"token": { | |
"type": "apiKey", | |
"in": "header", | |
"name": "authorization" | |
} | |
}, | |
"schemas": { | |
"UserData": { | |
"description": "additional data for the engagement event", | |
"type": "object", | |
"properties": { | |
"id": { | |
"type": "string" | |
} | |
} | |
}, | |
"EventContent": { | |
"description": "additional data for the engagement event", | |
"type": "object", | |
"properties": { | |
"foreign_id": { | |
"type": "string", | |
"description": "the foreign_id of the tracked content", | |
"example": "post:123" | |
} | |
} | |
}, | |
"Impression": { | |
"description": "A JSON object containing one or more impressions", | |
"type": "object", | |
"oneOf": [ | |
{ | |
"required": [ | |
"content" | |
] | |
}, | |
{ | |
"required": [ | |
"content_list" | |
] | |
} | |
], | |
"properties": { | |
"feed_id": { | |
"type": "string", | |
"description": "the id of the feed where the engagement was tracked", | |
"example": "user:123" | |
}, | |
"user_data": { | |
"$ref": "#/components/schemas/UserData" | |
}, | |
"location": { | |
"type": "string", | |
"description": "the location (ie. page) where the tracking was done" | |
}, | |
"position": { | |
"type": "integer", | |
"description": "the position inside the feed of the activity" | |
}, | |
"boost": { | |
"type": "number", | |
"description": "the boost factor for this engagement" | |
}, | |
"content": { | |
"$ref": "#/components/schemas/EventContent" | |
}, | |
"content_list": { | |
"type": "array", | |
"minItems": 1, | |
"maxItems": 100, | |
"items": { | |
"$ref": "#/components/schemas/EventContent" | |
} | |
} | |
} | |
}, | |
"Engagement": { | |
"description": "A JSON object containing pet information", | |
"required": [ | |
"feed_id", | |
"label" | |
], | |
"properties": { | |
"feed_id": { | |
"type": "string", | |
"description": "the id of the feed where the engagement was tracked", | |
"example": "user:123" | |
}, | |
"label": { | |
"type": "string", | |
"description": "the type of engagement", | |
"example": "click" | |
}, | |
"user_data": { | |
"$ref": "#/components/schemas/UserData" | |
}, | |
"content": { | |
"$ref": "#/components/schemas/EventContent" | |
}, | |
"location": { | |
"type": "string", | |
"description": "the location (ie. page) where the tracking was done" | |
}, | |
"position": { | |
"type": "integer", | |
"description": "the position inside the feed of the activity" | |
}, | |
"boost": { | |
"type": "number", | |
"description": "the boost factor for this engagement" | |
} | |
} | |
} | |
}, | |
"requestBodies": { | |
"Impression": { | |
"description": "A JSON object containing impression data", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/Impression" | |
} | |
} | |
} | |
}, | |
"Engagement": { | |
"description": "A JSON object containing impression data", | |
"content": { | |
"application/json": { | |
"schema": { | |
"$ref": "#/components/schemas/Engagement" | |
} | |
} | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment