across-client
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.
- Follow the server installation instructions here.
- Copy or duplicate the
.env.examplefile 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 theACROSS_SERVER_HOSTandACROSS_SERVER_PORTvariables to the local server's host and port, which by default is host:http://localhostand port:8000. - Instantiate a new
Clientobject, 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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| across_client-1.3.0.tar.gz | 323.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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