# URL to BibTeX Converter (`maximedupre/url-to-bibtex-converter`) Actor

Convert article, paper, DOI, PubMed, arXiv, and web page URLs into BibTeX citations. Export citation keys, authors, identifiers, abstracts, source URLs, and metadata.

- **URL**: https://apify.com/maximedupre/url-to-bibtex-converter.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Developer tools, Education, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 converted citations

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### 🔗 URL to BibTeX converter for papers and web pages

URL to BibTeX Converter turns article, paper, book, DOI, PubMed, arXiv, and web page URLs into source-backed BibTeX citations. Add one URL or paste a batch, then export BibTeX, citation keys, structured authors, identifiers, abstracts when the source provides them, and metadata from a clean Apify dataset.

Use it when you are building a reading list, cleaning references for LaTeX, preparing research notes, checking citations before import, or moving citation data into another workflow. The Actor works with public citation sources and web pages. It does not need cookies, a source account, a browser extension, or a third-party citation API key from you.

For a quick first run, keep the prefilled arXiv URL. You can then add PubMed pages, DOI links such as `https://doi.org/10.1038/s41586-021-03819-2`, publisher article pages with citation metadata, or normal web pages that expose useful metadata.

### ✅ What this Actor does

- Converts one or many public URLs into BibTeX.
- Supports arXiv, PubMed, DOI metadata, publisher/article metadata, and generic web page metadata when available.
- Saves one dataset row per successfully converted citation.
- Generates stable BibTeX citation keys from source metadata.
- Lets you set one custom citation key for a single URL.
- Lets you add a shared prefix to generated keys in batch runs.
- Lets you auto-detect the BibTeX entry type or force a type such as `article`, `book`, `inproceedings`, `techreport`, or `misc`.
- Includes source URLs and source-native abstracts when available.
- Returns normalized identifiers such as DOI, arXiv ID, PMID, and ISBN when found.
- Adds completeness signals so you can review citations with missing title, author, or year data.

The Actor does not invent missing citation facts. If a source does not expose an author, date, DOI, abstract, or venue, the matching field is returned as `null` or listed in `completeness.missingFields`.

### 📦 Data you can extract

Each output row is one converted citation. Rows can include:

| Field | Description |
| --- | --- |
| `sourceUrl` | URL you submitted. |
| `resolvedUrl` | Final URL or source metadata endpoint used for the citation. |
| `sourceType` | Source family such as `arxiv`, `pubmed`, `doi`, `publisher`, or `generic`. |
| `citationKey` | Generated or custom BibTeX key. |
| `entryType` | BibTeX entry type used in the final citation. |
| `title`, `authors`, `authorsText` | Title and author data found on the source. |
| `year`, `publicationDate`, `venue` | Publication timing and container data when found. |
| `identifiers` | DOI, arXiv ID, PMID, or ISBN values when available. |
| `abstract` | Source-native abstract or description when available. |
| `bibtex` | Ready-to-copy BibTeX entry. |
| `cslJson` | CSL JSON-compatible metadata when enough source data exists. |
| `metadataSources` | Metadata groups used to build the citation. |
| `completeness` | Missing key fields and whether the citation is complete enough for normal BibTeX use. |
| `scrapedAt` | UTC timestamp for the conversion. |

### 🧪 Output example

