> For the complete documentation index, see [llms.txt](https://timechain.gitbook.io/neucron/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://timechain.gitbook.io/neucron/api-references/apps.md).

# Apps

An **App** is your product on Neucron — branding, secrets, and Appstore publishing.

* Create & configure apps (`app_id`, icon, domain)
* Fetch API secrets for server integrations
* Publish to the public Appstore catalog
* List users who signed in through your app

> Draft apps stay private; publish when ready for discovery.

## List Apps

> List all apps owned by the current user or business.\
> \
> Returns draft and published apps for the active context. Use business header when listing business-owned apps.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Apps","description":"An **App** is your product on Neucron — branding, secrets, and Appstore publishing.\n\n- Create & configure apps (`app_id`, icon, domain)\n- Fetch API secrets for server integrations\n- Publish to the public Appstore catalog\n- List users who signed in through your app\n\n> Draft apps stay private; publish when ready for discovery."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/app/list":{"get":{"tags":["Apps"],"summary":"List Apps","description":"List all apps owned by the current user or business.\n\nReturns draft and published apps for the active context. Use business header when listing business-owned apps.","operationId":"apps_list_apps","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```

## Get App Details

> Retrieve a single app by ID, including metadata and publish state.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Apps","description":"An **App** is your product on Neucron — branding, secrets, and Appstore publishing.\n\n- Create & configure apps (`app_id`, icon, domain)\n- Fetch API secrets for server integrations\n- Publish to the public Appstore catalog\n- List users who signed in through your app\n\n> Draft apps stay private; publish when ready for discovery."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/app":{"get":{"tags":["Apps"],"summary":"Get App Details","description":"Retrieve a single app by ID, including metadata and publish state.","operationId":"apps_get_app_details","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"appID","in":"query","required":true,"description":"Application ID.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```

## Create App

> Create a new Neucron application under the current business/user.\
> \
> Minimum required field is \`app\_name\`. Optionally attach icon, domain, and image set for branding.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Apps","description":"An **App** is your product on Neucron — branding, secrets, and Appstore publishing.\n\n- Create & configure apps (`app_id`, icon, domain)\n- Fetch API secrets for server integrations\n- Publish to the public Appstore catalog\n- List users who signed in through your app\n\n> Draft apps stay private; publish when ready for discovery."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/app":{"post":{"tags":["Apps"],"summary":"Create App","description":"Create a new Neucron application under the current business/user.\n\nMinimum required field is `app_name`. Optionally attach icon, domain, and image set for branding.","operationId":"apps_create_app","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"app_id":{"type":"string","description":"Newly created application ID."},"app_name":{"type":"string","description":"Application name."},"published":{"type":"boolean","description":"Publication status."}},"required":["app_id","app_name"]}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"object","properties":{"app_name":{"type":"string","description":"Display name of the application."},"app_domain":{"type":"string","description":"Primary domain associated with the app."},"app_icon":{"type":"string","description":"URL of the app icon."},"app_images":{"type":"object","additionalProperties":true,"description":"Image set (screenshots / banners)."}},"required":["app_name"]}}}}}}}}
```

## Update App

> Update app branding, permissions, and Appstore metadata.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Apps","description":"An **App** is your product on Neucron — branding, secrets, and Appstore publishing.\n\n- Create & configure apps (`app_id`, icon, domain)\n- Fetch API secrets for server integrations\n- Publish to the public Appstore catalog\n- List users who signed in through your app\n\n> Draft apps stay private; publish when ready for discovery."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/app":{"put":{"tags":["Apps"],"summary":"Update App","description":"Update app branding, permissions, and Appstore metadata.","operationId":"apps_update_app","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"object","properties":{"app_id":{"type":"string","description":"Application ID to update."},"app_name":{"type":"string","description":"New display name."},"app_domain":{"type":"string","description":"Updated domain."},"app_icon":{"type":"string","description":"Updated icon URL."},"app_images":{"type":"object","additionalProperties":true,"description":"Updated image set."},"permissions":{"type":"array","items":{"type":"string"},"description":"Requested permission scopes."},"metadata":{"type":"object","additionalProperties":true,"description":"Store metadata: website, privacy email, success/failure URLs, terms, etc."}},"required":["app_id"]}}}}}}}}
```

## Delete App

> Permanently delete an application.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Apps","description":"An **App** is your product on Neucron — branding, secrets, and Appstore publishing.\n\n- Create & configure apps (`app_id`, icon, domain)\n- Fetch API secrets for server integrations\n- Publish to the public Appstore catalog\n- List users who signed in through your app\n\n> Draft apps stay private; publish when ready for discovery."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/app/{appId}":{"delete":{"tags":["Apps"],"summary":"Delete App","description":"Permanently delete an application.","operationId":"apps_delete_app","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"appId","in":"path","required":true,"description":"Application ID in the path.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```

## Get App Secret

> Retrieve API secret credentials for the application.\
> \
> Treat secrets as sensitive. Rotate/store them in a secrets manager; never expose them in client-side code.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Apps","description":"An **App** is your product on Neucron — branding, secrets, and Appstore publishing.\n\n- Create & configure apps (`app_id`, icon, domain)\n- Fetch API secrets for server integrations\n- Publish to the public Appstore catalog\n- List users who signed in through your app\n\n> Draft apps stay private; publish when ready for discovery."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/app/secret":{"get":{"tags":["Apps"],"summary":"Get App Secret","description":"Retrieve API secret credentials for the application.\n\nTreat secrets as sensitive. Rotate/store them in a secrets manager; never expose them in client-side code.","operationId":"apps_get_app_secret","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"appID","in":"query","required":true,"description":"Application ID.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```

## Publish App

> Publish the app to the Neucron public Appstore catalog.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Apps","description":"An **App** is your product on Neucron — branding, secrets, and Appstore publishing.\n\n- Create & configure apps (`app_id`, icon, domain)\n- Fetch API secrets for server integrations\n- Publish to the public Appstore catalog\n- List users who signed in through your app\n\n> Draft apps stay private; publish when ready for discovery."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/app/publish":{"post":{"tags":["Apps"],"summary":"Publish App","description":"Publish the app to the Neucron public Appstore catalog.","operationId":"apps_publish_app","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Status message."}}}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"appID","in":"query","required":true,"description":"Application ID to publish.","schema":{"type":"string"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}],"requestBody":{"required":false,"description":"Request body (`application/json`)","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}}}
```

## List Published Apps

> Browse the public Appstore catalog of published Neucron apps.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Apps","description":"An **App** is your product on Neucron — branding, secrets, and Appstore publishing.\n\n- Create & configure apps (`app_id`, icon, domain)\n- Fetch API secrets for server integrations\n- Publish to the public Appstore catalog\n- List users who signed in through your app\n\n> Draft apps stay private; publish when ready for discovery."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/app/public":{"get":{"tags":["Apps"],"summary":"List Published Apps","description":"Browse the public Appstore catalog of published Neucron apps.","operationId":"apps_list_published_apps","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"pageNumber","in":"query","required":false,"description":"Page number (default 1).","schema":{"type":"number"}},{"name":"pageSize","in":"query","required":false,"description":"Page size (default 20).","schema":{"type":"number"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```

## List App Users

> List users who have signed in through a specific app.

```json
{"openapi":"3.0.3","info":{"title":"Neucron API Documentation","version":"1.0.0"},"tags":[{"name":"Apps","description":"An **App** is your product on Neucron — branding, secrets, and Appstore publishing.\n\n- Create & configure apps (`app_id`, icon, domain)\n- Fetch API secrets for server integrations\n- Publish to the public Appstore catalog\n- List users who signed in through your app\n\n> Draft apps stay private; publish when ready for discovery."}],"servers":[{"url":"https://dev.neucron.io","description":"Development"},{"url":"https://api.neucron.io","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from `POST /auth/login` or `POST /auth/signup`. Also send header `X-Identifier: NEUCRON`. For business APIs, include `X-Neucron-Business-ID`."}}},"paths":{"/app/user-list":{"get":{"tags":["Apps"],"summary":"List App Users","description":"List users who have signed in through a specific app.","operationId":"apps_list_app_users","responses":{"200":{"description":"200 OK — Request completed successfully.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}},"400":{"description":"400 Bad Request — Invalid or missing parameters."},"401":{"description":"401 Unauthorized — Missing or invalid authentication."},"403":{"description":"403 Forbidden — Insufficient permissions."},"404":{"description":"404 Not Found — Resource does not exist."},"409":{"description":"409 Conflict — Resource conflict (e.g. duplicate)."},"500":{"description":"500 Internal Server Error — Server-side failure."}},"parameters":[{"name":"appID","in":"query","required":true,"description":"Application ID.","schema":{"type":"string"}},{"name":"pageNumber","in":"query","required":false,"description":"Page number.","schema":{"type":"number"}},{"name":"pageSize","in":"query","required":false,"description":"Page size.","schema":{"type":"number"}},{"name":"X-Identifier","in":"header","required":true,"description":"Platform identifier. Use `NEUCRON`.","schema":{"type":"string"}},{"name":"X-Neucron-Business-ID","in":"header","required":false,"description":"Active business context. Required for business-scoped operations.","schema":{"type":"string"}}]}}}}
```
