> ## Documentation Index > Fetch the complete documentation index at: https://docs.graphiant.com/llms.txt > Use this file to discover all available pages before exploring further. # /v1/diagnostic/speedtest-report > Generate a speedtest history report ## OpenAPI ````json PUT /v1/diagnostic/speedtest-report { "openapi": "3.0.0", "info": { "title": "Graphiant APIs", "version": "1.0.0", "description": "Graphiant API documentation." }, "servers": [ { "url": "https://api.graphiant.com" } ], "security": [ { "jwtAuth": [] } ], "tags": [], "paths": { "/v1/diagnostic/speedtest-report": { "put": { "security": [ { "jwtAuth": [] } ], "parameters": [ { "in": "header", "name": "Authorization", "required": true, "schema": { "type": "string" }, "description": "Bearer token. Format: Bearer " } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/v1DiagnosticSpeedtestReportPutRequest" } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/v1DiagnosticSpeedtestReportPutResponse" } } } } }, "description": "Generate a speedtest history report" } } }, "components": { "schemas": { "v1DiagnosticSpeedtestReportPutRequest": { "type": "object", "properties": { "deviceId": { "type": "integer", "format": "int64", "example": 30000000555, "minimum": 0, "description": "Unique identifier for a specific device (required)" }, "historyLength": { "type": "integer", "format": "int64", "example": 5, "minimum": 0, "description": "Number of most recent speedtest records to return for a specific device (required)" } }, "additionalProperties": false, "required": [ "deviceId", "historyLength" ] }, "v1DiagnosticSpeedtestReportPutResponse": { "type": "object", "properties": { "report": { "type": "string", "format": "byte", "example": "[37,80,68,70,45,49,46,52,10,37,211,235,233,225,10,49,32,48,32,111,98,106,10,60,60,47,67,114,101,97,116,111,114,32,40,67,104,114,111,109,105,117,109,41,10,47,80,114,111,100,117,99,101,114,32,40,83,107,105,97,47,80,68,70,32,109,57,56,41,10,47,67,114,101,97,116,105,111,110,68,97,116,101,32,40,68,58,50,48,50,50,48,54,48,57,48,54,52,49,50,55,43,48,48,39,48,48,39,41,10,47,77,111,100,68,97,116,101,32,40,68,58,50,48,50,50,48,54,48,57,48,54,52,49,50,55,43,48,48,39,48,48]", "description": "The generated report" }, "reportId": { "type": "integer", "format": "int64", "example": 10, "description": "8 bytes (base32 encoded) identifier for the report" } }, "additionalProperties": false } }, "securitySchemes": { "jwtAuth": { "type": "apiKey", "in": "header", "name": "authorization", "description": "Use `Bearer `" } } } } ````