Skill Tracer
Skills › Scientific Agent Skills › labarchive-integration › sources.md

sources.md

251 lines · skills/labarchive-integration/references/sources.md at 5f2bc03

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# Sources and Verification Notes
2
3Research date: **2026-09-30**.
4
5Official LabArchives help pages were read through the web tool. The shared API
6notebook was read with fresh `parallel-cli extract` requests and by navigating
7its public tree in Chrome, because basic extraction returned an empty shell
8and one container-page extraction redirected to login. Browser reading resolved
9that gap without authentication. PyPI and GitHub public metadata were checked
10for optional community clients. No authenticated API requests, remote writes,
11or product-integration transfers were performed.

Sources and Verification Notes

Research date: 2026-09-30.

Official LabArchives help pages were read through the web tool. The shared API notebook was read with fresh parallel-cli extract requests and by navigating its public tree in Chrome, because basic extraction returned an empty shell and one container-page extraction redirected to login. Browser reading resolved that gap without authentication. PyPI and GitHub public metadata were checked for optional community clients. No authenticated API requests, remote writes, or product-integration transfers were performed.

Raw lines 1 to 12
13## Official API sources

Official API sources

Raw lines 13 to 14
15### ELN overview and regional API hosts
17https://mynotebook.labarchives.com/share/LabArchives%20API/NS4yfDI3LzQvVHJlZU5vZGUvMTF8MTMuMg
19- Page revision: **2025-11-03**
20- Describes the ELN API as REST-like.
21- Lists API hosts for US/rest of world, Australia/New Zealand, UK, Europe
22 outside the UK, and Canada.
23- Requires HTTPS.
24- States that many responses are XML and child-element order is not fixed.

ELN overview and regional API hosts

https://mynotebook.labarchives.com/share/LabArchives%20API/NS4yfDI3LzQvVHJlZU5vZGUvMTF8MTMuMg

  • Page revision: 2025-11-03
  • Describes the ELN API as REST-like.
  • Lists API hosts for US/rest of world, Australia/New Zealand, UK, Europe outside the UK, and Canada.
  • Requires HTTPS.
  • States that many responses are XML and child-element order is not fixed.
Raw lines 15 to 25
26### Requirements and best practices
28https://mynotebook.labarchives.com/share/LabArchives%20API/MTM2LjV8MjcvMTA1L1RyZWVOb2RlLzM2MzY3OTM2NjF8MzQ2LjU=
30- Page revision: **2024-06-28**
31- Credentials are issued for a specific organization/vendor and purpose.
32- Large batches must be serialized or staggered by at least one second.
33- HTTP 4xx responses must not be automatically retried.
34- Eligible retries must wait at least one second, back off, and stop at a
35 bounded count/duration.
36- `expires` should represent current epoch milliseconds, with server-clock
37 adjustment, not a future expiry.

Requirements and best practices

https://mynotebook.labarchives.com/share/LabArchives%20API/MTM2LjV8MjcvMTA1L1RyZWVOb2RlLzM2MzY3OTM2NjF8MzQ2LjU=

  • Page revision: 2024-06-28
  • Credentials are issued for a specific organization/vendor and purpose.
  • Large batches must be serialized or staggered by at least one second.
  • HTTP 4xx responses must not be automatically retried.
  • Eligible retries must wait at least one second, back off, and stop at a bounded count/duration.
  • expires should represent current epoch milliseconds, with server-clock adjustment, not a future expiry.
Raw lines 26 to 38
39### Call authentication
41https://mynotebook.labarchives.com/share/LabArchives%20API/Ny44fDI3LzYvVHJlZU5vZGUvMTE1MzU5MTAyNXwxOS44
43- Page revision: **2023-05-10**
44- Defines Base64(HMAC-SHA-512) over the concatenation of Access Key ID, method
45 input, and `expires`, using the Access Password as the HMAC key.
46- Documents `akid`, `expires`, and URI-encoded `sig` query parameters.
47- The published dummy test vector is reproduced by
48 `scripts/entry_operations.py self-test`.

Call authentication

