Skip to main content
The data lookup endpoints, Search a data source and Fetch an article by pasting its URL, return this envelope whichever source you query, and so does the search tool in the connector. See Connect an AI tool. Every source returns data in the same format, so the code you write to read it works for all of them: data.body is text for a model, and data.metadata holds the structured fields for code. Here is the result for the paper “Attention Is All You Need” from the arxiv source, with the body shortened:

The envelope

Every response has these top-level fields.

The result

data has the same fields for every source. Only the contents of metadata change. These are the fields worth knowing about: The full schema, including id, title, source, and language, is on Search a data source.

Stale results

When a source is unavailable and Dataville has a stored copy of the record, the response is still success and carries a stale object inside data:
The answer is real but may be out of date. If you need current data, check for stale and retry later.

Usage

With an API key, usage reports what the request cost and your remaining credit. See Plans and credits. Without a key, it reports how much of the anonymous allowance is left. See Usage limits. The same numbers are in the response headers, so you can read them without parsing the body.

Errors

Errors use the same envelope with status set to error. data.error is a message you can show to a user, and data.code is a stable string to branch on. See Troubleshooting.

Exports and SQL

Downloads and SQL queries return tables rather than this envelope. See Export datasets and Query with SQL.