# TikTok User Search Scraper (`crawl_craft/tiktok-user-search-scraper`) Actor

Finding the right TikTok creators by hand is slow. Search any keyword and get full profiles in bulk: username, bio, bio link, followers, likes, videos, verified, TikTok Shop and live status. Built for influencer discovery and lead gen. No login.

- **URL**: https://apify.com/crawl_craft/tiktok-user-search-scraper.md
- **Developed by:** [Crawl Craft](https://apify.com/crawl_craft) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 results

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

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What is TikTok User Search Scraper?

TikTok User Search Scraper is an Apify Actor that turns any keyword into a list of public TikTok profiles. Type a niche, brand or name, and the Actor returns username, bio, bio link, followers, likes, videos, verification and TikTok Shop status for every account found, plus live status when profile enrichment is on. No TikTok login is needed.

- **Keyword to profiles in bulk:** use it as a TikTok profile scraper for many keywords or TikTok search links in one run, with one row per account.
- **Full profile details:** exact following, friends and likes-given counts, bio link, shop and commerce info, privacy and duet/stitch/comment settings, and story status.
- **Account creation date and language:** optional extra fields for deeper creator research.
- **Ready to export:** download the dataset as JSON, CSV or Excel.
- **No login needed:** you can run a TikTok user search without login, straight from the Apify Console.
- **Pay per profile:** $5 per 1,000 results on the Free plan, less on paid plans, and failed searches are not charged.

To start, click **Try for free**, enter a keyword such as `cats` and press **Start**.

### What data can you extract from TikTok user search?

As a TikTok user profile scraper, the Actor returns one record per profile found. The TikTok profile data below uses the exact field names of the dataset, and you can export it as JSON, CSV or Excel. Some fields can be empty (null) when TikTok does not provide a value; the notes in the table explain the cases.

| Field | Description | Example |
|---|---|---|
| `id` | TikTok's numeric account ID. | `7158366277701010438` |
| `name` | The @handle of the account. | `catso14147` |
| `profileUrl` | Link to the TikTok profile (the search link on error rows). | `https://www.tiktok.com/@catso14147` |
| `nickName` | Display name of the account. | `world wide cats` |
| `verified` | True when TikTok shows the blue verification badge. | `false` |
| `signature` | Profile bio text. | `Cats from all over the world` |
| `bioLink` | Website link shown in the bio, if any. | `null` |
| `avatar` | Profile picture (720 px). | `https://p16-common-sign.tiktokcdn.com/...720:720.jpeg` |
| `commerceUserInfo` | Business / commerce account details as TikTok reports them. | `{"commerceUser": false}` |
| `privateAccount` | True for private accounts. | `false` |
| `roomId` | ID of the running live stream, empty when the account is not live. | `""` |
| `ttSeller` | True when the account sells through TikTok Shop. | `false` |
| `createTime` | Account creation time in unix seconds. | `1666692899` |
| `hasActiveStory` | True when the account has a story online right now. | `false` |
| `following` | Accounts this profile follows. | `0` |
| `friends` | Mutual follows. | `0` |
| `fans` | Number of followers. | `2730918` |
| `heart` | Total likes (hearts) on the account's videos. | `15197373` |
| `video` | Number of public videos. | `410` |
| `digg` | Videos this account has liked. | `0` |
| `followDatasetUrl` | Always null in this Actor (kept for a stable output shape). | `null` |
| `originalAvatarUrl` | Profile picture URL as served by TikTok. | `https://p16-common-sign.tiktokcdn.com/...720:720.jpeg` |
| `region` | Creator region. TikTok does not show it to logged-out visitors, so it is null. | `null` |
| `isUnderAge18` | False for every profile with full details; null when the details could not be loaded. | `false` |
| `user` | The full TikTok user object: IDs, avatars, settings and flags. | `{"uniqueId": "catso14147"}` |
| `stats` | Following, followers, likes, videos and likes given. | `{"followerCount": 2730918}` |
| `scrapedAt` | When the record was created (ISO 8601, UTC). | `2026-10-08T16:21:58.822Z` |
| `secUid` | TikTok's stable secure account ID. | `MS4wLjABAAAA...` |
| `avatarThumb` | 100 px profile picture. | `https://p16-common-sign.tiktokcdn.com/...100:100.jpeg` |
| `avatarLarger` | 1080 px profile picture. | `https://p16-common-sign.tiktokcdn.com/...1080:1080.jpeg` |
| `customVerify` | Custom verification text shown by TikTok, if any. | `null` |
| `enterpriseVerifyReason` | Business verification reason, if any. | `null` |
| `followStatus` | Follow status reported in search (0 for logged-out visitors). | `0` |
| `isLive` | True when the account was live while scraping. | `false` |
| `createTimeISO` | Account creation time (ISO 8601, UTC). | `2022-10-25T10:14:59.000Z` |
| `avgHeartsPerVideo` | Likes received divided by videos. | `37066.76` |
| `language` | Profile language code. | `ar` |
| `isOrganization` | 1 for organization accounts, 0 otherwise. | `0` |
| `searchQuery` | The keyword that found this profile. | `cats` |
| `input` | Same as searchQuery, for mapping results back to your input. | `cats` |
| `searchRank` | Position in TikTok's results for the query (1 = first). | `1` |
| `searchCursor` | Result position reached after the page that held this profile. | `10` |
| `searchFollowerCount` | Follower count as shown in the search results. | `2700000` |
| `searchTotalFavorited` | Likes count as shown in the search results. | `15197373` |
| `profileEnriched` | True when profile details beyond the search result were loaded. | `true` |
| `profileSources` | Detail source labels for this profile. | `["api", "page"]` |
| `profileError` | Why some profile details are missing, if they are. | `null` |
| `processor` | Name and version of the scraper that produced the record. | `tiktok-user-search-scraper/1.0` |
| `platform` | Always tiktok. | `tiktok` |
| `error` | Error message on rows for queries that returned nothing. | `null` |
| `errorCode` | NO_RESULTS, SEARCH_FAILED or EXCEPTION on error rows. | `null` |
| `url` | TikTok search link of the query (error rows only). | `https://www.tiktok.com/search/user?q=cats` |

The dataset also ships ready-made views: Profiles overview, Engagement stats, Account details, Profile settings, Search results and Errors.

### Use cases for TikTok profile data

- **TikTok creator discovery:** search a niche keyword, then sort by `fans`, `heart` and `avgHeartsPerVideo` to shortlist creators.
- **TikTok influencer search:** compare the `fans` and `video` counts of the accounts a niche keyword returns.
- **Influencer sheets:** build a TikTok influencer finder sheet with `name`, `profileUrl`, `fans` and `signature` for each account.
- **Lead generation:** collect `bioLink` and `signature` for a TikTok lead generation list of accounts that publish a website in their bio.
- **Bio links:** use the Actor as a TikTok bio link scraper to collect the websites accounts publish in `bioLink`.
- **TikTok Shop research:** filter on `ttSeller` and `commerceUserInfo` to see commerce accounts in a category.
- **Creator benchmarking:** compare `fans`, `video`, `following` and `friends` across a niche for TikTok creator research.
- **Audience analytics:** use `heart`, `digg` and `avgHeartsPerVideo` for TikTok creator analytics.
- **Brand monitoring:** search your brand name to collect TikTok user data for matching accounts. Filter on `verified` to build a TikTok verified accounts list.
- **Outreach lists:** export profile links, bios and bio links to build a TikTok influencer outreach list in a spreadsheet.
- **Live creator tracking:** use `isLive` and `roomId` to see which accounts were live when the run happened.

### How to scrape TikTok profiles by keyword

A TikTok account search needs only a keyword and a profile count.

1. Create a free Apify account.
2. Open TikTok User Search Scraper.
3. Add keywords or TikTok user-search links in **TikTok search links or keywords** and set **Profiles per query**.
4. Choose whether to collect full profile details and the account creation date and language.
5. Click **Start** and wait for the run to finish.
6. Download the dataset as JSON, CSV or Excel.

#### How to find TikTok creators in a niche

Enter your niche as a keyword, for example `fitness coach`, in `urls` or `searchQueries`. As a TikTok creator search scraper, the Actor returns the accounts TikTok lists for that search, in TikTok's result order, with `searchRank` showing each position. That saves you from scrolling the app, and it lets you find TikTok influencers by keyword in one run.

#### How to find small TikTok creators

Search a narrow, specific keyword and sort the dataset by `fans` ascending. Because every row has `fans`, `heart` and `video`, the results from this TikTok creator scraper make small accounts with active content stand out. You can also use `avgHeartsPerVideo` to spot small creators whose videos get strong likes.

#### How to find TikTok Shop creators

Run your product keyword and filter rows where `ttSeller` is `true`. Rows also carry `commerceUserInfo`, so you can see how TikTok reports commerce details for each account. The same flow lets you find TikTok Shop sellers and creators in one export.

#### How to find TikTok live creators

Search your keyword and filter rows where `isLive` is `true`. `isLive` reflects whether the account was live while the profile was collected, and `roomId` holds the live stream ID when it is. Turn on **Account creation date and language** to get live status.

#### How to export TikTok profiles to CSV or Excel

Open the finished run, go to the **Storage** tab and choose CSV or Excel under export. You can export TikTok profiles to Excel or CSV in one click, using the same field names as the table above.

### How much does it cost to scrape TikTok profiles?

TikTok User Search Scraper uses tiered pay-per-event pricing: **$5 per 1,000 results on the Free plan, and less on paid plans**. One profile row is one `main_result` event. On the Free plan, a run that saves 1,000 profiles costs $5. Rows for queries that returned no profiles or could not be searched are not charged. Each run also has a small start charge of $0.00005 (the Actor Start event).

| Apify plan | Price per 1,000 results |
|---|---|
| Free | $5 |
| Bronze | $4.5 |
| Silver | $4 |
| Gold / Platinum / Diamond | $3.5 |

Free-plan users get up to 10 profiles per run, and paid Apify plans have no per-run profile cap. See the Pricing tab for current rates.

### ⬇️ Input

Provide at least one keyword or TikTok search link; if both lists are empty, TikTok User Search Scraper searches for `cats`. You can paste TikTok user-search links, any TikTok search link with a `q=` keyword, profile links (a profile link searches for that handle, which works as a quick TikTok user lookup) or plain keywords.

![TikTok User Search Scraper input form with keywords and profiles per query](IMAGE_URL_PLACEHOLDER "tiktok-user-search-scraper-input-form.png")

See the Input tab for every option. This is an example input, built from the input form defaults:

```json
{
  "urls": ["https://www.tiktok.com/search/user?q=cats"],
  "maxProfilesPerQuery": 10,
  "enrichProfiles": true,
  "enrichProfilePages": true,
  "dedupeAcrossQueries": false,
  "concurrency": 5,
  "max_retries": 3,
  "request_delay": 0,
  "proxyConfiguration": { "useApifyProxy": false }
}
```

- `searchQueries`: extra keywords, combined with the links above.
- `maxProfilesPerQuery`: the maximum profiles per query (minimum 1). TikTok may return fewer for rare keywords.
- `enrichProfiles`: works like a TikTok user info scraper by adding exact counts, bio link, shop and commerce info, privacy and duet/stitch/comment settings and story status.
- `enrichProfilePages`: adds account creation date, language, live status and organization flag. This is slower, so turn it off when you only need counts and bios.
- `dedupeAcrossQueries`: keeps an account only once, under the first query that returned it.
- `concurrency` (1-20), `max_retries` (1-10) and `request_delay` (0-10 seconds): optional speed and reliability tuning.

💡 Keep `maxProfilesPerQuery` low for a first test run.

### ⬆️ Output

The scraped results are shown as a dataset in the **Storage** tab. The table view is for convenience and doesn't show **all the fields**. Results come in query order, then TikTok's result order. Every profile row from a TikTok profile search carries `searchQuery` and `searchRank`.

![TikTok User Search Scraper output table with followers, likes and videos](IMAGE_URL_PLACEHOLDER "tiktok-user-search-scraper-output-table.png")

Export formats: JSON, CSV and Excel. When a run stores at least one row, all rows are also saved as one combined JSON file.

This is an example output for the query `cats`, showing selected fields with values from the dataset schema examples (not a captured run):

```json
{
  "id": "7158366277701010438",
  "name": "catso14147",
  "profileUrl": "https://www.tiktok.com/@catso14147",
  "nickName": "world wide cats",
  "verified": false,
  "signature": "Cats from all over the world",
  "bioLink": null,
  "privateAccount": false,
  "ttSeller": false,
  "createTime": 1666692899,
  "createTimeISO": "2022-10-25T10:14:59.000Z",
  "fans": 2730918,
  "heart": 15197373,
  "video": 410,
  "following": 0,
  "friends": 0,
  "digg": 0,
  "avgHeartsPerVideo": 37066.76,
  "language": "ar",
  "isLive": false,
  "searchQuery": "cats",
  "searchRank": 1,
  "profileEnriched": true,
  "scrapedAt": "2026-10-08T16:21:58.822Z",
  "platform": "tiktok"
}
```

### Limitations and error handling

- **Result counts:** TikTok may return fewer profiles than `maxProfilesPerQuery` for rare keywords. Run a small test to confirm.
- **Free plan:** up to 10 profiles per run.
- **Public data only:** private accounts can appear in results with `privateAccount` set to `true`, but only public profile information is available.
- **Region:** `region` is null because TikTok does not show it to logged-out visitors.
- **Invalid entries:** entries that are not a TikTok link or a keyword are skipped. If none of your entries is valid, the run stops with an input message.
- **Slower detail fields:** collecting account creation date and language takes longer than the basic search fields.

#### Error rows

A query that returns no profiles, or cannot be searched, produces one error row with `errorCode` set. The Errors view lists them, and they are not charged.

| Code | Meaning | What to do |
|---|---|---|
| `NO_RESULTS` | The query returned no profiles. | Try another keyword. |
| `SEARCH_FAILED` | TikTok did not return results for the query. | Try again later or pick a proxy in the Proxy configuration. |
| `EXCEPTION` | The query stopped unexpectedly. | Run it again; contact us if it repeats. |

### Integrating TikTok User Search Scraper with other apps

You can start the Apify TikTok User Search Scraper from the Apify API, schedule it, and connect finished runs to other tools through Apify webhooks and integrations. See the API tab for ready-made code snippets in JavaScript, Python and the CLI, and the Apify integrations documentation for connecting results to spreadsheets and automation tools. Started through the API, it works as a TikTok user search API for keyword-driven workflows.

### Other TikTok scrapers by crawl_craft

If you need videos or transcripts rather than accounts, pair this TikTok users scraper with the Actors below.

| Actor | What it extracts | When to use it |
|---|---|---|
| [TikTok Video Scraper](https://apify.com/crawl_craft/tiktok-video-scraper) | Captions, hashtags, views, likes, comments, shares, author and music data, plus video downloads and transcripts from video URLs. | Use it once you know which videos to analyze, after finding creators here. |
| [TikTok Transcript Scraper](https://apify.com/crawl_craft/tiktok-transcript-scraper) | Timestamped transcripts, subtitle languages, speech-to-text and translation, plus video and author data. | Use it when you need what creators say in their videos, not who they are. |

### Is it legal to scrape TikTok?

As a TikTok data extraction tool, the Actor only extracts data that users have made publicly available on TikTok and does not extract private data such as email addresses or location. Results may still contain personal data, so only collect it with a legitimate reason, consider GDPR (Regulation (EU) 2016/679) and TikTok's terms, and consult a lawyer if you are unsure. Read Apify's [guide on whether web scraping is legal](https://blog.apify.com/is-web-scraping-legal/) and its post on [ethical web scraping](https://blog.apify.com/what-is-ethical-web-scraping-and-how-do-you-do-it/).

### ❓ FAQ

#### How much does TikTok User Search Scraper cost?

It costs $5 per 1,000 results on the Free plan and less on paid plans, on pay-per-event pricing with one event per profile. Free-plan users get up to 10 profiles per run. See the Pricing tab for current rates.

#### Do I need a TikTok account or API key?

No. You can scrape TikTok without login or an API key, using keywords or TikTok search links alone.

#### How many profiles can I get per keyword?

Set `maxProfilesPerQuery` to the number you want. TikTok may return fewer for rare keywords, and free-plan runs stop at 10 profiles.

#### Can I scrape private TikTok data?

No. Only public profile information is collected. Private accounts are flagged with `privateAccount`.

#### Can I get follower counts, bio links and verified status?

Yes. Each profile includes `fans`, `signature`, `bioLink` and `verified`, so a TikTok followers count scraper run gives you follower numbers, bios, website links and verification for every account.

#### Can I find niche accounts by keyword?

Yes. Any query that works in TikTok's own user search works here, including names, niches and brands, so you can find TikTok niche accounts by keyword in one run.

#### Can I use it with the API, Python or Node.js?

Yes. Start runs and read the dataset through the Apify API, with ready-made snippets in the API tab. The dataset then works as a TikTok profile API for your own tools.

#### Do I need proxies?

Proxy settings are optional. If you are unsure, leave the default.

#### What is the difference between this and a TikTok video scraper?

This Actor is a TikTok user scraper for accounts found by keyword. For video-level data, use [TikTok Video Scraper](https://apify.com/crawl_craft/tiktok-video-scraper).

#### Can I get transcripts of what creators say?

Not from this Actor. Use [TikTok Transcript Scraper](https://apify.com/crawl_craft/tiktok-transcript-scraper) for transcripts.

### Your feedback

Found a bug or want a new field? Open an issue in the Issues tab. For a custom solution, email hello.crawlcraft@gmail.com.

# Actor input Schema

## `urls` (type: `array`):

One entry per line. Paste TikTok user-search links (https://www.tiktok.com/search/user?q=cats), any TikTok search link with a q= keyword, profile links (https://www.tiktok.com/@nike searches for "nike") or simply type keywords. Use Bulk edit to paste a whole list at once.

## `searchQueries` (type: `array`):

Your keyword will apply to profiles. Any query that works in TikTok's own user search works here (names, niches, brands, hashtags without #). Combined with the links above; when both lists are empty the Actor searches for "cats".

## `maxProfilesPerQuery` (type: `integer`):

The maximum number of profiles to extract per query. TikTok may return fewer for rare keywords. Free plan users get up to 10 profiles per run; paid Apify plans have no limit.

## `enrichProfiles` (type: `boolean`):

Adds exact counts (following, friends, likes given), the bio link, TikTok Shop and commerce info, privacy and duet/stitch/comment settings and story status to every profile. Turn this and the option below off for a fast run with the basic search fields only.

## `enrichProfilePages` (type: `boolean`):

Also collects the account creation date, the profile language, live status and organization flag. This is slower; turn it off when you only need counts and bios.

## `dedupeAcrossQueries` (type: `boolean`):

When several keywords return the same account, keep it only once (under the first query that returned it). Off = every query gets its full list.

## `concurrency` (type: `integer`):

How many searches and profile-detail requests run at the same time.

## `max_retries` (type: `integer`):

How many attempts a request gets before it is given up.

## `request_delay` (type: `number`):

Optional pause before each request. 0 = as fast as possible.

## `proxyConfiguration` (type: `object`):

Optional. Choose the proxy settings for your run. Leave the default if you are unsure.

## Actor input object example

```json
{
  "urls": [
    "https://www.tiktok.com/search/user?q=cats"
  ],
  "maxProfilesPerQuery": 10,
  "enrichProfiles": true,
  "enrichProfilePages": true,
  "dedupeAcrossQueries": false,
  "concurrency": 5,
  "max_retries": 3,
  "request_delay": 0,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Main profile fields: username, nickname, bio, followers, likes, videos, verification and links.

## `engagement` (type: `string`):

Followers, following, friends, likes received and given, videos and average likes per video.

## `account` (type: `string`):

IDs, creation date, language, organization, shop, commerce and live flags.

## `settings` (type: `string`):

Comment, duet, stitch, download and visibility settings.

## `search` (type: `string`):

Query, rank and completeness of every record.

## `errors` (type: `string`):

Queries that returned no profiles or could not be searched.

## `allData` (type: `string`):

Every field of every record, including the nested user and stats objects.

## `outputJson` (type: `string`):

Every row of the run (profiles and error rows) in one JSON file, saved when the run stored at least one row.

# 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 = {
    "urls": [
        "https://www.tiktok.com/search/user?q=cats"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawl_craft/tiktok-user-search-scraper").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 = {
    "urls": ["https://www.tiktok.com/search/user?q=cats"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("crawl_craft/tiktok-user-search-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.tiktok.com/search/user?q=cats"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call crawl_craft/tiktok-user-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,crawl_craft/tiktok-user-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/tAotgFlgG7rTwSu86/builds/7w22K0fIXQCxBKeiF/openapi.json