https://mynotebook.labarchives.com/share/LabArchives%20API/Ny44fDI3LzYvVHJlZU5vZGUvMTE1MzU5MTAyNXwxOS44

  • Page revision: 2023-05-10
  • Defines Base64(HMAC-SHA-512) over the concatenation of Access Key ID, method input, and expires, using the Access Password as the HMAC key.
  • Documents akid, expires, and URI-encoded sig query parameters.
  • The published dummy test vector is reproduced by scripts/entry_operations.py self-test.
Raw lines 39 to 49
Runs code scripts/entry_operations.py :48
50### API user login and UID
52https://mynotebook.labarchives.com/share/LabArchives%20API/ODEuOXwyNy82My05My9UcmVlTm9kZS8yMjYyMTU0MTg3fDIwNy44OTk5OTk5OTk5OTk5OA==
54- Page revision: **2023-03-03**
55- Documents the signed `/api_user_login` redirect, returned `auth_code` and
56 email, and redemption through `users::user_access_info`.
57- Defines the user-generated temporary password token alternative.
58- States that UIDs are bound to the Access Key ID and persist until revoked.

API user login and UID

https://mynotebook.labarchives.com/share/LabArchives%20API/ODEuOXwyNy82My05My9UcmVlTm9kZS8yMjYyMTU0MTg3fDIwNy44OTk5OTk5OTk5OTk5OA==

  • Page revision: 2023-03-03
  • Documents the signed /api_user_login redirect, returned auth_code and email, and redemption through users::user_access_info.
  • Defines the user-generated temporary password token alternative.
  • States that UIDs are bound to the Access Key ID and persist until revoked.
Raw lines 50 to 59
60### ELN API class tree
62https://mynotebook.labarchives.com/share/LabArchives%20API/MS4zfDI3LzEvVHJlZU5vZGUvODYxMDc1MjB8My4z
64- Current tree includes entries, search tools, utilities, users, tree tools,
65 notifications, notebooks, and site-license tools.
66- Method pages, not names inferred from other clients, are the source of truth.

ELN API class tree

https://mynotebook.labarchives.com/share/LabArchives%20API/MS4zfDI3LzEvVHJlZU5vZGUvODYxMDc1MjB8My4z

  • Current tree includes entries, search tools, utilities, users, tree tools, notifications, notebooks, and site-license tools.
  • Method pages, not names inferred from other clients, are the source of truth.
Raw lines 60 to 67
68### ELN entry response elements
70https://mynotebook.labarchives.com/share/LabArchives%20API/NjguOXwyNy81My9UcmVlTm9kZS8xODUxMDkwNDk2fDE3NC45
72- Documents common `<entry>` XML fields and optional entry/comment data.
73- Distinguishes attachment metadata from retrieval of attachment bytes.

ELN entry response elements

https://mynotebook.labarchives.com/share/LabArchives%20API/NjguOXwyNy81My9UcmVlTm9kZS8xODUxMDkwNDk2fDE3NC45

  • Documents common <entry> XML fields and optional entry/comment data.
  • Distinguishes attachment metadata from retrieval of attachment bytes.
Raw lines 68 to 74
75### LA container file
77https://mynotebook.labarchives.com/share/LabArchives%20API/Ni41fDI3LzUvVHJlZU5vZGUvNDQ3MDk3MTI0fDE2LjU=
79- Original page revision shown as **2014-11-10**; the public page also contained
80 an example-file revision dated **2026-03-02** at research time.
81- Defines an LA container as a ZIP with `lamanifest.xml`, an application file,
82 preview file, and UTF-8 index file.
83- This format is not the same thing as a notebook-backup response.

LA container file

https://mynotebook.labarchives.com/share/LabArchives%20API/Ni41fDI3LzUvVHJlZU5vZGUvNDQ3MDk3MTI0fDE2LjU=

  • Original page revision shown as 2014-11-10; the public page also contained an example-file revision dated 2026-03-02 at research time.
  • Defines an LA container as a ZIP with lamanifest.xml, an application file, preview file, and UTF-8 index file.
  • This format is not the same thing as a notebook-backup response.
