Creating a post with an image works in the same way as creating a text post, with the addition of the `assets` argument. `assets` is an ordered list where each entry specifies exactly one of `image`, `video`, `document`, or `link` — for an image post, pass an `image` entry with the URL you want to attach.

> The `url` must point to a publicly accessible file. See [Hosting Media](https://developers.buffer.com/guides/hosting-media.md) for suggested hosts and how to verify a URL works.

```graphql
mutation CreatePost {
  createPost(
    input: {
      text: "Hello there, this is another one!"
      channelId: "some_channel_id"
      schedulingType: automatic
      mode: addToQueue
      assets: [
        {
          image: {
            url: "https://images.unsplash.com/photo-1742850541164-8eb59ecb3282?q=80&w=3388&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
          }
        }
      ]
    }
  ) {
    ... on PostActionSuccess {
      post {
        id
        text
        assets {
          id
          mimeType
        }
      }
    }
    ... on MutationError {
      message
    }
  }
}
```
