Eagle API Documentation
Connect to the Eagle GraphQL API using client credentials. This guide walks you through creating credentials, getting an access token, and making your first GraphQL request in three straightforward steps.
Introduction
The Eagle API gives you programmatic access to Eagle property management data — properties, contacts, appraisals, listings, and more — via a single GraphQL endpoint.
Authentication uses a simple two-step flow: exchange your client_id and
client_secret for a short-lived session token, then include that token as a
Bearer header on every GraphQL request.
How it works
Create credentials
Generate a client_id and client_secret in the Eagle app under Settings → API Credentials.
Get a token
POST to /api/v3/token with your credentials to receive a 24-hour session token.
Query the API
Send GraphQL queries/mutations to /api/v3/graphql using the token in the Authorization: Bearer header.
https://www.eagleagent.com.au — all paths below are relative to this base.
Step 1 — Create API credentials
Before you can request a token you need a client_id and client_secret pair from the Eagle application.
- Go to https://www.eagleagent.com.au/agent and sign in.
- Click Settings in the top-right corner.
- Click API Credentials in the left-hand navigation.
- Click New Credentials.
- Enter a description (e.g. My Integration) and click Create.
- Your new credentials appear in the list. Click show to reveal the client secret.
client_secret is shown once and used to request tokens — treat it like a password. Never expose it in client-side or frontend code.
Step 2 — Request a session token
POST to the token endpoint with your credentials in the Authorization header
using the format client_id:client_secret. The returned token is valid for
24 hours.
Endpoint
POST https://www.eagleagent.com.au/api/v3/token
Headers
| Header | Value | Notes |
|---|---|---|
Content-Type | application/json | Required |
Authorization | Bearer {client_id}:{client_secret} | Colon-separated credentials |
Example — cURL
curl -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer 5889796789559:230408972308020237838' \
https://www.eagleagent.com.au/api/v3/token
{
"data": {
"token": {
"token": "eyJ0eXAfKV1QiLCJhbGciOiJIUzI1NiJ9....",
"expiresAt": 1582206763
}
}
}
expiresAt is a Unix timestamp (seconds). Request a fresh token before it expires to avoid 401 Unauthorized errors.
Step 3 — Make a GraphQL request
Include the session token in every request to the GraphQL endpoint using the
Authorization: Bearer TOKEN header.
Endpoint
POST https://www.eagleagent.com.au/api/v3/graphql
Required headers
| Header | Value |
|---|---|
Content-Type | application/json |
Authorization | Bearer {session_token} |
Request body
Send a JSON body with a query field containing your GraphQL query string, and optionally a variables object.
{
"query": "query { ... }",
"variables": { "key": "value" }
}
Example — list properties
This example fetches the first page of properties with address, coordinates, and vendor details.
GraphQL query
query GetProperties {
properties {
nodes {
id
formattedAddress
latitude
longitude
vendors {
contact {
firstName
lastName
}
}
}
}
}
Full cURL request
curl -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer eyJ0eXAfKV1QiLCJhbGciOiJIUzI1NiJ9....' \
--data '{
"query": "query GetProperties { properties { nodes { id formattedAddress latitude longitude vendors { contact { firstName lastName } } } } }"
}' \
https://www.eagleagent.com.au/api/v3/graphql
Using variables (recommended)
Pass dynamic values as variables rather than inlining them in the query string.
curl -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer eyJ0eXAfKV1QiLCJhbGciOiJIUzI1NiJ9....' \
--data '{
"query": "query GetProperty($id: ID!) { property(id: $id) { id formattedAddress } }",
"variables": { "id": "42" }
}' \
https://www.eagleagent.com.au/api/v3/graphql
Example response
All GraphQL responses follow the same envelope structure: a top-level data object containing your result, and an optional errors array.
{
"data": {
"properties": {
"nodes": [
{
"id": "1",
"formattedAddress": "1366 May Locks, EUROA",
"latitude": -36.7247,
"longitude": 145.9944,
"vendors": []
},
{
"id": "3",
"formattedAddress": "4831 Konopelski Summit, EUROA",
"latitude": -36.8443,
"longitude": 145.7846,
"vendors": []
}
]
}
}
}
{
"data": null,
"errors": [
{
"message": "Not authorized to access this resource",
"locations": [{ "line": 2, "column": 3 }],
"path": ["properties"]
}
]
}
Implementation notes
- Always send requests as
POST— the GraphQL endpoint does not supportGET. - Set
Content-Type: application/jsonon every request. - Pass the session token as
Authorization: Bearer TOKEN. - Tokens expire after 24 hours (Unix timestamp in
expiresAt). Re-request a token before it expires. - Use variables instead of string interpolation to pass dynamic values into queries.
- Use the schema explorer to discover exact field names, argument types, and available operations.
- GraphQL responses can return partial data alongside errors — always check the
errorsarray even whendatais present. - Never expose
client_idorclient_secretin frontend or mobile code.
Common errors
| HTTP status | GraphQL error message | Likely cause |
|---|---|---|
401 |
Not authorized | Missing, expired, or malformed Authorization header |
200 |
Not authorized to access this resource | Token is valid but the credential doesn't have access to the requested field |
400 |
Parse error on … | Malformed GraphQL query syntax |
200 |
Field ‘X’ doesn’t exist on type ‘Y’ | Querying a field that doesn't exist in the schema — use the schema explorer to verify |
200 |
Variable $x of type T was provided invalid value | Wrong type passed as a variable (e.g. string where Int is expected) |
API reference
Useful links for further exploration and integration.
GraphQL schema explorer Browse all available queries, mutations, types, and fields interactively. https://api.eaglesoftware.com.au/v3/ GraphQL endpoint The main endpoint for all GraphQL queries and mutations. https://www.eagleagent.com.au/api/v3/graphql Token endpoint Exchange client credentials for a 24-hour session token. https://www.eagleagent.com.au/api/v3/token Partner API documentation For integration partners accessing the Eagle API via scoped, permission-based access. partner_index.html