Raw lines 75 to 84
85### Inventory authentication
87https://mynotebook.labarchives.com/share/LabArchives%20API/MTQ0LjN8MjcvMTExL1RyZWVOb2RlLzM5NjYzNjc4MjJ8MzY2LjI5OTk5OTk5OTk5OTk1
89- Page revision: **2025-11-24**
90- Inventory uses the shared LabArchives authentication flow.
91- Requires a new signature for each exact relative route.
92- Lists `X-LabArchives-UId`, `X-LabArchives-AKId`,
93 `X-LabArchives-LabId`, `X-LabArchives-Signature`, and
94 `X-LabArchives-Expires`.
95- Route parameters are included in the signature input; query parameters are
96 excluded. The method-specific `users/me` exception omits the Lab ID header.

Inventory authentication

https://mynotebook.labarchives.com/share/LabArchives%20API/MTQ0LjN8MjcvMTExL1RyZWVOb2RlLzM5NjYzNjc4MjJ8MzY2LjI5OTk5OTk5OTk5OTk1

  • Page revision: 2025-11-24
  • Inventory uses the shared LabArchives authentication flow.
  • Requires a new signature for each exact relative route.
  • Lists X-LabArchives-UId, X-LabArchives-AKId, X-LabArchives-LabId, X-LabArchives-Signature, and X-LabArchives-Expires.
  • Route parameters are included in the signature input; query parameters are excluded. The method-specific users/me exception omits the Lab ID header.
Raw lines 85 to 97
98### Inventory API v1 item creation
100https://mynotebook.labarchives.com/share/LabArchives%20API/MTg4LjV8MjcvMTQ1L1RyZWVOb2RlLzEyOTcxODY5ODF8NDc4LjU=
102- Page revision: **2026-04-02**
103- The public navigation labels the Inventory surface **APIs (v1)**.
104- Explicitly documents `POST /public/v1/inventory` and its JSON body fields.
105- The navigation also exposes read/update item routes and sections for item
106 types, orders, storage locations, and vendors.

Inventory API v1 item creation

https://mynotebook.labarchives.com/share/LabArchives%20API/MTg4LjV8MjcvMTQ1L1RyZWVOb2RlLzEyOTcxODY5ODF8NDc4LjU=

  • Page revision: 2026-04-02
  • The public navigation labels the Inventory surface APIs (v1).
  • Explicitly documents POST /public/v1/inventory and its JSON body fields.
  • The navigation also exposes read/update item routes and sections for item types, orders, storage locations, and vendors.
Raw lines 98 to 107
108### Method-level audit
110Opened every endpoint named by this skill through **ELN API Classes** or
111**Inventory > APIs (v1)** in the official notebook:
113- `entries/entry_info`: GET, `uid`/`eid`, optional data/comment flags; XML.
114- `entries/entry_attachment`: GET, `uid`/`eid`, raw application file and
115 `Content-Disposition`, not an LA container ZIP.
116- `notebooks/notebook_backup`: GET, owner `uid`/`nbid`, optional `json` and
117 `no_attachments`; `.7z` archive. Internal archive schema remains access-gated.
118- `users/user_access_info`: GET, `login_or_email` and authorization-code/token
119 `password`, signed query; returns UID and auto-login permission in XML.
120- `users/user_info_via_id`: GET with UID; honor auto-login permission and the
121 documented restricted purpose of `authenticated=true`.
122- `utilities/epoch_time`: GET with `akid`, no `sig`/`expires`; epoch milliseconds.
123- `utilities/api_base_urls`: signed GET; XML region URL/description list. Its
124 older example uses browser hosts, inconsistent with the newer API overview.
125- Inventory `GET /public/v1/users/me`: lab discovery, no Lab ID needed;
126 https://mynotebook.labarchives.com/share/LabArchives%20API/MTQ4LjIwMDAwMDAwMDAwMDAyfDI3LzExNC9UcmVlTm9kZS8zODc0Mjc0OTI5fDM3Ni4y
127- Inventory `GET /public/v1/inventory`: JSON array, `pageSize` at most 1000,
128 `pageNumber`, optional filters; out-of-stock items excluded by default.
129 Page-number origin/default and stable ordering are not specified.
130- Inventory `GET /public/v1/inventory/{itemId}`: one item JSON object, no query;
131 https://mynotebook.labarchives.com/share/LabArchives%20API/MTg0LjZ8MjcvMTQyLTIyMC9UcmVlTm9kZS8zMzkzMTkwNjY5fDQ2OC41OTk5OTk5OTk5OTk5Nw==
132- Inventory `GET /public/v1/inventory/{itemId}/attachments`: ZIP bytes.
133- Inventory POST create and update: `name` and `typeId` marked required, HTTP
134 200 item detail; examples include comments that must be removed for valid JSON.
136**Inventory > Overview** explicitly publishes `https://iapi.labarchives.com`,
137request `Content-Type: application/json`, JSON/ZIP response media types, and
138v1 version/deprecation policy. It does not provide a regional variant table.
139Navigate there from the official notebook linked above; navigation does not
140update its address bar, so the method titles identify the pages read.
142Additional direct method sources:
144- https://mynotebook.labarchives.com/share/LabArchives%2520API/MjAuOHwyNy8xNi9UcmVlTm9kZS8xMTk0MTIyNDl8NTIuOA==
145- https://mynotebook.labarchives.com/share/LabArchives%2520API/MjIuMXwyNy8xNy9UcmVlTm9kZS8yODM1OTg2MjY1fDU2LjE=
146- https://mynotebook.labarchives.com/share/LabArchives%2520API/MTQuM3wyNy8xMS9UcmVlTm9kZS8yMTI3OTAwNDQzfDM2LjM=
147- https://mynotebook.labarchives.com/share/LabArchives%2520API/MTEwLjV8MjcvODUtMTM5L1RyZWVOb2RlLzk0NjQ2ODg4MXwyODAuNQ==

