> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.partnerpage.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.partnerpage.io/_mcp/server.

# Update an app entry

PATCH https://v1.api.partnerpage.io/api/directory/private/v1alpha/directories/{directoryId}/entries/apps/{entryId}/
Content-Type: application/json

Update app entry

Reference: https://docs.partnerpage.io/api-reference/entry/app-entry/update-an-app-entry

## Authentication

- `Authorization` header (required) (prefixed with ` Token   `) — Your API key, sent as `Authorization: Token <your API key>`

## Request

### Path parameters

- `directoryId` (string, required) — id of the directory
- `entryId` (string, required) — id of the App entry

### Body (application/json)

This endpoint expects a PatchedAppEntrySerializerWriterRequest.

- `title` (string, optional)
- `headline` (string, optional)
- `description` (string, optional, nullable)
- `icon` (string, optional, nullable)
- `image` (string, optional, nullable)
- `iconUrl` (string, optional, nullable)
- `imageUrl` (string, optional, nullable)
- `featured` (boolean, optional, default: false)
- `website` (string, optional, nullable)
- `status` (enum, optional) — * `hidden` - hidden * `inactive` - inactive * `public` - public * `searchable` - searchable
  - Allowed values: `hidden`, `inactive`, `public`, `searchable`
- `customSlug` (PatchedAppEntrySerializerWriterRequestCustomSlug, optional, nullable)
- `userAssignedFilterOptions` (list of string, optional)
- `tier` (string, optional)

## Response

### 200

Successful operation

- `href` (string, required)
- `id` (string, required)
- `title` (string, required)
- `headline` (string, required, nullable)
- `type` (string, required)
- `slug` (string, required)
- `customSlug` (string, required, nullable)
- `status` (enum, required) — * `hidden` - hidden * `inactive` - inactive * `public` - public * `searchable` - searchable
  - Allowed values: `hidden`, `inactive`, `public`, `searchable`
- `icon` (string, required, nullable)
- `image` (string, required, nullable)
- `iconDark` (string, required, nullable)
- `imageDark` (string, required, nullable)
- `website` (string, required, nullable)
- `featured` (boolean, required)
- `owner` (map from string to any, required, nullable)
- `userAssignedFilterOptions` (string, required)
- `systemAssignedFilterOptions` (string, required)
- `mappedAssignedFilterOptions` (string, required)
- `tier` (TierSerializerReader, required, nullable)
- `lastModified` (LastModified, optional, nullable) — Serializer for last_modified info including timestamp and user details.
- `description` (string, optional, nullable)
- `iconUrl` (string, optional, nullable)
- `imageUrl` (string, optional, nullable)
- `callouts` (list of AppAssignedCalloutSerializerReader, optional)

## Errors

### 404 Not Found Error

- `map from string to any`

## Types

### PatchedAppEntrySerializerWriterRequestCustomSlug

- string
- string

### TierSerializerReader

- `title` (string, required)
- `id` (string, required)
- `entriesCount` (integer, required)
- `entriesListUrl` (string, required)
- `default` (boolean, optional, nullable)
- `image` (string, optional, nullable)
- `imageUrl` (string, optional, nullable)
- `order` (integer, optional)

### LastModified

Serializer for last_modified info including timestamp and user details.

- `modified` (string, required, nullable)
- `user` (LastModifiedUser, required, nullable) — Serializer for the user info in last_modified.

### AppAssignedCalloutSerializerReader

Assigned callout read serializer.

- `href` (string, required)
- `name` (string, required)
- `id` (string, required)
- `order` (integer, optional)
- `textColor` (string, optional, nullable)
- `backgroundColor` (string, optional, nullable)

### LastModifiedUser

Serializer for the user info in last_modified.

- `id` (string, required)
- `fullName` (string, required, nullable)
- `email` (string, required)
- `type` (string, required)

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "href": "/api/directory/private/v1alpha/directories/e2b2a65f-0972-4fb4-96bb-498a63411bb6/entries/apps/674ec7e0-5812-4514-acef-4aecf5eb5873/",
  "id": "674ec7e0-5812-4514-acef-4aecf5eb5873",
  "title": "The Best App",
  "headline": "The App headline.",
  "type": "app",
  "slug": "the-best-app",
  "customSlug": "string",
  "status": "hidden",
  "icon": "http://localhost:8002/media/directories/icons/aed130bc-9ca3-40fb-8545-3c3a92a02f8e/image.jpg",
  "image": null,
  "iconDark": null,
  "imageDark": null,
  "website": "https://the.app.website.com",
  "featured": true,
  "owner": "454a6667-02d2-4a6b-9a04-97502dd23e2e",
  "userAssignedFilterOptions": "string",
  "systemAssignedFilterOptions": "string",
  "mappedAssignedFilterOptions": "string",
  "tier": {
    "title": "string",
    "id": "string",
    "entriesCount": 1,
    "entriesListUrl": "string"
  },
  "iconUrl": "http://localhost:8002/media/directories/icons/aed130bc-9ca3-40fb-8545-3c3a92a02f8e/image.jpg",
  "imageUrl": null,
  "callouts": [
    {
      "href": "string",
      "name": "One Callout",
      "id": "68c18fe3-9450-44dd-bc57-b332c53ce069",
      "order": 0,
      "textColor": "635BFF",
      "backgroundColor": "E8E6FF"
    }
  ],
  "assignedFilterOptions": [
    {
      "filterId": "bb79b73a-923f-4bc6-8e5e-8fc326e5d789",
      "href": "/api/directory/private/v1alpha/directories/969d9b77-c063-4101-b534-63071317ddbd/filters/15cbf8e9-2758-4009-b800-6db08e9b9359/options/de1f695f-f4f1-4699-8989-246377d14aed/",
      "id": "de1f695f-f4f1-4699-8989-246377d14aed",
      "image": "https://image.domain.com/option-2.png",
      "name": "option-2",
      "order": 1,
      "slug": "option-2"
    }
  ],
  "certifications": [
    {
      "id": "b2a0414d-f05d-4f34-a2f3-990116b9cdfd",
      "quantity": 14,
      "title": "Certification 3 (order 0)"
    },
    {
      "id": "8fb8379e-7049-4bb9-95d4-a3017d235789",
      "quantity": 14,
      "title": "Certification 1 (order 1)"
    },
    {
      "id": "85929f1d-10e3-459a-8e2d-622ed16d5110",
      "quantity": 1,
      "title": "Certification 2 (order 2)"
    }
  ],
  "custom_slug": null,
  "verifications": [
    {
      "id": "5a4045d7-9dbb-49ee-9132-180665dcdc3b",
      "title": "A Verification"
    },
    {
      "id": "ada6a021-e996-4d12-85dd-1d5220f67da4",
      "title": "B Verification"
    }
  ]
}
```

**SDK Code**

```python application/json example
import requests

url = "https://v1.api.partnerpage.io/api/directory/private/v1alpha/directories/directoryId/entries/apps/entryId/"

payload = {}
headers = {
    "Authorization": "Token  <apiKey>",
    "Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.json())
```

```javascript application/json example
const url = 'https://v1.api.partnerpage.io/api/directory/private/v1alpha/directories/directoryId/entries/apps/entryId/';
const options = {
  method: 'PATCH',
  headers: {Authorization: 'Token  <apiKey>', 'Content-Type': 'application/json'},
  body: '{}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```