```json
{
  "sourceUrl": "https://arxiv.org/abs/1706.03762",
  "sourceType": "arxiv",
  "citationKey": "Vaswani2017attention",
  "entryType": "article",
  "title": "Attention Is All You Need",
  "authorsText": "Ashish Vaswani, Noam Shazeer",
  "year": "2017",
  "identifiers": {
    "doi": "10.48550/arXiv.1706.03762",
    "arxivId": "1706.03762",
    "pmid": null,
    "isbn": null
  },
  "bibtex": "@article{Vaswani2017attention,...}",
  "metadataSources": ["arXiv Atom"],
  "completeness": {
    "missingFields": [],
    "isCompleteEnoughForBibTeX": true
  }
}
````

### 🧭 How to run it

1. Paste one or more URLs into **Citation URLs**.
2. Leave **BibTeX entry type** on **Auto-detect** unless you need to force a specific type.
3. Optional: add **Custom citation key** for a single URL, or **Citation key prefix** for a batch.
4. Run the Actor and open the dataset.
5. Copy the `bibtex` field or export all rows as JSON, CSV, Excel, XML, RSS, or HTML.

You can run it in Apify Console, call it from the Apify API, schedule repeat runs, use webhooks, or connect the dataset to another integration.

### 🔎 URL to BibTeX converter coverage

This BibTeX converter is built for public URLs that expose citation or page metadata. It was validated with arXiv papers, PubMed pages, DOI metadata, and generic documentation pages. DOI links use citation metadata where available, which can be more reliable than scraping a publisher page that blocks automated HTML access.

Generic web pages vary a lot. Pages with JSON-LD, Open Graph, Dublin Core, citation meta tags, or normal title/description metadata usually produce better rows than pages with little public metadata.

### 💰 Pricing

This Actor uses pay-per-event pricing. You are charged once for each successfully converted citation row.

- Free tier: `$1.80` per 1,000 converted citations.
- Bronze tier: `$1.50` per 1,000 converted citations.
- Silver tier: `$1.15` per 1,000 converted citations.
- Gold, Platinum, and Diamond tiers: `$0.90` per 1,000 converted citations.

Failed or skipped URLs are not saved as primary citation rows.

### ⚠️ Limits and caveats

- The Actor accepts up to 1,000 URL targets per run.
- It works with public pages and public citation metadata only.
- It does not extract citations from uploaded PDFs or parse reference lists from documents.
- It does not generate APA, MLA, Chicago, RIS, or EndNote exports.
- It does not infer missing facts with AI.
- Some publisher pages may expose limited metadata or block direct page access. DOI metadata can still work for many DOI URLs.

### ❓ FAQ

#### Can I convert a DOI to BibTeX?

Yes. Paste a DOI URL such as `https://doi.org/10.1038/s41586-021-03819-2`. The Actor uses DOI citation metadata when available.

#### Can I convert PubMed or arXiv URLs to BibTeX?

Yes. PubMed and arXiv are first-class source paths. Rows can include PMID or arXiv IDs, titles, authors, dates, abstracts, and BibTeX.

#### Does it include abstracts?

Yes, when the source provides a source-native abstract or description. There is no toggle because useful source-backed citation data is included by default.

#### Does it need a citation API key?

No. The public product contract does not require a source API key, source account, cookies, or user credentials.

### 📝 Changelog

- 0.1: Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~url-to-bibtex-converter/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Other actors

