> For the complete documentation index, see [llms.txt](https://howto.indexify.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://howto.indexify.finance/indexify-api-documentation/account.md).

# Account

## Fetch authenticated user profile

> Returns the full profile for the currently authenticated user including roles, wallet address, and masked phone number.<br>

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/user_info.php?action=fetch":{"post":{"operationId":"userInfoFetch","summary":"Fetch authenticated user profile","description":"Returns the full profile for the currently authenticated user including roles, wallet address, and masked phone number.\n","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["fetch"]}}],"responses":{"200":{"description":"Full user profile.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"username":{"type":"string"},"email":{"type":"string"},"avatar":{"type":"string","nullable":true},"bio":{"type":"string","nullable":true},"slippage":{"type":"string"},"priority_fee":{"type":"string"},"phone_verified":{"type":"boolean"},"phone_number_last_2":{"type":"string","nullable":true,"description":"Last two digits of the phone number."},"twitter":{"type":"string","nullable":true},"telegram":{"type":"string","nullable":true},"discord":{"type":"string","nullable":true},"linkedin":{"type":"string","nullable":true},"personal":{"type":"string","nullable":true},"wallet_address":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"roles":{"type":"array","items":{"type":"string"}}}}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"User not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/user\_info.php?action=update

> Update user profile fields

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/user_info.php?action=update":{"post":{"operationId":"userInfoUpdate","summary":"Update user profile fields","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["update"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":3,"maxLength":30,"description":"Alphanumeric + underscores only."},"bio":{"type":"string","description":"Free-text bio. Send empty string to clear."},"slippage":{"type":"string","description":"Slippage tolerance as a decimal string."},"priority_fee":{"type":"string","description":"Priority fee in SOL (0 to 0.002)."}}}}}},"responses":{"200":{"description":"Update succeeded.","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"},"updates":{"type":"object","additionalProperties":true,"description":"Map of updated field names to their new values."}}}}}},"400":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/user\_info.php?action=check\_name

> Check username availability

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[],"paths":{"/api/user_info.php?action=check_name":{"post":{"operationId":"userInfoCheckName","summary":"Check username availability","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["check_name"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}}}},"responses":{"200":{"description":"Username status.","content":{"application/json":{"schema":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["OK","TAKEN","INVALID"]}}}}}}}}}}}
```

## POST /api/user\_info.php?action=search

> Search users by username or bio

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[],"paths":{"/api/user_info.php?action=search":{"post":{"operationId":"userInfoSearch","summary":"Search users by username or bio","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["search"]}},{"name":"query","in":"query","required":true,"schema":{"type":"string"},"description":"Search term matched against username and bio."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"maximum":100}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0}},{"name":"include_stats","in":"query","required":false,"schema":{"type":"string","enum":["true","false"],"default":"false"},"description":"When \"true\", each user object includes a `stats` sub-object."}],"responses":{"200":{"description":"Matching users with pagination metadata.","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"type":"object","properties":{"username":{"type":"string"},"avatar":{"type":"string"},"display_name":{"type":"string","nullable":true},"verified":{"type":"boolean"},"stats":{"type":"object","description":"Present only when `include_stats=true`.","additionalProperties":true}}}},"pagination":{"type":"object","properties":{"total_count":{"type":"integer"},"has_next":{"type":"boolean"},"offset":{"type":"integer"},"limit":{"type":"integer"}}}}}}}}}}}}}
```

## Delete the authenticated user's account

> Permanently deletes the user account after 2FA verification.  All stacks are archived, follow relationships removed, and the wallet private key is returned one final time.<br>

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/user_info.php?action=delete_account":{"post":{"operationId":"userInfoDeleteAccount","summary":"Delete the authenticated user's account","description":"Permanently deletes the user account after 2FA verification.  All stacks are archived, follow relationships removed, and the wallet private key is returned one final time.\n","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["delete_account"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["verification_code"],"properties":{"verification_code":{"type":"string","description":"2FA verification code."}}}}}},"responses":{"200":{"description":"Account deleted successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"private_key":{"type":"string","description":"Wallet private key returned for final export."},"retry_count":{"type":"integer"},"deletion_summary":{"type":"object","properties":{"user_id":{"type":"integer"},"archived_stacks":{"type":"integer"},"follow_relationships_removed":{"type":"integer"}}}}}}}},"400":{"description":"Validation error (2FA required, code required, invalid code, remaining balance).\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/profile.php?action=twitter

> Update Twitter handle

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/profile.php?action=twitter":{"post":{"operationId":"profileUpdateTwitter","summary":"Update Twitter handle","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["twitter"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Twitter/X username (1-15 chars, alphanumeric + underscores). Send empty string or null to remove.\n"}}}}}},"responses":{"200":{"description":"Handle updated or removed.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"]},"message":{"type":"string"}}}}}},"400":{"description":"Validation error.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"message":{"type":"string"}}}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/profile.php?action=telegram

> Update Telegram handle

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/profile.php?action=telegram":{"post":{"operationId":"profileUpdateTelegram","summary":"Update Telegram handle","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["telegram"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Telegram username (1-100 chars, alphanumeric + underscores). Send empty string or null to remove.\n"}}}}}},"responses":{"200":{"description":"Handle updated or removed.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"]},"message":{"type":"string"}}}}}},"400":{"description":"Validation error.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"message":{"type":"string"}}}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/profile.php?action=discord

> Update Discord username

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/profile.php?action=discord":{"post":{"operationId":"profileUpdateDiscord","summary":"Update Discord username","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["discord"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Discord username (2-32 chars, lowercase alphanumeric + underscore + period, no consecutive periods) or legacy format (User#1234).  Send empty string or null to remove.\n"}}}}}},"responses":{"200":{"description":"Username updated or removed.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"]},"message":{"type":"string"}}}}}},"400":{"description":"Validation error.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"message":{"type":"string"}}}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/profile.php?action=linkedin

> Update LinkedIn profile URL

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/profile.php?action=linkedin":{"post":{"operationId":"profileUpdateLinkedin","summary":"Update LinkedIn profile URL","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["linkedin"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Full LinkedIn profile URL starting with `https://www.linkedin.com/in/` or `https://linkedin.com/in/`. Send empty string or null to remove.\n"}}}}}},"responses":{"200":{"description":"Profile URL updated or removed.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"]},"message":{"type":"string"}}}}}},"400":{"description":"Validation error.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"message":{"type":"string"}}}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/profile.php?action=personal

> Update personal website URL

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/profile.php?action=personal":{"post":{"operationId":"profileUpdatePersonal","summary":"Update personal website URL","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["personal"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Any valid URL.  Send empty string or null to remove.\n"}}}}}},"responses":{"200":{"description":"Website URL updated or removed.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"]},"message":{"type":"string"}}}}}},"400":{"description":"Validation error.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"message":{"type":"string"}}}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/notifications.php?action=get\_notifications

> Get paginated notifications

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/notifications.php?action=get_notifications":{"post":{"operationId":"notificationsGet","summary":"Get paginated notifications","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["get_notifications"]}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"integer","default":1,"minimum":1},"limit":{"type":"integer","default":20,"minimum":1,"maximum":100},"auto_cleanup":{"type":"boolean","default":false,"description":"When true, old notifications are automatically purged."}}}}}},"responses":{"200":{"description":"Paginated notifications list.","content":{"application/json":{"schema":{"type":"object","properties":{"notifications":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"origin":{"type":"string","enum":["stack_follow","price_movement","transaction_deposit","transaction_withdrawal","transaction_buy","transaction_sell","creator_fee_received","creator_note","trending_stack","stack_closed"]},"type":{"type":"string","enum":["transaction","system","social","trading","achievement","stack","general"]},"content":{"type":"string"},"read":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"metadata":{"type":"object","additionalProperties":true}}}},"pagination":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}}}}}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/notifications.php?action=get\_unread\_count

