Skip to content
Docs

API reference

Organizations

Create and manage your customer organizations, their status and default plans, and your own white-label branding.

Organizations form a tree: HoundSat, then resellers, then their customers. As a reseller you create customer organizations under your own, and each customer gets its own users, devices and webhook endpoints.

The organization object

A reseller or customer organization. Branding fields are set on resellers only.

Attributes

  • iduuidRequired

    Unique identifier.

  • brand_company_namestring· nullable
  • brand_logo_urlstring· nullable
  • brand_primary_colorstring· nullable

    Hex color, #RRGGBB.

  • children_countinteger· nullable

    Number of child organizations (customers of a reseller, resellers of the platform).

  • default_plan_iduuid· nullable
  • inserted_attimestampRequired
  • levelenumRequired

    platform | reseller | customer. Derived at creation, immutable.

    One ofplatformresellercustomer

  • namestringRequired
  • parent_iduuid· nullable
  • statusenumRequired

    One ofactivesuspended

  • support_emailstring· nullable
  • suspended_by_levelenum· nullable

    Who suspended the organization: platform (a platform user or the system) or reseller; null while active. Set by set_status.

    One ofplatformreseller

  • updated_attimestampRequired
  • users_countinteger· nullable

    Number of users in the organization (any status).

The organization object
{
  "type": "organization",
  "id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
  "attributes": {
    "brand_company_name": "Acme Connect",
    "brand_logo_url": "https://acme.example/logo.png",
    "brand_primary_color": "#3B47E0",
    "children_count": 3,
    "default_plan_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
    "inserted_at": "2026-10-12T14:03:21Z",
    "level": "platform",
    "name": "Northwind Freight",
    "parent_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
    "status": "active",
    "support_email": "help@acme.example",
    "suspended_by_level": null,
    "updated_at": "2026-10-12T14:03:21Z",
    "users_count": 3
  }
}

Endpoints

List organizations

get/api/json/organizations

Your own organization and every organization below it: for a reseller, itself and its customers. Paginated, 50 per page by default.

Who
Resellers and Customers
Roles
Owner, Admin, Staff

Query parameters

  • filter[<field>]object

    Narrows the list: filter[status]=active, or with an operator: filter[inserted_at][greater_than_or_equal]=2026-10-01T00:00:00Z. Operators: in, is_nil, greater_than, greater_than_or_equal, less_than, less_than_or_equal.

    One ofbrand_company_namebrand_logo_urlbrand_primary_colorchildren_countdefault_plan_ididinserted_atlevelnameparent_idstatussupport_emailsuspended_by_levelupdated_atusers_count

  • sortstring

    A field to sort by; prefix it with - for descending, e.g. sort=-inserted_at. Separate several with commas.

  • page[limit]integer

    Page size: 50 by default, at most 200.

  • page[after]string

    The cursor from links.next of the previous page. page[offset] works too.

  • page[count]boolean

    true adds the total number of matches in meta.page.total.

Request
curl https://api.houndsat.com/api/json/organizations \
  -H "Authorization: Bearer $HOUNDSAT_TOKEN"
Response200 OK
{
  "data": [
    {
      "type": "organization",
      "id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
      "attributes": {
        "brand_company_name": "Acme Connect",
        "brand_logo_url": "https://acme.example/logo.png",
        "brand_primary_color": "#3B47E0",
        "children_count": 3,
        "default_plan_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
        "inserted_at": "2026-10-12T14:03:21Z",
        "level": "platform",
        "name": "Northwind Freight",
        "parent_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
        "status": "active",
        "support_email": "help@acme.example",
        "suspended_by_level": null,
        "updated_at": "2026-10-12T14:03:21Z",
        "users_count": 3
      }
    }
  ],
  "links": {
    "next": "/api/json/organizations?page[after]=g2wAAAABbQAAACQ1ZjBj…"
  }
}

Get an organization

get/api/json/organizations/{id}

One organization in your scope. Anything outside it answers 404.

