Get images

Overview

Get the active images uploaded for an account, filtered by type. For type=partners, the response contains a non-paginated image array at data.data. For type=campaign, the response is a top-level paginated collection with data, links, and meta, so per_page only applies to campaign. Each image's path resolves to a full S3 URL.

Prerequisites

  • A bearer token. Callable with Partner and Account tokens.
  • Values for the required query parameters company_id, type — see the table below.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

GET /api/v1/account/images/get

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.

  • Who can call it: Partner and Account tokens.

  • Authentication.

  • Target company must sit inside your own account tree, keyed on company_id. The value must resolve into the authenticated user's company hierarchy.

  • A Partner can reach any company in its tree. An Account reaches only companies in its own hierarchy.

Rate limit

  • No rate limit.

Query parameters

  • Query: company_id (integer, required) — must be an existing account and belong to the auth company hierarchy.
  • Query: type (string, required) — one of partners, campaign.
  • Query: per_page (integer, optional) — defaults to 10; only honored when type=campaign (the paginated branch).

Response

  • For type=partners, data.data is an array of image objects:
  • id (integer) — image id.
  • name (string) — sanitized file name.
  • type (string) — image type (partners).
  • status (string) — active.
  • path (string|null) — full S3 URL, or null when no stored path.
  • For type=campaign, data is a top-level paginated collection. Each item has the same id/name/type/status/path shape, and the response includes standard top-level links and meta pagination keys.

200 OK (partners) · 200

{
  "data": {
    "status": "success",
    "data": [
      {
        "id": 5,
        "name": "partner_logo.png",
        "type": "partners",
        "status": "active",
        "path": "https://s3.amazonaws.com/bucket/account/images/partners/abc.png"
      }
    ]
  }
}

200 OK (campaign — paginated) · 200

{
  "data": [
    {
      "id": 8,
      "name": "campaign_banner.png",
      "type": "campaign",
      "status": "active",
      "path": "https://s3.amazonaws.com/bucket/account/images/campaign/xyz.png"
    }
  ],
  "links": {
    "first": "https://api.example.com/api/v1/account/images/get?page=1",
    "last": "https://api.example.com/api/v1/account/images/get?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 10,
    "to": 1,
    "total": 1
  }
}

422 Validation error · 422

{
  "message": "The type field is required.",
  "errors": {
    "type": ["The selected type is invalid."],
    "company_id": ["The company id field is required."]
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
422Validation error
500Unexpected server error

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/account/images/get?company_id=123&type=partners&per_page=10" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?