Skip to main content

across-client

Unit test and smoke test

The across-client is the NASA-ACROSS library used to access and manipulate the across-server data. What separates this package from the autogenerated sdk is that it also levarages the across-tools package to give users a single interface for all of their cross-observatory science needs.

Access

To access our observatory data (telescopes, instruments, schedues, etc) on the across-server, users DO NOT require any authentication. But if an observatory user-group wants to use the API to publish their planned/completed observing schedules they are required to register, and obtain client credentials through the website.

Installation

This repository can be installed on python (version >=3.10) environments.

#activate your python environment (conda, mamba, venv... etc)
git clone https://github.com/NASA-ACROSS/across-client.git
cd across-client
python -m pip install .

or the latest released version with pip

python -m pip install across-client

Usage

Below is a small example on how to utilize the client to access JWST Nircam performed observations. For more examples on how to access observatory science data or use our observatory tools endpoints, please go to our examples folder.

from datetime import datetime
from across.client import Client

# client credentials are only required for publishing schedules
ACROSS_SERVER_ID: str = "..."
ACROSS_SERVER_SECRET: str = "..."

client = Client(client_id=ACROSS_SERVER_ID, client_secret=ACROSS_SERVER_SECRET)

nircam = client.instrument.get_many(name="nircam")[0]

nircam_observations = client.observation.get_many(
   instrument_ids=[nircam.id],
   status="performed",
   date_range_begin=datetime(...),
   date_range_end=datetime(...),
)

Running the Client in Development

If you are running a development instance of the ACROSS software system, it is straightforward to point your client installation to your local ACROSS core-server instance.

  1. Follow the server installation instructions here.
  2. Copy or duplicate the .env.example file in the root directory of this repository and rename it to .env. Important: This overrides the client's host from the default production server to your local instance by setting the ACROSS_SERVER_HOST and ACROSS_SERVER_PORT variables to the local server's host and port, which by default is host: http://localhost and port: 8000.
  3. Instantiate a new Client object, see the example below, and it should now be set up to interface with your local development server!

Using this local setup, you can test submitting schedules to ACROSS. The local server provides a seeded service account with schedule write permissions. Simply instantiate the client using these credentials and you can post a schedule to your local server:

from across.client import Client


ACROSS_SERVER_ID = "961fbb3b-dd5e-45ff-a282-41033e43933d"
ACROSS_SERVER_SECRET = "prehibernationweek"

client = Client(
   client_id=ACROSS_SERVER_ID,
   client_secret=ACROSS_SERVER_SECRET,
)
created_schedule_id = client.schedule.post(...)

schedule = client.schedule.get(created_schedule_id)

print(schedule)

For ease of use, these ACROSS_SERVER_ID and ACROSS_SERVER_SECRET variables are part of the .env.example file.

Contributing

Found a bug? Want to make a feature request? Or create a pull request? Navigate to our Contributing document for more instructions!

Other Links

Open Science at NASA

Notice

NASA Docket No. GSC-19,469-1, and identified as "Astrophysics Cross-Observatory Science Support (ACROSS) System

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.“

Copyright © 2025 United States Government as represented by the Administrator of the National Aeronautics and Space Administration and The Penn State Research Foundation. All rights reserved. This software is licensed under the Apache 2.0 License.

Metadata

Release files for across-client 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for across-client 1.3.0
File Size Uploaded
across_client-1.3.0.tar.gz 323.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for across-client 1.3.0
File Interpreter ABI Platform
across_client-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 347.3 kB

Release files / across_client-1.3.0.tar.gz

Download URL across_client-1.3.0.tar.gz
Size 323.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3fb662d154acaa1ebd78fe6719fe8aaa692605d342a5471df6719334bf0a133e
BLAKE2b-256 checksum
How to use checksums
8fb8e355f725b2bb6740e583cad96f1e9eb8e5468a6bdd2546474257ca31811d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / across_client-1.3.0-py3-none-any.whl

Download URL across_client-1.3.0-py3-none-any.whl
Size 23.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5dc294a249b0907166eadbdc398fc0842d012ce577a1c6ffd0a2f46dccc4ca4a
BLAKE2b-256 checksum
How to use checksums
719cac0e06b8b4aa5403c1d9fa2dfb60e16ba681677c408be21151a1096d9d0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page