Who
Resellers and Customers
Roles
Owner, Admin, Staff

Path parameters

  • iduuidRequired

    The record's id.

Request
curl https://api.houndsat.com/api/json/organizations/5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8 \
  -H "Authorization: Bearer $HOUNDSAT_TOKEN"
Response200 OK
{
  "data": {
    "type": "organization",
    "id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
    "attributes": {
      "brand_company_name": "Acme Connect",
      "brand_logo_url": "https://acme.example/logo.png",
      "brand_primary_color": "#3B47E0",
      "children_count": 3,
      "default_plan_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
      "inserted_at": "2026-10-12T14:03:21Z",
      "level": "platform",
      "name": "Northwind Freight",
      "parent_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
      "status": "active",
      "support_email": "help@acme.example",
      "suspended_by_level": null,
      "updated_at": "2026-10-12T14:03:21Z",
      "users_count": 3
    }
  }
}

Create a customer

post/api/json/organizations

Creates a customer organization under your reseller. Invite its first user, who must be its Owner, with Invite a user.

Who
Resellers
Roles
Owner, Admin
  • parent_id defaults to your own organization; leave it out.

Attributes

Sent as data.attributes.

  • namestringRequired
  • parent_iduuid· nullable
Request
curl -X POST https://api.houndsat.com/api/json/organizations \
  -H "Authorization: Bearer $HOUNDSAT_TOKEN" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{"data":{"type":"organization","attributes":{"name":"Northwind Freight"}}}'
Response201 Created
{
  "data": {
    "type": "organization",
    "id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
    "attributes": {
      "brand_company_name": "Acme Connect",
      "brand_logo_url": "https://acme.example/logo.png",
      "brand_primary_color": "#3B47E0",
      "children_count": 3,
      "default_plan_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
      "inserted_at": "2026-10-12T14:03:21Z",
      "level": "platform",
      "name": "Northwind Freight",
      "parent_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
      "status": "active",
      "support_email": "help@acme.example",
      "suspended_by_level": null,
      "updated_at": "2026-10-12T14:03:21Z",
      "users_count": 3
    }
  }
}

Rename an organization

patch/api/json/organizations/{id}

Renames your organization or one of your customers.

Who
Resellers and Customers
Roles
Owner, Admin

Path parameters

  • iduuidRequired

    The record's id.

Attributes

Sent as data.attributes.

  • namestring· nullable
Request
curl -X PATCH https://api.houndsat.com/api/json/organizations/5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8 \
  -H "Authorization: Bearer $HOUNDSAT_TOKEN" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{"data":{"type":"organization","id":"5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8","attributes":{"name":"Northwind Freight"}}}'
Response200 OK
{
  "data": {
    "type": "organization",
    "id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
    "attributes": {
      "brand_company_name": "Acme Connect",
      "brand_logo_url": "https://acme.example/logo.png",
      "brand_primary_color": "#3B47E0",
      "children_count": 3,
      "default_plan_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
      "inserted_at": "2026-10-12T14:03:21Z",
      "level": "platform",
      "name": "Northwind Freight",
      "parent_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
      "status": "active",
      "support_email": "help@acme.example",
      "suspended_by_level": null,
      "updated_at": "2026-10-12T14:03:21Z",
      "users_count": 3
    }
  }
}

Update your branding

patch/api/json/organizations/{id}/branding

Sets the company name, logo, primary color and support email your customers see in their portal and emails.

Who
Resellers
Roles
Owner, Admin
  • brand_logo_url must be an https:// URL. brand_primary_color is a six-digit hex color (#RRGGBB).

Path parameters

  • iduuidRequired

    The record's id.

Attributes

Sent as data.attributes.

  • brand_company_namestring· nullable
  • brand_logo_urlstring· nullable
  • brand_primary_colorstring· nullable

    Hex color, #RRGGBB.

  • support_emailstring· nullable
