{"openapi":"3.1.0","info":{"title":"Matrix API","version":"1.0.0","description":"Linear algebra as an API: multiply matrices, analyse a matrix, and solve linear systems — all computed locally and exactly. The multiply endpoint returns the product A×B, checking that the inner dimensions match. The analyze endpoint takes any matrix and returns its transpose and rank, and for square matrices also the determinant, trace, whether it is symmetric and invertible, and the inverse when it exists — using LU decomposition with partial pivoting and Gauss-Jordan elimination for numerical stability. The solve endpoint solves a system Ax = b for a square coefficient matrix by Gaussian elimination with partial pivoting, and reports cleanly when the matrix is singular and there is no unique solution. Matrices are passed as JSON arrays of rows, for example [[1,2],[3,4]]. Everything is deterministic and instant. Ideal for data-science and machine-learning prep, computer graphics and 3D transforms, engineering and physics, computer-vision calibration, control systems, and teaching linear algebra. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. This is matrix and linear-algebra maths; for 3D rotations use a quaternion API, for vector maths use a vector API, and for statistics use a stats API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/matrix-api","description":"oanor gateway"}],"tags":[{"name":"Matrix"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/analyze":{"get":{"operationId":"get_v1_analyze","tags":["Matrix"],"summary":"Analyze a matrix","description":"","parameters":[{"name":"matrix","in":"query","required":true,"description":"Matrix as JSON","schema":{"type":"string"},"example":"[[1,2],[3,4]]"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"rank":2,"trace":5,"square":true,"inverse":[[-2,1],[1.5,-0.5]],"symmetric":false,"transpose":[[1,3],[2,4]],"dimensions":{"cols":2,"rows":2},"invertible":true,"determinant":-2},"meta":{"timestamp":"2026-06-03T17:42:15.455Z","request_id":"f23e9296-abe8-46c9-a78a-356bcf5aa975"},"status":"ok","message":"Analyze matrix","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/multiply":{"get":{"operationId":"get_v1_multiply","tags":["Matrix"],"summary":"Multiply two matrices","description":"","parameters":[{"name":"a","in":"query","required":true,"description":"Matrix A as JSON","schema":{"type":"string"},"example":"[[1,2],[3,4]]"},{"name":"b","in":"query","required":true,"description":"Matrix B as JSON","schema":{"type":"string"},"example":"[[5,6],[7,8]]"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"product":[[19,22],[43,50]],"a_dimensions":{"cols":2,"rows":2},"b_dimensions":{"cols":2,"rows":2},"result_dimensions":{"cols":2,"rows":2}},"meta":{"timestamp":"2026-06-03T17:42:15.573Z","request_id":"b2ba4a75-bc44-4102-9e40-f2785ad0a33b"},"status":"ok","message":"Multiply matrices","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/solve":{"get":{"operationId":"get_v1_solve","tags":["Matrix"],"summary":"Solve Ax = b","description":"","parameters":[{"name":"a","in":"query","required":true,"description":"Square coefficient matrix","schema":{"type":"string"},"example":"[[2,1],[1,3]]"},{"name":"b","in":"query","required":true,"description":"Right-hand side vector","schema":{"type":"string"},"example":"[3,5]"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"solution":[0.8,1.4],"dimensions":{"cols":2,"rows":2},"unique_solution":true},"meta":{"timestamp":"2026-06-03T17:42:15.661Z","request_id":"2f0d16a6-4000-43d9-8066-047d2546c6e9"},"status":"ok","message":"Solve linear system","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Matrix API","notes":"Matrices up to 60x60. Singular matrices return invertible=false / no unique solution rather than erroring. Nothing is stored.","version":"v1","endpoints":[{"path":"/v1/multiply","params":{"a":"matrix [[…]]","b":"matrix [[…]]"},"returns":"the matrix product and its dimensions"},{"path":"/v1/analyze","params":{"matrix":"matrix [[…]]"},"returns":"transpose, rank, and (square) determinant, trace, symmetry, inverse"},{"path":"/v1/solve","params":{"a":"square coefficient matrix [[…]]","b":"right-hand side vector […]"},"returns":"the solution vector x of Ax=b"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Linear algebra as an API: multiply matrices, analyse a matrix, and solve linear systems — all computed locally and exactly. The multiply endpoint returns the product A×B (checking that the inner dimensions match). The analyze endpoint takes any matrix and returns its transpose and rank, and for square matrices also the determinant, trace, whether it is symmetric and invertible, and the inverse when it exists — using LU decomposition with partial pivoting and Gauss-Jordan elimination for numerical stability. The solve endpoint solves a system Ax = b for a square coefficient matrix by Gaussian elimination with partial pivoting, reporting cleanly when the matrix is singular and has no unique solution. Matrices are passed as JSON arrays of rows, e.g. [[1,2],[3,4]]. Everything is deterministic and instant. Ideal for data science and machine-learning prep, computer graphics and transforms, engineering and physics, computer-vision calibration, and teaching linear algebra. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. This is matrix and linear-algebra maths; for 3D rotations use a quaternion API, for vectors use a vector API, and for statistics use a stats API."},"meta":{"timestamp":"2026-06-03T17:42:15.736Z","request_id":"d2c991cc-c22d-40c4-9b06-e1dd21ba55cf"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":5935,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":745,"monthly_call_quota":15450,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2735,"monthly_call_quota":205500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6535,"monthly_call_quota":1070000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/matrix-api"}