Method-level audit

Opened every endpoint named by this skill through ELN API Classes or Inventory > APIs (v1) in the official notebook:

  • entries/entry_info: GET, uid/eid, optional data/comment flags; XML.
  • entries/entry_attachment: GET, uid/eid, raw application file and Content-Disposition, not an LA container ZIP.
  • notebooks/notebook_backup: GET, owner uid/nbid, optional json and no_attachments; .7z archive. Internal archive schema remains access-gated.
  • users/user_access_info: GET, login_or_email and authorization-code/token password, signed query; returns UID and auto-login permission in XML.
  • users/user_info_via_id: GET with UID; honor auto-login permission and the documented restricted purpose of authenticated=true.
  • utilities/epoch_time: GET with akid, no sig/expires; epoch milliseconds.
  • utilities/api_base_urls: signed GET; XML region URL/description list. Its older example uses browser hosts, inconsistent with the newer API overview.
  • Inventory GET /public/v1/users/me: lab discovery, no Lab ID needed; https://mynotebook.labarchives.com/share/LabArchives%20API/MTQ4LjIwMDAwMDAwMDAwMDAyfDI3LzExNC9UcmVlTm9kZS8zODc0Mjc0OTI5fDM3Ni4y
  • Inventory GET /public/v1/inventory: JSON array, pageSize at most 1000, pageNumber, optional filters; out-of-stock items excluded by default. Page-number origin/default and stable ordering are not specified.
  • Inventory GET /public/v1/inventory/{itemId}: one item JSON object, no query; https://mynotebook.labarchives.com/share/LabArchives%20API/MTg0LjZ8MjcvMTQyLTIyMC9UcmVlTm9kZS8zMzkzMTkwNjY5fDQ2OC41OTk5OTk5OTk5OTk5Nw==
  • Inventory GET /public/v1/inventory/{itemId}/attachments: ZIP bytes.
  • Inventory POST create and update: name and typeId marked required, HTTP 200 item detail; examples include comments that must be removed for valid JSON.

Inventory > Overview explicitly publishes https://iapi.labarchives.com, request Content-Type: application/json, JSON/ZIP response media types, and v1 version/deprecation policy. It does not provide a regional variant table. Navigate there from the official notebook linked above; navigation does not update its address bar, so the method titles identify the pages read.

Additional direct method sources:

  • https://mynotebook.labarchives.com/share/LabArchives%2520API/MjAuOHwyNy8xNi9UcmVlTm9kZS8xMTk0MTIyNDl8NTIuOA==
  • https://mynotebook.labarchives.com/share/LabArchives%2520API/MjIuMXwyNy8xNy9UcmVlTm9kZS8yODM1OTg2MjY1fDU2LjE=
  • https://mynotebook.labarchives.com/share/LabArchives%2520API/MTQuM3wyNy8xMS9UcmVlTm9kZS8yMTI3OTAwNDQzfDM2LjM=
  • https://mynotebook.labarchives.com/share/LabArchives%2520API/MTEwLjV8MjcvODUtMTM5L1RyZWVOb2RlLzk0NjQ2ODg4MXwyODAuNQ==
