Skip to content
EndpointOS/endpointos-demo/weather-intelligencepublic docs

Weather Intelligence API

liveOpenAPI 3.1Draft v1

Sample data used to demonstrate EndpointOS API product workflows. A read-only weather-intelligence API: current observations and supported locations, packaged behind keys, docs, and usage limits.

Maintained by endpointos-demoUpdated May 28, 20262 resources100,000 requests/month
Introduction

A live REST API reference generated from Weather Intelligence API.

This documentation is generated from the project schema in EndpointOS. It shows the public method surface, authentication model, request schemas, response contracts, errors, pagination, usage limits, and OpenAPI export.

Quickstart

Make the first request

Use a project API key with the base URL and one of the generated resource paths. EndpointOS never displays private API keys in public documentation.

  1. Issue a read or write key from the project dashboard.
  2. Send it in Authorization: Bearer sapi_live_xxxxxxxx or x-api-key.
  3. Call one of the generated endpoints below.
  4. Inspect the request log and monthly usage in EndpointOS.
Run it/locations
curl "https://endpointos.dev/api/public/endpointos-demo/weather-intelligence/locations?limit=20&offset=0" \
  -H "Authorization: Bearer sapi_live_xxxxxxxx"
Response contractJSON envelope
{
  "data": [],
  "pagination": {
    "limit": 20,
    "offset": 0,
    "total": 0
  }
}

Authentication

API keys on every request

Every public request requires an EndpointOS API key. Key permissions are checked first, then each resource access mode decides which generated methods are exposed.

HeaderValueUse when
AuthorizationBearer sapi_live_xxxxxxxxRecommended for server-to-server calls.
x-api-keysapi_test_xxxxxxxxUseful for curl examples and simple clients.
HeadersEither format works
Authorization: Bearer sapi_live_xxxxxxxx
x-api-key: sapi_test_xxxxxxxx

Base URL

Project-level API namespace

All endpoints below are relative to this base URL. The username and project slug are part of the namespace so different builders can publish APIs with the same project name without collisions.

https://endpointos.dev/api/public/endpointos-demo/weather-intelligence

Resource behavior

Access modes and data sources

Each resource controls its public method surface. API key permissions still apply, but a resource can intentionally expose fewer methods for dataset, lookup, or intake APIs.

Read/write

GET, POST, PATCH, DELETEManaged APIs that need the full record lifecycle.

Read-only

GETPublic datasets, reporting feeds, lookup APIs, and partner data products.

Write-only

POSTLead capture, form submissions, events, and private intake APIs.
Resource

locations

/locations

Supported locations for the weather feed.

locationsEndpointOS managedRead-only2 endpoints
FieldTypeRequiredUniqueDefaultEnum valuesNotes
citystringYesNoNoneNoneRequired on create. String value
countrystringYesNoNoneNoneRequired on create. String value
latitudenumberNoNoNoneNoneFinite numeric value
longitudenumberNoNoNoneNoneFinite numeric value
timezonestringNoNoNoneNoneString value
regionenumNoNoNoneamericas, emea, apacMust match one enum value
citystring
Required
Yes
Unique
No
Default
None
Enum
None
Notes
Required on create. String value
countrystring
Required
Yes
Unique
No
Default
None
Enum
None
Notes
Required on create. String value
latitudenumber
Required
No
Unique
No
Default
None
Enum
None
Notes
Finite numeric value
longitudenumber
Required
No
Unique
No
Default
None
Enum
None
Notes
Finite numeric value
timezonestring
Required
No
Unique
No
Default
None
Enum
None
Notes
String value
regionenum
Required
No
Unique
No
Default
None
Enum
americas, emea, apac
Notes
Must match one enum value
GET/locations

List locations

Returns non-deleted records with pagination, filters, search, and sorting.

API key requiredRead-only or read-writeLogs every request

Request body

This endpoint does not accept a request body.

Possible responses
200OKsuccessRequest succeeded and returned a JSON response.
401UnauthorizedclientMissing or invalid API key.
429Rate limitedclientThe project reached its monthly request limit.
RequestGET /locations
curl "https://endpointos.dev/api/public/endpointos-demo/weather-intelligence/locations" \
  -H "Authorization: Bearer sapi_live_xxxxxxxx"
