# grist.tools Archive Extract File

> grist.tools Archive Extract File is a paid API for AI agents from grist.tools, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-03).

Fetches a remote archive (ZIP, TAR, or gzipped TAR) and returns the raw bytes of a single named entry from within it

## Facts

- Endpoint: POST https://grist.tools/v1/archive-extract-file?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-03
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/grist-tools-archive-extract-file-fb348201
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_jfiO_D0IrEwuq_mYF6NRs

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability grist-tools-archive-extract-file-fb348201 -d '<json body>'
```

Example prompt: Pull out just the file 'data/config.json' from the zip archive at https://releases.example.com/package-v2.1.zip and show me its contents.

## When to prefer this

Choose this endpoint when you need to retrieve a single known file from a remote archive without downloading and unpacking the entire archive locally. It is ideal for picking one artifact out of a release tarball, reading a specific file from a zipped dataset, or fetching a config or source file embedded in a compressed bundle. Prefer it over general HTTP fetch tools when the target content is buried inside a compressed archive rather than directly accessible via URL.

## Known failure modes

- Archive URL is unreachable or returns a non-200 response
- Archive exceeds 25 MB size limit
- Entry path does not exist in the archive (case-sensitive match failure)
- Entry is a directory, symlink, or hard link rather than a plain file
- Entry itself exceeds 25 MB
- Archive is encrypted or password-protected
- URL is longer than 2048 characters or entry path longer than 4096 characters
- Archive format is not ZIP, TAR, or gzip-compressed TAR
- Payment verification fails before handler runs

## How this service works

One endpoint does one thing, always the same way, for a fraction of a cent. Payment is verified before the handler runs and settled only after it succeeds, so a rejected or failed call is never a charged call.

## Output

The raw file contents of the requested archive entry, returned as bytes. The response is the actual file data — not base64 or JSON-wrapped — for the exact named entry within the remote archive.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "url",
  "entry"
 ],
 "properties": {
  "url": {
   "type": "string",
   "description": "Absolute http(s) URL of the archive (at most 25 MB, also the cap on an inflated tar.gz), up to 2048 characters; redirects are followed and the format (zip, tar or gzip-compressed tar) is decided from the magic bytes, not the extension."
  },
  "entry": {
   "type": "string",
   "description": "Exact entry path to extract, 1 to 4096 characters, matched case-sensitively against the names archive-inspect lists; directories, links, encrypted entries and entries over 25 MB are refused."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/grist-tools-archive-extract-file-fb348201/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from grist.tools](https://www.zero.xyz/host/grist.tools/llms.txt)