Raw lines 108 to 148
149## Official product and help sources

Official product and help sources

Raw lines 149 to 150
151### Regional browser login URLs
153https://help.labarchives.com/hc/en-us/articles/11728160845332-Using-an-Institutional-Single-Sign-on-for-LabArchives-Access
155- Updated **2025-11-04**
156- Lists separate login URLs for US/rest of world, Canada,
157 Australia/New Zealand, UK, and Europe.

Regional browser login URLs

https://help.labarchives.com/hc/en-us/articles/11728160845332-Using-an-Institutional-Single-Sign-on-for-LabArchives-Access

  • Updated 2025-11-04
  • Lists separate login URLs for US/rest of world, Canada, Australia/New Zealand, UK, and Europe.
Raw lines 151 to 158
159### ELN API entitlement
161https://help.labarchives.com/hc/en-us/articles/11723701830676-ELN-for-Research-Introduction-and-Subscription-Plans
163- Updated **2026-08-27**
164- Lists developer API access under the Enterprise plan.

ELN API entitlement

https://help.labarchives.com/hc/en-us/articles/11723701830676-ELN-for-Research-Introduction-and-Subscription-Plans

  • Updated 2026-08-27
  • Lists developer API access under the Enterprise plan.
Raw lines 159 to 165
166### Inventory API entitlement
168https://help.labarchives.com/hc/en-us/articles/11811035048212-Inventory-FAQs
170- Updated **2026-05-19**
171- Limits API availability to Enterprise and Enterprise Plus licensees.
172- Requires Inventory account/API access and directs eligible users to support.

Inventory API entitlement

https://help.labarchives.com/hc/en-us/articles/11811035048212-Inventory-FAQs

  • Updated 2026-05-19
  • Limits API availability to Enterprise and Enterprise Plus licensees.
  • Requires Inventory account/API access and directs eligible users to support.
Raw lines 166 to 173
174### Integration index
176https://help.labarchives.com/hc/en-us/sections/11732611360660-Integrations
178Current index at research time included GraphPad Prism, SnapGene, Geneious,
179Proofig AI, Jupyter, REDCap, Protocols.io, Qeios, SciSpace, Vernier Logger Pro,
180and DataCite.
182Selected dated articles:
184- Jupyter, updated **2025-09-08**:
185 https://help.labarchives.com/hc/en-us/articles/11780569021972-Jupyter-Integration
186- REDCap, updated **2025-09-05**:
187 https://help.labarchives.com/hc/en-us/articles/11780613160980-REDCap-Integration
188- Protocols.io, updated **2025-09-22**:
189 https://help.labarchives.com/hc/en-us/articles/11780572389524-Protocols-io-Integration

Integration index

https://help.labarchives.com/hc/en-us/sections/11732611360660-Integrations

Current index at research time included GraphPad Prism, SnapGene, Geneious, Proofig AI, Jupyter, REDCap, Protocols.io, Qeios, SciSpace, Vernier Logger Pro, and DataCite.

Selected dated articles:

  • Jupyter, updated 2025-09-08: https://help.labarchives.com/hc/en-us/articles/11780569021972-Jupyter-Integration
  • REDCap, updated 2025-09-05: https://help.labarchives.com/hc/en-us/articles/11780613160980-REDCap-Integration
  • Protocols.io, updated 2025-09-22: https://help.labarchives.com/hc/en-us/articles/11780572389524-Protocols-io-Integration
Raw lines 174 to 190
191## Community Python client status
193Community projects are not official LabArchives sources and are not installed by
194this skill.

Community Python client status

Community projects are not official LabArchives sources and are not installed by this skill.

