# Apps

## Get all apps

> Retrieve all apps for the authenticated user

```json
{"openapi":"3.0.0","info":{"title":"Meshmap API v1","version":"1.0.0"},"servers":[{"url":"/api/v1","description":"API v1 base URL"}],"security":[{"AppAPIKey":[]}],"components":{"securitySchemes":{"AppAPIKey":{"type":"apiKey","in":"header","name":"x-app-api-key","description":"App API key in format: <key>"}},"schemas":{"AppsListResponse":{"type":"object","required":["apps"],"properties":{"apps":{"type":"array","items":{"$ref":"#/components/schemas/AppSchema"}}}},"AppSchema":{"type":"object","required":["id","name","description","apiKey","createdAt","updatedAt","visibility"],"properties":{"id":{"type":"string","description":"Unique app identifier"},"name":{"type":"string","description":"App name"},"description":{"type":"string","description":"App description"},"imageUrl":{"type":"string","nullable":true,"description":"App image URL"},"apiKey":{"type":"string","description":"App API key"},"visibility":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"App visibility setting"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last update timestamp"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"oneOf":[{"type":"string","description":"Error message"},{"type":"array","items":{"type":"object","required":["code","message","path"],"properties":{"code":{"type":"string","description":"Error code"},"message":{"type":"string","description":"Error message"},"path":{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"}]},"description":"Error path"}}}}]}}}}},"paths":{"/apps":{"get":{"summary":"Get all apps","description":"Retrieve all apps for the authenticated user","tags":["Apps"],"responses":{"200":{"description":"Apps retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppsListResponse"}}}},"401":{"description":"Unauthorized - invalid or missing API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Create a new app

> Create a new app for the authenticated user

```json
{"openapi":"3.0.0","info":{"title":"Meshmap API v1","version":"1.0.0"},"servers":[{"url":"/api/v1","description":"API v1 base URL"}],"security":[{"AppAPIKey":[]}],"components":{"securitySchemes":{"AppAPIKey":{"type":"apiKey","in":"header","name":"x-app-api-key","description":"App API key in format: <key>"}},"schemas":{"CreateAppRequest":{"type":"object","required":["name","description"],"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"App name"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"App description"},"imageUrl":{"type":"string","format":"uri","description":"Optional image URL"},"visibility":{"type":"string","enum":["PUBLIC","PRIVATE"],"default":"PRIVATE","description":"App visibility setting. PUBLIC apps are visible in public listings, PRIVATE apps are only accessible to the owner."}}},"AppSchema":{"type":"object","required":["id","name","description","apiKey","createdAt","updatedAt","visibility"],"properties":{"id":{"type":"string","description":"Unique app identifier"},"name":{"type":"string","description":"App name"},"description":{"type":"string","description":"App description"},"imageUrl":{"type":"string","nullable":true,"description":"App image URL"},"apiKey":{"type":"string","description":"App API key"},"visibility":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"App visibility setting"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last update timestamp"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"oneOf":[{"type":"string","description":"Error message"},{"type":"array","items":{"type":"object","required":["code","message","path"],"properties":{"code":{"type":"string","description":"Error code"},"message":{"type":"string","description":"Error message"},"path":{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"}]},"description":"Error path"}}}}]}}}}},"paths":{"/apps":{"post":{"summary":"Create a new app","description":"Create a new app for the authenticated user","tags":["Apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAppRequest"}}}},"responses":{"201":{"description":"App created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppSchema"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - invalid or missing API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```
