Gå til hovedinnhold
Beta! This documentation is automatically generated. Information may be incomplete or contain errors, especially screenshots and code samples. We'd love your feedback: use the "Did you find what you were looking for?" widget below, the chat in the bottom right, or email support@placepoint.no - we'll get back to you as soon as we can.

Authentication

The Placepoint API uses OAuth2 client credentials (RFC 6749, Section 4.4). Your server exchanges a client ID and secret for a short-lived access token, then sends that token as a bearer token on every call.

Getting a trial key

Sign in with GitHub on any docs.placepoint.no/api page for a trial key in under a minute, no payment card. It works today against the Leietaker-API and the current Data API, and the Placepoint API accepts the same key at launch.

Production credentials, a ppk_live_ client id and secret, come from Placepoint. Sandbox credentials are ppk_test_, valid against the same host, data.placepoint.no, restricted to the demo properties on Sandbox.

Requesting a token

Send a POST to /auth/token, application/x-www-form-urlencoded, the four RFC 6749 field names (grant_type, client_id, client_secret, scope) as the platform's one exception to camelCase:

curl -X POST https://data.placepoint.no/auth/token \
--data-urlencode "grant_type=client_credentials" \
--data-urlencode "client_id=YOUR_CLIENT_ID" \
--data-urlencode "client_secret=YOUR_CLIENT_SECRET" \
--data-urlencode "scope=properties.read companies.read"
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "properties.read companies.read"
}

Omit scope to receive every scope your client is granted.

Using the token

curl https://data.placepoint.no/properties/NO/0301-208-15-0-0 \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Token lifetime

Tokens expire after expires_in seconds (typically 3600). Cache and reuse a token for its full lifetime; request a new one before it expires or on a 401 response.

Scopes

Scopes are space-delimited and dot-separated, <resource>.<action>:

ScopeGrants
properties.readRead properties and their sub-resources.
companies.readRead companies and their sub-resources.
owners.readPerson fields on owners, roles and shareholders (PII tier).
areas.readRead area statistics and land allocations.
subscriptions.writeCreate and delete subscriptions.

owners.read is additive: an operation under properties.read or companies.read still succeeds without it, but a Person owner's, buyer's, or seller's name is omitted, leaving only birthYear when known.

Checking your own identity and quota

curl https://data.placepoint.no/auth/me -H "Authorization: Bearer $TOKEN"
{
"clientId": "ppk_test_9f2c1a",
"tier": "STANDARD",
"scopes": ["properties.read", "companies.read", "areas.read"],
"dailyCallLimit": 50000,
"callsToday": 1274
}

See Rate limits and quotas for how dailyCallLimit and callsToday are enforced.

Error responses

A rejected grant returns 400 with an RFC 6749 Section 5.2 body (error, error_description), not Problem Details: this is the one endpoint where the OAuth spec, not the platform's error contract, applies. Every other error follows Errors.

Beta! This documentation is automatically generated. Information may be incomplete or contain errors, especially screenshots and code samples. We'd love your feedback: use the "Did you find what you were looking for?" widget below, the chat in the bottom right, or email support@placepoint.no - we'll get back to you as soon as we can.