Raw lines 191 to 195
196### `mcmero/labarchives-py`
198https://github.com/mcmero/labarchives-py
200GitHub metadata checked **2026-09-30**:
202- personal/community repository, not LabArchives-owned,
203- last commit: **2022-08-10** (`1b5b745baaf9`),
204- no tags,
205- no GitHub releases,
206- no official LabArchives endorsement found.
208Conclusion: remove the old unpinned Git clone installation and do not recommend
209this wrapper by default.

mcmero/labarchives-py

https://github.com/mcmero/labarchives-py

GitHub metadata checked 2026-09-30:

  • personal/community repository, not LabArchives-owned,
  • last commit: 2022-08-10 (1b5b745baaf9),
  • no tags,
  • no GitHub releases,
  • no official LabArchives endorsement found.

Conclusion: remove the old unpinned Git clone installation and do not recommend this wrapper by default.

Raw lines 196 to 210
211### `nimh-dsst/labapi`
213- PyPI: https://pypi.org/project/labapi/
214- Source: https://github.com/nimh-dsst/labapi
215- Documentation: https://nimh-dsst.github.io/labapi/
217Verified status on **2026-09-30** using project-owned PyPI/GitHub metadata:
219- NIMH DSST community project, not LabArchives-owned;
220- stable release **1.2.0**, published **2026-08-20** on PyPI and GitHub;
221- Python requirement **>=3.10**;
222- current PyPI `license_expression` and GitHub license both identify **MIT**;
223- no official LabArchives endorsement was identified in the reviewed vendor docs.
225Metadata sources:
227- https://pypi.org/pypi/labapi/json
228- https://api.github.com/repos/nimh-dsst/labapi/releases
229- https://api.github.com/repos/nimh-dsst/labapi/license
231This review checked release metadata, not client execution or transitive
232behavior. Adoption remains a separate institution-reviewed choice. Pin the
233selected release and inspect its credential-loading behavior; the bundled
234standard-library tools do not import or require this client.

nimh-dsst/labapi

  • PyPI: https://pypi.org/project/labapi/
  • Source: https://github.com/nimh-dsst/labapi
  • Documentation: https://nimh-dsst.github.io/labapi/

Verified status on 2026-09-30 using project-owned PyPI/GitHub metadata:

  • NIMH DSST community project, not LabArchives-owned;
  • stable release 1.2.0, published 2026-08-20 on PyPI and GitHub;
  • Python requirement >=3.10;
  • current PyPI license_expression and GitHub license both identify MIT;
  • no official LabArchives endorsement was identified in the reviewed vendor docs.

Metadata sources:

  • https://pypi.org/pypi/labapi/json
  • https://api.github.com/repos/nimh-dsst/labapi/releases
  • https://api.github.com/repos/nimh-dsst/labapi/license

This review checked release metadata, not client execution or transitive behavior. Adoption remains a separate institution-reviewed choice. Pin the selected release and inspect its credential-loading behavior; the bundled standard-library tools do not import or require this client.

Raw lines 211 to 235
236## Claims not established by public official sources
238The research did **not** establish:
240- an Inventory regional base-URL table beyond the published `iapi.labarchives.com`,
241- the Inventory list endpoint's page-number origin/default or stable ordering,
242- a numeric requests-per-minute or burst quota,
243- a generic LabArchives OAuth 2.0 authorization/token endpoint,
244- an official LabArchives Python SDK,
245- a blanket backward-compatibility guarantee for the legacy ELN API,
246- universal attachment extensions, file-size limits, or archive formats,
247- that every advertised product integration exposes a programmable API.
249Obtain missing product-specific details from institution/vendor-provided API
250documentation or LabArchives support. Do not fill gaps from model memory or a
251community wrapper.

Claims not established by public official sources

The research did not establish:

  • an Inventory regional base-URL table beyond the published iapi.labarchives.com,
  • the Inventory list endpoint's page-number origin/default or stable ordering,
  • a numeric requests-per-minute or burst quota,
  • a generic LabArchives OAuth 2.0 authorization/token endpoint,
  • an official LabArchives Python SDK,
  • a blanket backward-compatibility guarantee for the legacy ELN API,
  • universal attachment extensions, file-size limits, or archive formats,
  • that every advertised product integration exposes a programmable API.

Obtain missing product-specific details from institution/vendor-provided API documentation or LabArchives support. Do not fill gaps from model memory or a community wrapper.

Raw lines 236 to 251