> Get unread notification count

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/notifications.php?action=get_unread_count":{"post":{"operationId":"notificationsUnreadCount","summary":"Get unread notification count","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["get_unread_count"]}}],"responses":{"200":{"description":"Unread count.","content":{"application/json":{"schema":{"type":"object","required":["unread_count"],"properties":{"unread_count":{"type":"integer"}}}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/notifications.php?action=mark\_read

> Mark a single notification as read

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"SuccessMessage":{"type":"object","required":["success","message"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/notifications.php?action=mark_read":{"post":{"operationId":"notificationsMarkRead","summary":"Mark a single notification as read","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["mark_read"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["notification_id"],"properties":{"notification_id":{"type":"integer"}}}}}},"responses":{"200":{"description":"Notification marked as read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessMessage"}}}},"400":{"description":"Missing or invalid notification_id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Notification not found or does not belong to user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/notifications.php?action=dismiss\_all

> Dismiss all notifications

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"SuccessMessage":{"type":"object","required":["success","message"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/notifications.php?action=dismiss_all":{"post":{"operationId":"notificationsDismissAll","summary":"Dismiss all notifications","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["dismiss_all"]}}],"responses":{"200":{"description":"All notifications dismissed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessMessage"}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/notifications.php?action=delete

> Delete a single notification

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"SuccessMessage":{"type":"object","required":["success","message"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/notifications.php?action=delete":{"post":{"operationId":"notificationsDelete","summary":"Delete a single notification","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["delete"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["notification_id"],"properties":{"notification_id":{"type":"integer"}}}}}},"responses":{"200":{"description":"Notification deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessMessage"}}}},"400":{"description":"Missing or invalid notification_id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Notification not found or does not belong to user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/notifications.php?action=delete\_all

> Delete all notifications

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"SuccessMessage":{"type":"object","required":["success","message"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/notifications.php?action=delete_all":{"post":{"operationId":"notificationsDeleteAll","summary":"Delete all notifications","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["delete_all"]}}],"responses":{"200":{"description":"All notifications deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessMessage"}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/notification\_preferences.php?action=get

> Get notification preferences

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/notification_preferences.php?action=get":{"post":{"operationId":"notificationPreferencesGet","summary":"Get notification preferences","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["get"]}}],"responses":{"200":{"description":"List of notification type preferences.","content":{"application/json":{"schema":{"type":"object","required":["preferences"],"properties":{"preferences":{"type":"array","items":{"type":"object","required":["notification_type","enabled"],"properties":{"notification_type":{"type":"string","enum":["stack_follow","price_movement","transaction","creator_fee","creator_note","trending_stack","stack_closed"]},"enabled":{"type":"boolean"}}}}}}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/notification\_preferences.php?action=update

> Update a single notification preference

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"SuccessMessage":{"type":"object","required":["success","message"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/notification_preferences.php?action=update":{"post":{"operationId":"notificationPreferencesUpdate","summary":"Update a single notification preference","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["update"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["notification_type","enabled"],"properties":{"notification_type":{"type":"string","enum":["stack_follow","price_movement","transaction","creator_fee","creator_note","trending_stack","stack_closed"]},"enabled":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Preference updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessMessage"}}}},"400":{"description":"Missing required fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /api/notification\_preferences.php?action=update\_bulk

> Update multiple notification preferences at once

```json
{"openapi":"3.0.3","info":{"title":"Indexify API","version":"0.1.12-beta"},"servers":[{"url":"https://api.indexify.finance","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"API key with the `ix_` prefix. You can generate an API Key by navigating to Settings -> API Key in the web app. Pass it in the `X-API-KEY` header on every request."}},"schemas":{"SuccessMessage":{"type":"object","required":["success","message"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}},"paths":{"/api/notification_preferences.php?action=update_bulk":{"post":{"operationId":"notificationPreferencesUpdateBulk","summary":"Update multiple notification preferences at once","tags":["Account"],"parameters":[{"name":"action","in":"query","required":true,"schema":{"type":"string","enum":["update_bulk"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["preferences"],"properties":{"preferences":{"type":"array","minItems":1,"items":{"type":"object","required":["notification_type","enabled"],"properties":{"notification_type":{"type":"string","enum":["stack_follow","price_movement","transaction","creator_fee","creator_note","trending_stack","stack_closed"]},"enabled":{"type":"boolean"}}}}}}}}},"responses":{"200":{"description":"All preferences updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessMessage"}}}},"400":{"description":"Missing or empty preferences array.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Not authenticated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://howto.indexify.finance/indexify-api-documentation/account.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