Response example200 OK
{
  "data": [
    {
      "id": "rec_abc123",
      "city": "San Francisco",
      "country": "United States",
      "latitude": 47.3769,
      "longitude": 8.5417,
      "timezone": "Example",
      "region": "americas",
      "createdAt": "2026-05-11T10:30:00.000Z",
      "updatedAt": "2026-05-11T10:30:00.000Z"
    }
  ],
  "pagination": {
    "limit": 20,
    "offset": 0,
    "total": 1
  }
}
Error exampleConsistent error object
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "A valid EndpointOS API key is required.",
    "details": {}
  }
}
GET/locations/{id}

Retrieve a location

Returns one non-deleted record by id.

API key requiredRead-only or read-writeLogs every request

Request body

This endpoint does not accept a request body.

Possible responses
200OKsuccessRequest succeeded and returned a JSON response.
401UnauthorizedclientMissing or invalid API key.
404Not foundclientThe record id does not exist or was soft-deleted.
429Rate limitedclientThe project reached its monthly request limit.
RequestGET /locations/{id}
curl "https://endpointos.dev/api/public/endpointos-demo/weather-intelligence/locations/rec_abc123" \
  -H "Authorization: Bearer sapi_live_xxxxxxxx"
Response example200 OK
{
  "data": {
    "id": "rec_abc123",
    "city": "Berlin",
    "country": "Germany",
    "latitude": 47.3769,
    "longitude": 8.5417,
    "timezone": "Example",
    "region": "americas",
    "createdAt": "2026-05-11T10:30:00.000Z",
    "updatedAt": "2026-05-11T10:42:00.000Z"
  }
}
Error exampleConsistent error object
{
  "error": {
    "code": "RECORD_NOT_FOUND",
    "message": "Record not found.",
    "details": {
      "id": "rec_abc123"
    }
  }
}
Resource

current-weather

/current-weather

Latest weather observation per supported location.

current-weatherEndpointOS managedRead-only2 endpoints
FieldTypeRequiredUniqueDefaultEnum valuesNotes
locationIdstringYesNoNoneNoneRequired on create. String value
citystringYesNoNoneNoneRequired on create. String value
countrystringYesNoNoneNoneRequired on create. String value
temperatureCnumberYesNoNoneNoneRequired on create. Finite numeric value
humiditynumberNoNoNoneNoneFinite numeric value
windSpeedKphnumberNoNoNoneNoneFinite numeric value
conditionenumNoNoNoneclear, partly_cloudy, cloudy, rain, snow, fog, thunderstormMust match one enum value
observedAtstringNoNoNoneNoneString value
locationIdstring
Required
Yes
Unique
No
Default
None
Enum
None
Notes
Required on create. String value
citystring
Required
Yes
Unique
No
Default
None
Enum
None
Notes
Required on create. String value
countrystring
Required
Yes
Unique
No
Default
None
Enum
None
Notes
Required on create. String value
temperatureCnumber
Required
Yes
Unique
No
Default
None
Enum
None
Notes
Required on create. Finite numeric value
humiditynumber
Required
No
Unique
No
Default
None
Enum
None
Notes
Finite numeric value
windSpeedKphnumber
Required
No
Unique
No
Default
None
Enum
None
Notes
Finite numeric value
conditionenum
Required
No
Unique
No
Default
None
Enum
clear, partly_cloudy, cloudy, rain, snow, fog, thunderstorm
Notes
Must match one enum value
observedAtstring
Required
No
Unique
No
Default
None
Enum
None
Notes
String value
GET/current-weather

List current-weather

Returns non-deleted records with pagination, filters, search, and sorting.

API key requiredRead-only or read-writeLogs every request

Request body

This endpoint does not accept a request body.

Possible responses
200OKsuccessRequest succeeded and returned a JSON response.
401UnauthorizedclientMissing or invalid API key.
429Rate limitedclientThe project reached its monthly request limit.
RequestGET /current-weather
curl "https://endpointos.dev/api/public/endpointos-demo/weather-intelligence/current-weather" \
  -H "Authorization: Bearer sapi_live_xxxxxxxx"