- [Webpage Text Extractor ↗](https://apify.com/maximedupre/webpage-text-extractor) - Extract clean text, Markdown, metadata, headings, and links from public web pages.
- [RSS Feed Reader ↗](https://apify.com/maximedupre/rss-feed-reader) - Read RSS, Atom, RDF, and JSON Feed URLs into clean feed item rows.
- [Goodreads Scraper ↗](https://apify.com/maximedupre/goodreads-scraper) - Collect public book metadata, authors, ISBNs, ratings, and review data from Goodreads.
- [Font Detector ↗](https://apify.com/maximedupre/font-detector) - Detect web fonts, font files, CSS family declarations, and source evidence from public pages.
- [Web Images Scraper ↗](https://apify.com/maximedupre/web-images-scraper) - Extract image URLs, source pages, metadata, and optional saved files from public websites.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `startUrls` (type: `array`):

Paste arXiv, PubMed, DOI, publisher article, book, or web page URLs to convert.

## `citationKey` (type: `string`):

Use one exact BibTeX key for a single submitted URL.

## `citationKeyPrefix` (type: `string`):

Add a shared prefix to generated keys in batch runs, such as a project or thesis code.

## `entryType` (type: `string`):

Choose Auto-detect for normal runs, or force a BibTeX type when you already know it.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://arxiv.org/abs/1706.03762"
    },
    {
      "url": "https://arxiv.org/abs/1810.04805"
    },
    {
      "url": "https://arxiv.org/abs/2005.14165"
    },
    {
      "url": "https://arxiv.org/abs/2103.00020"
    },
    {
      "url": "https://arxiv.org/abs/2302.13971"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/34465844/"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/31452104/"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/32541993/"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/28445448/"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/30021884/"
    },
    {
      "url": "https://doi.org/10.1038/s41586-021-03819-2"
    },
    {
      "url": "https://doi.org/10.1126/science.169.3946.635"
    },
    {
      "url": "https://doi.org/10.1145/3292500.3330701"
    },
    {
      "url": "https://doi.org/10.1109/5.771073"
    },
    {
      "url": "https://doi.org/10.1007/BF01386390"
    },
    {
      "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript"
    },
    {
      "url": "https://docs.python.org/3/tutorial/"
    },
    {
      "url": "https://nodejs.org/en/learn/getting-started/introduction-to-nodejs"
    },
    {
      "url": "https://www.typescriptlang.org/docs/"
    },
    {
      "url": "https://docs.apify.com/platform/actors"
    },
    {
      "url": "https://arxiv.org/abs/1512.03385"
    },
    {
      "url": "https://arxiv.org/abs/1409.0473"
    },
    {
      "url": "https://doi.org/10.1038/nature14539"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/23803877/"
    },
    {
      "url": "https://en.wikipedia.org/wiki/BibTeX"
    }
  ],
  "citationKey": "vaswani2017attention",
  "citationKeyPrefix": "nlp",
  "entryType": "auto"
}
```

# Actor output Schema

## `results` (type: `string`):

Open citation rows with BibTeX, identifiers, structured authors, source evidence, and completeness status.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://arxiv.org/abs/1706.03762"
        },
        {
            "url": "https://arxiv.org/abs/1810.04805"
        },
        {
            "url": "https://arxiv.org/abs/2005.14165"
        },
        {
            "url": "https://arxiv.org/abs/2103.00020"
        },
        {
            "url": "https://arxiv.org/abs/2302.13971"
        },
        {
            "url": "https://pubmed.ncbi.nlm.nih.gov/34465844/"
        },
        {
            "url": "https://pubmed.ncbi.nlm.nih.gov/31452104/"
        },
        {
            "url": "https://pubmed.ncbi.nlm.nih.gov/32541993/"
        },
        {
            "url": "https://pubmed.ncbi.nlm.nih.gov/28445448/"
        },
        {
            "url": "https://pubmed.ncbi.nlm.nih.gov/30021884/"
        },
        {
            "url": "https://doi.org/10.1038/s41586-021-03819-2"
        },
        {
            "url": "https://doi.org/10.1126/science.169.3946.635"
        },
        {
            "url": "https://doi.org/10.1145/3292500.3330701"
        },
        {
            "url": "https://doi.org/10.1109/5.771073"
        },
        {
            "url": "https://doi.org/10.1007/BF01386390"
        },
        {
            "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript"
        },
        {
            "url": "https://docs.python.org/3/tutorial/"
        },
        {
            "url": "https://nodejs.org/en/learn/getting-started/introduction-to-nodejs"
        },
        {
            "url": "https://www.typescriptlang.org/docs/"
        },
        {
            "url": "https://docs.apify.com/platform/actors"
        },
        {
            "url": "https://arxiv.org/abs/1512.03385"
        },
        {
            "url": "https://arxiv.org/abs/1409.0473"
        },
        {
            "url": "https://doi.org/10.1038/nature14539"
        },
        {
            "url": "https://pubmed.ncbi.nlm.nih.gov/23803877/"
        },
        {
            "url": "https://en.wikipedia.org/wiki/BibTeX"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/url-to-bibtex-converter").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [
        { "url": "https://arxiv.org/abs/1706.03762" },
        { "url": "https://arxiv.org/abs/1810.04805" },
        { "url": "https://arxiv.org/abs/2005.14165" },
        { "url": "https://arxiv.org/abs/2103.00020" },
        { "url": "https://arxiv.org/abs/2302.13971" },
        { "url": "https://pubmed.ncbi.nlm.nih.gov/34465844/" },
        { "url": "https://pubmed.ncbi.nlm.nih.gov/31452104/" },
        { "url": "https://pubmed.ncbi.nlm.nih.gov/32541993/" },
        { "url": "https://pubmed.ncbi.nlm.nih.gov/28445448/" },
        { "url": "https://pubmed.ncbi.nlm.nih.gov/30021884/" },
        { "url": "https://doi.org/10.1038/s41586-021-03819-2" },
        { "url": "https://doi.org/10.1126/science.169.3946.635" },
        { "url": "https://doi.org/10.1145/3292500.3330701" },
        { "url": "https://doi.org/10.1109/5.771073" },
        { "url": "https://doi.org/10.1007/BF01386390" },
        { "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript" },
        { "url": "https://docs.python.org/3/tutorial/" },
        { "url": "https://nodejs.org/en/learn/getting-started/introduction-to-nodejs" },
        { "url": "https://www.typescriptlang.org/docs/" },
        { "url": "https://docs.apify.com/platform/actors" },
        { "url": "https://arxiv.org/abs/1512.03385" },
        { "url": "https://arxiv.org/abs/1409.0473" },
        { "url": "https://doi.org/10.1038/nature14539" },
        { "url": "https://pubmed.ncbi.nlm.nih.gov/23803877/" },
        { "url": "https://en.wikipedia.org/wiki/BibTeX" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/url-to-bibtex-converter").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://arxiv.org/abs/1706.03762"
    },
    {
      "url": "https://arxiv.org/abs/1810.04805"
    },
    {
      "url": "https://arxiv.org/abs/2005.14165"
    },
    {
      "url": "https://arxiv.org/abs/2103.00020"
    },
    {
      "url": "https://arxiv.org/abs/2302.13971"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/34465844/"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/31452104/"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/32541993/"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/28445448/"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/30021884/"
    },
    {
      "url": "https://doi.org/10.1038/s41586-021-03819-2"
    },
    {
      "url": "https://doi.org/10.1126/science.169.3946.635"
    },
    {
      "url": "https://doi.org/10.1145/3292500.3330701"
    },
    {
      "url": "https://doi.org/10.1109/5.771073"
    },
    {
      "url": "https://doi.org/10.1007/BF01386390"
    },
    {
      "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript"
    },
    {
      "url": "https://docs.python.org/3/tutorial/"
    },
    {
      "url": "https://nodejs.org/en/learn/getting-started/introduction-to-nodejs"
    },
    {
      "url": "https://www.typescriptlang.org/docs/"
    },
    {
      "url": "https://docs.apify.com/platform/actors"
    },
    {
      "url": "https://arxiv.org/abs/1512.03385"
    },
    {
      "url": "https://arxiv.org/abs/1409.0473"
    },
    {
      "url": "https://doi.org/10.1038/nature14539"
    },
    {
      "url": "https://pubmed.ncbi.nlm.nih.gov/23803877/"
    },
    {
      "url": "https://en.wikipedia.org/wiki/BibTeX"
    }
  ]
}' |
apify call maximedupre/url-to-bibtex-converter --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=maximedupre/url-to-bibtex-converter",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "URL to BibTeX Converter",
        "description": "Convert article, paper, DOI, PubMed, arXiv, and web page URLs into BibTeX citations. Export citation keys, authors, identifiers, abstracts, source URLs, and metadata.",
        "version": "0.1",
        "x-build-id": "CY25NrzrZS9HpW3HH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~url-to-bibtex-converter/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-url-to-bibtex-converter",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/maximedupre~url-to-bibtex-converter/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-url-to-bibtex-converter",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/maximedupre~url-to-bibtex-converter/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-url-to-bibtex-converter",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Citation URLs",
                        "minItems": 1,
                        "maxItems": 1000,
                        "type": "array",
                        "description": "Paste arXiv, PubMed, DOI, publisher article, book, or web page URLs to convert.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "title": "URL",
                                    "type": "string",
                                    "description": "Citation source URL.",
                                    "minLength": 1,
                                    "pattern": "^https?://.+"
                                }
                            }
                        }
                    },
                    "citationKey": {
                        "title": "Custom citation key",
                        "type": "string",
                        "description": "Use one exact BibTeX key for a single submitted URL."
                    },
                    "citationKeyPrefix": {
                        "title": "Citation key prefix",
                        "type": "string",
                        "description": "Add a shared prefix to generated keys in batch runs, such as a project or thesis code."
                    },
                    "entryType": {
                        "title": "BibTeX entry type",
                        "enum": [
                            "auto",
                            "article",
                            "book",
                            "inproceedings",
                            "misc",
                            "techreport",
                            "phdthesis",
                            "mastersthesis",
                            "unpublished"
                        ],
                        "type": "string",
                        "description": "Choose Auto-detect for normal runs, or force a BibTeX type when you already know it.",
                        "default": "auto"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
