Connection bootstrapper service#

Nominal periodically scrapes connected databases (Connections) in order to maintain a database of all series that can be read from that database. This service is responsible for executing the scrape, and can be used manually to trigger a rescrape for any reason (for example, when updating a schema).

OpenAPI file: ConnectionBootstrapperService.json

Endpoints#

Populate series#

POST /data-source/connection/v1/{rid}/populateSeries

Populates the connection with series, by querying within the requested time range. If start or end are both omitted, will query the last 7 days by default. If one of start or end is omitted, will query a 7 day range from the provided start or end. Will throw if the requested range is larger than 30 days.

Path parameters

rid string (RID) required

​

Body

startTime string (date-time)

​

endTime string (date-time)

​

Response

No content (HTTP 204).

Request

curl -X POST "https://api.gov.nominal.io/api/data-source/connection/v1/<rid>/populateSeries" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "startTime": "2026-01-01T00:00:00Z",
  "endTime": "2026-01-01T00:00:00Z"
}'
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/data-source/connection/v1/<rid>/populateSeries",
    headers={"Authorization": "Bearer <api key>"},
    json={"startTime": "2026-01-01T00:00:00Z", "endTime": "2026-01-01T00:00:00Z"},
)
response.raise_for_status()
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/data-source/connection/v1/<rid>/populateSeries",
    headers={"Authorization": "Bearer <api key>"},
    json={"startTime": "2026-01-01T00:00:00Z", "endTime": "2026-01-01T00:00:00Z"},
)
response.raise_for_status()
import asyncio

import aiohttp


async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/data-source/connection/v1/<rid>/populateSeries",
            headers={"Authorization": "Bearer <api key>"},
            json={
                "startTime": "2026-01-01T00:00:00Z",
                "endTime": "2026-01-01T00:00:00Z",
            },
        ) as response:
            response.raise_for_status()


asyncio.run(main())

Response: 204

No content.

Errors#

Errors shows how these errors are sent.

Each error’s errorName is Connection: followed by its name below.

Status

Name

Notes

400

FailedToAddTagsToConnection

Cannot manually add tags to a Nominal connection.

400

NoSecretRidProvided

400

PopulateSeriesTimeRangeTooLarge

403

NotAllowedToCreateConnection

404

ConnectionNotFound

404

DatasetRidNotFound

404

DatasourceRidNotFound

404

SecretsNotFound

500

FailedToCreateConnection

Page design based on Scalar, MIT License.