Response example200 OK
{
  "data": [
    {
      "id": "rec_abc123",
      "locationId": "rec_abc123",
      "city": "San Francisco",
      "country": "United States",
      "temperatureC": 21,
      "humidity": 64,
      "windSpeedKph": 12,
      "condition": "clear",
      "observedAt": "Example",
      "createdAt": "2026-05-11T10:30:00.000Z",
      "updatedAt": "2026-05-11T10:30:00.000Z"
    }
  ],
  "pagination": {
    "limit": 20,
    "offset": 0,
    "total": 1
  }
}
Error exampleConsistent error object
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "A valid EndpointOS API key is required.",
    "details": {}
  }
}
GET/current-weather/{id}

Retrieve a current-weather

Returns one non-deleted record by id.

API key requiredRead-only or read-writeLogs every request

Request body

This endpoint does not accept a request body.

Possible responses
200OKsuccessRequest succeeded and returned a JSON response.
401UnauthorizedclientMissing or invalid API key.
404Not foundclientThe record id does not exist or was soft-deleted.
429Rate limitedclientThe project reached its monthly request limit.
RequestGET /current-weather/{id}
curl "https://endpointos.dev/api/public/endpointos-demo/weather-intelligence/current-weather/rec_abc123" \
  -H "Authorization: Bearer sapi_live_xxxxxxxx"
Response example200 OK
{
  "data": {
    "id": "rec_abc123",
    "locationId": "rec_def456",
    "city": "Berlin",
    "country": "United States",
    "temperatureC": 21,
    "humidity": 64,
    "windSpeedKph": 12,
    "condition": "clear",
    "observedAt": "Example",
    "createdAt": "2026-05-11T10:30:00.000Z",
    "updatedAt": "2026-05-11T10:42:00.000Z"
  }
}
Error exampleConsistent error object
{
  "error": {
    "code": "RECORD_NOT_FOUND",
    "message": "Record not found.",
    "details": {
      "id": "rec_abc123"
    }
  }
}

Conventions

Pagination

List endpoints support limit and offset. The default limit is 20 and the maximum limit is 100.

Query parameters
limitnumberoptionalPage size. Defaults to 20 and caps at 100.
offsetnumberoptionalZero-based offset for the first returned record.
List responsePaginated
{
  "data": [
    {
      "id": "rec_abc123",
      "title": "Dark mode",
      "createdAt": "2026-05-11T10:30:00.000Z",
      "updatedAt": "2026-05-11T10:30:00.000Z"
    }
  ],
  "pagination": {
    "limit": 20,
    "offset": 0,
    "total": 1
  }
}

Conventions

Filtering

Collection endpoints accept field filters, comparison operators, text search, and deterministic sorting. Plain field=value remains an equality filter.

Filter controls
field=valuestringoptionalEquality filter for a defined field.
field[ne]stringoptionalExclude records matching this value.
field[in]stringoptionalComma-separated values for a field.
field[gte]stringoptionalComparison operators work with number, date, and datetime fields.
qstringoptionalSearch string and enum fields.
sortstringoptionalSort by a field, createdAt, or updatedAt.
Filtered requestGET
GET /locations?status[in]=new,planned&votes[gte]=10&sort=-createdAt

Conventions

Errors

EndpointOS returns stable error codes so clients can handle validation, auth, missing records, and usage limits without parsing prose.

CodeStatusMeaning
UNAUTHORIZED401Missing, malformed, or invalid API key.
FORBIDDEN403The API key cannot perform this operation.
PROJECT_NOT_FOUND404The project slug does not resolve to an API.
RESOURCE_NOT_FOUND404The resource slug does not exist in the project.
RECORD_NOT_FOUND404The record id does not exist or was deleted.
VALIDATION_ERROR400The request body failed schema validation.
RATE_LIMITED429The project has reached its monthly request limit.
INTERNAL_ERROR500EndpointOS could not complete the request.
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Field 'title' is required.",
    "details": {
      "field": "title"
    }
  }
}

Conventions

Rate limits

EndpointOS counts public API requests per project each month. When the project reaches its limit, the API returns 429 RATE_LIMITED.

Limit response429 RATE_LIMITED
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Monthly request limit exceeded.",
    "details": {
      "limit": 100000,
      "resetAt": "2026-06-01T00:00:00.000Z"
    }
  }
}

Validation policy

Unknown fields are rejected

EndpointOS rejects fields that are not defined on the resource schema. This keeps generated APIs predictable and prevents accidental writes to undeclared data.

Developer portal

Request API access

Want to call this API? Send the owner an access request. If approved, they'll issue you an API key and a private link to see your usage.

Request API access