Pixel House API Documentation

Postman collection → OpenAPI spec →

Introduction

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {TOKEN}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

Important Authentication Information

All API requests must include the X-Api-Key header with your assigned Partner API key.

For authenticated user requests, first authenticate using the authentication endpoint. Once authenticated, include both:

  • The token returned by the authentication endpoint: Authorization: Bearer <token>
  • The X-Api-Key header

This ensures secure access to the API and proper authentication for user-specific requests.

Endpoints

GET api/v1/healthcheck

GET
https://partners.pixelhouse.com.au
/api/v1/healthcheck

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
X-Api-Key
Example:
your-api-key
Example request:
curl --request GET \
    --get "https://partners.pixelhouse.com.au/api/v1/healthcheck" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "X-Api-Key: your-api-key"
Example response:
{
    "status": "up"
}

Authenticate with User

POST
https://partners.pixelhouse.com.au
/api/v1/users/auth

Authenticate with the user and get a token to use in future requests. Always returns 200 with a token. On failure, the token encodes the error so the downstream magic-link endpoint can return an error page URL.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
X-Api-Key
Example:
your-api-key

Body Parameters

Example request:
curl --request POST \
    "https://partners.pixelhouse.com.au/api/v1/users/auth" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "X-Api-Key: your-api-key" \
    --data "{
    \"user_id\": 1,
    \"email\": \"test@example.com\"
}"
Example response:
{
    "data": {
        "token": "encrypted string"
    }
}

Combined Insights

GET
https://partners.pixelhouse.com.au
/api/v1/insights
requires authentication

Returns one combined dashboard insight summary across Introductions, Proposals, and Price Updates.

Headers

Authorization
Example:
Bearer {TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
X-Api-Key
Example:
your-api-key

Query Parameters

filter
string

Date filter. Supported values: all-time, today, last-7-days, this-month, last-60-days, last-90-days.

Example:
last-7-days
scope
string

Insight scope. Supported values: user, office.

Example:
user
aggregate_by
string

Optional aggregation. Use type to return separate summaries for introductions, proposals, and price_updates.

Example:
type
Example request:
curl --request GET \
    --get "https://partners.pixelhouse.com.au/api/v1/insights?filter=last-7-days&scope=user&aggregate_by=type" \
    --header "Authorization: Bearer {TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "X-Api-Key: your-api-key"
Example response:
{
    "data": {
        "scope": "user",
        "filter": "last-7-days",
        "total": 19,
        "published": 12,
        "viewed": 5,
        "accepted": 1,
        "draft": 3,
        "unpublished": 2,
        "archived": 0,
        "total_views": 38
    }
}

Insights by Type

GET
https://partners.pixelhouse.com.au
/api/v1/insights/{type}
requires authentication

Returns one dashboard insight summary filtered to Introductions, Proposals, or Price Updates.

Headers

Authorization
Example:
Bearer {TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
X-Api-Key
Example:
your-api-key

URL Parameters

type
string
required

Insight type. Supported values: introductions, proposals, price-updates.

Example:
proposals

Query Parameters

filter
string

Date filter. Supported values: all-time, today, last-7-days, this-month, last-60-days, last-90-days.

Example:
last-7-days
scope
string

Insight scope. Supported values: user, office.

Example:
user
Example request:
curl --request GET \
    --get "https://partners.pixelhouse.com.au/api/v1/insights/proposals?filter=last-7-days&scope=user" \
    --header "Authorization: Bearer {TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "X-Api-Key: your-api-key"
Example response:
{
    "data": {
        "type": "proposal",
        "scope": "user",
        "filter": "last-7-days",
        "total": 12,
        "published": 8,
        "viewed": 3,
        "accepted": 1,
        "draft": 2,
        "unpublished": 1,
        "archived": 0,
        "total_views": 24
    }
}
POST
https://partners.pixelhouse.com.au
/api/v1/prospects/magic-link
requires authentication

This endpoint lets you generate a magic link to redirect your user to create a prospect against a property

Headers

Authorization
Example:
Bearer {TOKEN}
Content-Type
Example:
application/json
Accept
Example:
application/json
X-Api-Key
Example:
your-api-key

Body Parameters

Example request:
curl --request POST \
    "https://partners.pixelhouse.com.au/api/v1/prospects/magic-link" \
    --header "Authorization: Bearer {TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "X-Api-Key: your-api-key" \
    --data "{
    \"type\": \"price_update\",
    \"property_id\": 123,
    \"classification\": \"residential_sale\"
}"
Example response: