{"openapi":"3.1.0","info":{"title":"Developers","description":"Developers endpoints","version":"1","contact":{"name":"API Support","email":"dev@numeral.io"}},"tags":[{"name":"API Keys","description":"API keys endpoints"}],"servers":[{"url":"https://sandbox.numeral.io/v1"}],"components":{"securitySchemes":{"sec0":{"type":"apiKey","in":"header","name":"x-api-key"}},"parameters":{"list.common_parameters.sort_order":{"name":"sort_order","in":"query","description":"Order is based on attribute `created_at`. If `asc`, results are fetched in chronological order. If `desc`, results are fetched in reversed chronological order. Default order is `desc`.\n","schema":{"type":"string","enum":["asc","desc"]}}},"responses":{"errors.400.validation":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"errors.404.not_found":{"description":"The specified resource was not found."},"errors.409.conflict":{"description":"Conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"errors.415.unsupported_media_type":{"description":"Unsupported Media Type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}},"errors.500.internal_server_error":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error"}}}}},"schemas":{"error":{"type":"object","properties":{"error":{"type":"string","example":"validation_error"},"message":{"type":"string","example":"validation errors occurred while processing request"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"reason":{"type":"string"}}}},"correlation_id":{"type":"string","format":"uuid"}}},"api_key.details":{"type":"object","required":["id","name","email","permission","last_4_chars","expiration_date","created_at","disabled_at"],"properties":{"id":{"type":"string","format":"uuid","description":"The ID of the API key.","example":"9007b3b2-2c77-49c3-a3be-e71eab300a68"},"name":{"type":"string","description":"The name of the API key.","example":"My API key"},"email":{"type":"string","description":"The email linked to the API key.","example":"example@numeral.io"},"permission":{"type":"string","description":"The permission of the API key.","enum":["read","modify","write"],"example":"read"},"last_4_chars":{"type":"string","description":"The last 4 characters of the API key.","example":"2d06"},"expiration_date":{"type":"string","description":"The UTC timestamp when the API key will expire.","example":"2025-07-08T08:50:51.974246244Z"},"created_at":{"type":"string","format":"date-time","description":"The UTC timestamp when the API key was created.","example":"2025-07-08T08:50:51.974246244Z"},"disabled_at":{"type":"string","description":"The UTC timestamp when the API key was disabled.","example":"2025-07-08T08:50:51.974246244Z"}}},"api_key.search_result":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/api_key.details"}}}}}},"security":[{"sec0":[]}],"paths":{"/api_keys":{"get":{"summary":"List API keys","description":"List and filter API keys.","operationId":"list-api-keys","tags":["API Keys"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25,"example":25}},{"name":"starting_after","in":"query","description":"The ID of the object from which your list request will start. It is not included in the result.","schema":{"type":"string","format":"uuid","example":"9007b3b2-2c77-49c3-a3be-e71eab300a68"}},{"name":"start_date","in":"query","description":"The creation date of the API key.","schema":{"type":"string","format":"date","example":"2025-07-08"}},{"name":"end_date","in":"query","description":"The creation date of the API key.","schema":{"type":"string","format":"date","example":"2025-07-08"}},{"name":"permission","in":"query","description":"The permission of the API key.","schema":{"type":"string","enum":["read","modify","write"]}},{"name":"last_4_chars","in":"query","description":"The last 4 characters of the API key.","schema":{"type":"string","example":"2d06"}},{"name":"disabled","in":"query","description":"The disabled status of the API key.","schema":{"type":"boolean","example":false}}],"responses":{"200":{"description":"List of filtered API keys.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api_key.search_result"}}}},"400":{"$ref":"#/components/responses/errors.400.validation"},"401":{"description":"Unauthorized. API key is missing or invalid."},"500":{"$ref":"#/components/responses/errors.500.internal_server_error"}}}},"/api_keys/{id}":{"get":{"summary":"Retrieve API key","description":"Retrieve the details of a specific API key.","operationId":"retrieve-api-key","tags":["API Keys"],"parameters":[{"name":"id","in":"path","description":"The ID of the API key.","schema":{"type":"string","format":"uuid"},"required":true}],"responses":{"200":{"description":"Successfully retrieved API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api_key.details"}}}},"400":{"$ref":"#/components/responses/errors.400.validation"},"401":{"description":"Unauthorized. API key is missing or invalid."},"404":{"$ref":"#/components/responses/errors.404.not_found"},"409":{"$ref":"#/components/responses/errors.409.conflict"},"500":{"$ref":"#/components/responses/errors.500.internal_server_error"}}}}}}