Request
curl -X PATCH https://api.houndsat.com/api/json/organizations/5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8/branding \
  -H "Authorization: Bearer $HOUNDSAT_TOKEN" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{"data":{"type":"organization","id":"5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8","attributes":{"brand_company_name":"Acme Connect","brand_logo_url":"https://acme.example/logo.png","brand_primary_color":"#3B47E0","support_email":"help@acme.example"}}}'
Response200 OK
{
  "data": {
    "type": "organization",
    "id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
    "attributes": {
      "brand_company_name": "Acme Connect",
      "brand_logo_url": "https://acme.example/logo.png",
      "brand_primary_color": "#3B47E0",
      "children_count": 3,
      "default_plan_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
      "inserted_at": "2026-10-12T14:03:21Z",
      "level": "platform",
      "name": "Northwind Freight",
      "parent_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
      "status": "active",
      "support_email": "help@acme.example",
      "suspended_by_level": null,
      "updated_at": "2026-10-12T14:03:21Z",
      "users_count": 3
    }
  }
}

Suspend or reactivate a customer

patch/api/json/organizations/{id}/status

Suspends a customer (its users can no longer sign in, and its devices can't be activated or assigned) or reactivates it.

Who
Resellers
Roles
Owner, Admin
  • Suspending, deactivating and unassigning devices still work while a customer is suspended, so a fleet can be wound down.

Path parameters

  • iduuidRequired

    The record's id.

Attributes

Sent as data.attributes.

  • statusenum· nullable

    One ofactivesuspended

Request
curl -X PATCH https://api.houndsat.com/api/json/organizations/5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8/status \
  -H "Authorization: Bearer $HOUNDSAT_TOKEN" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{"data":{"type":"organization","id":"5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8","attributes":{"status":"active"}}}'
Response200 OK
{
  "data": {
    "type": "organization",
    "id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
    "attributes": {
      "brand_company_name": "Acme Connect",
      "brand_logo_url": "https://acme.example/logo.png",
      "brand_primary_color": "#3B47E0",
      "children_count": 3,
      "default_plan_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
      "inserted_at": "2026-10-12T14:03:21Z",
      "level": "platform",
      "name": "Northwind Freight",
      "parent_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
      "status": "active",
      "support_email": "help@acme.example",
      "suspended_by_level": null,
      "updated_at": "2026-10-12T14:03:21Z",
      "users_count": 3
    }
  }
}

Set a customer's default plan

patch/api/json/organizations/{id}/default_plan

Sets the retail plan billed for the customer's devices that have no plan of their own, or clears it with plan_id: null.

Who
Resellers
Roles
Owner, Admin
  • The plan must be one of your active retail plans.

Path parameters

  • iduuidRequired

    The record's id.

Attributes

Sent as data.attributes.

  • plan_iduuid· nullable

    The retail plan; null removes the default plan.

Request
curl -X PATCH https://api.houndsat.com/api/json/organizations/5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8/default_plan \
  -H "Authorization: Bearer $HOUNDSAT_TOKEN" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{"data":{"type":"organization","id":"5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8","attributes":{"plan_id":"9b2e4f61-7c3a-4d05-a8e9-3f1c6b0d5a72"}}}'
Response200 OK
{
  "data": {
    "type": "organization",
    "id": "5f0c2b7e-8d41-4a96-b3e2-91c7d0a4e6f8",
    "attributes": {
      "brand_company_name": "Acme Connect",
      "brand_logo_url": "https://acme.example/logo.png",
      "brand_primary_color": "#3B47E0",
      "children_count": 3,
      "default_plan_id": "0b6d4e2a-1c9f-4a3b-8e5d-7f2c0a9b6d13",
      "inserted_at": "2026-10-12T14:03:21Z",
      "level": "platform",
      "name": "Northwind Freight",
      "parent_id": "a7d35c90-2e14-4f6b-8c03-5b9e1d4a2f67",
      "status": "active",
      "support_email": "help@acme.example",
      "suspended_by_level": null,
      "updated_at": "2026-10-12T14:03:21Z",
      "users_count": 3
    }
  }
}