# Update image metadata

Replace the metadata for an existing image.

## PUT

/accounts/{accountID}/images/{imageID}/metadata

### Ask

```shell
curl -X PUT "https://api.moov.io/accounts/{accountID}/images/{imageID}/metadata" \
  -H "Authorization: Bearer {token}" \
  -H "X-Moov-Version: v2026.07.00"
```

### Ask

```typescript
import { Moov } from "@moovio/sdk";

const moov = new Moov({
  security: {
    username: "",
    password: "",
  },
});

async function run() {
  const result = await moov.images.updateMetadata({
    accountID: "58c3c937-e648-49c5-88be-6225cca35af1",
    imageID: "d957e703-ecd4-48ac-9c14-c0ecf1b496f0",
    imageMetadataRequest: {},
  });

console.log(result);
}

run();
```

### Ask

```php
declare(strict_types=1);

require 'vendor/autoload.php';

use Moov\MoovPhp;
use Moov\MoovPhp\Models\Components;

$sdk = MoovPhp\Moov::builder()
    ->setSecurity(
        new Components\Security(
            username: '',
            password: '',
        )
    )
    ->build();

$imageMetadataRequest = new Components\ImageMetadataRequest();

$response = $sdk->images->updateMetadata(
    accountID: '58c3c937-e648-49c5-88be-6225cca35af1',
    imageID: 'd957e703-ecd4-48ac-9c14-c0ecf1b496f0',
    imageMetadataRequest: $imageMetadataRequest
);

if ($response->imageMetadata !== null) {
    // handle response
}
```

### Ask

```java
package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.ImageMetadataRequest;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.errors.ImageMetadataValidationError;
import io.moov.sdk.models.operations.UpdateImageMetadataResponse;
import java.lang.Exception;

public class Application {

public static void main(String[] args) throws GenericError, ImageMetadataValidationError, Exception {

Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

UpdateImageMetadataResponse res = sdk.images().updateMetadata()
                .accountID("58c3c937-e648-49c5-88be-6225cca35af1")
                .imageID("d957e703-ecd4-48ac-9c14-c0ecf1b496f0")
                .imageMetadataRequest(ImageMetadataRequest.builder()
                    .build())
                .call();

if (res.imageMetadata().isPresent()) {
            System.out.println(res.imageMetadata().get());
        }
    }
}
```

### Ask

```python
from moovio_sdk import Moov
from moovio_sdk.models import components

with Moov(
    security=components.Security(
        username="",
        password="",
    ),
) as moov:

res = moov.images.update_metadata(account_id="58c3c937-e648-49c5-88be-6225cca35af1", image_id="d957e703-ecd4-48ac-9c14-c0ecf1b496f0")

# Handle response
    print(res)
```

### Ask

```ruby
require 'moov_ruby'

Models = ::Moov::Models
s = ::Moov::Client.new(
  security: Models::Components::Security.new(
    username: '',
    password: ''
  )
)
res = s.images.update_metadata(account_id: '58c3c937-e648-49c5-88be-6225cca35af1', image_id: 'd957e703-ecd4-48ac-9c14-c0ecf1b496f0', image_metadata_request: Models::Components::ImageMetadataRequest.new)

unless res.image_metadata.nil?
  # handle response
end
```

### Ask

```csharp
using Moov.Sdk;
using Moov.Sdk.Models.Components;

var sdk = new MoovClient(security: new Security() {
    Username = "",
    Password = "",
});

var res = await sdk.Images.UpdateMetadataAsync(
    accountID: "58c3c937-e648-49c5-88be-6225cca35af1",
    imageID: "d957e703-ecd4-48ac-9c14-c0ecf1b496f0",
    body: new ImageMetadataRequest() {}
);

// handle response
```

## The request completed successfully.

### Example

Metadata about an uploaded image.

```json
{
  "imageID": "string",
  "publicID": "string",
  "altText": "string",
  "link": "https://api.moov.io/images/qJRAaAwwF5hmfeAFdHjIb",
  "createdOn": "2019-08-24T14:15:22Z",
  "updatedOn": "2019-08-24T14:15:22Z",
  "disabledOn": "2019-08-24T14:15:22Z"
}
```

### Response headers

A unique identifier used to trace requests.

The server could not understand the request due to invalid syntax.

### Ask

Example

```json
{
  "error": "string"
}
```

### Response headers

A unique identifier used to trace requests.

The request contained missing or expired authentication.

### Response headers

A unique identifier used to trace requests.

The user is not authorized to make the request.

### Response headers

A unique identifier used to trace requests.

The requested resource was not found.

### Response headers

A unique identifier used to trace requests.

The request conflicted with the current state of the target resource.

### Ask

Example

```json
{
  "error": "string"
}
```

### Response headers

A unique identifier used to trace requests.

The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.

### Ask

Example

```json
{
  "altText": "string"
}
```

### Response headers

A unique identifier used to trace requests.

Request was refused due to rate limiting.

### Response headers

A unique identifier used to trace requests.

The request failed due to an unexpected error.

### Response headers

A unique identifier used to trace requests.

The request failed because a downstream service failed to respond.

### Response headers

A unique identifier used to trace requests.

### Set this header to v2026.07.00 to use the API described in this specification. When omitted, the server defaults to v2024.01.00, which may not match the behavior documented here.

### Possible values:

`v2026.07.00`

### Request body for creating or updating image metadata.

Alternative text for the image.

Metadata about an uploaded image.

Unique identifier for a image resource.

A public URL to access the image. An optional `size={width}x{height}` query parameter can be provided to resize the image.

The ID used to get an image with the public endpoint.

A unique identifier for an image, used in public image links.

Alternative text for the image.
