Soundza
официальныйБесплатные звуковые эффекты, музыка и эмбиент для игр, видео и приложений. Поиск по настроению, темпу, тональности или назначению, прослушивание превью и скачивание файлов полного качества, каждый с 35 полями метаданных.
Что можно делать с Soundza MCP?
-
Поиск звуков — Попросите ассистента найти звуковые эффекты, музыку или атмосферные звуки с помощью
search_sounds, используя фильтры по типу, настроению, BPM или длительности. -
Получение информации о звуке — Получите полные метаданные для конкретного звука, включая файлы предпросмотра, информацию о лицензии и URL для скачивания, через
get_sound. -
Изучение звуковых наборов — Просматривайте курируемые коллекции звуков с помощью
search_packsили просматривайте все звуки в конкретном наборе черезget_pack. -
Скачивание аудио в полном качестве — Получите готовую команду
curlи ссылку для скачивания на 15 минут для WAV-файла звука в полном качестве черезdownload_sound. -
Прослушивание предпросмотров — Слушайте MP3-превью в 128 кбит/с напрямую с CDN без использования API-кредитов, прежде чем решить скачать файл.
Размещённый MCP-сервер
npx add-mcp 'https://mcp.soundza.com/mcp/oauth'Устанавливается в Claude Code, Codex, Cursor и другие
Документация
Как подключиться
Используйте soundza из AI-ассистента или из собственного кода. Оба способа бесплатны и дают доступ к одним и тем же звукам.
В AI-ассистенте
В Claude, ChatGPT, Claude Code или любом MCP-приложении добавьте MCP-сервер soundza и один раз войдите с бесплатной учётной записью. Пошаговые инструкции для каждого — ниже.
В собственном коде
В приложениях, играх, скриптах и сборочных инструментах вызывайте REST API с бесплатным API-ключом. Получить ключ.
REST
MCP, вход
https://mcp.soundza.com/mcp/oauth
MCP, API-ключ
OpenAPI
Для агентов
MCP-сервер содержит пять инструментов: search_sounds, get_sound, search_packs, get_pack и download_sound, который возвращает ссылку на 15 минут, готовую команду curl и страницу звука.
Claude
- Нажмите Add to Claude. Claude откроется с заполненными именем и URL. Нажмите Add.
- Войдите в soundza и подтвердите. Достаточно бесплатной учётной записи.
- В чате нажмите +, откройте Connectors и включите Soundza.
Add to Claude или добавьте собственный коннектор с https://mcp.soundza.com/mcp/oauth
ChatGPT
- Откройте ChatGPT plugins и добавьте собственный MCP-сервер. Назовите его Soundza и оставьте OAuth.
- Вставьте URL ниже, затем войдите в soundza.
- В новом чате выберите Soundza в меню инструментов.
URL https://mcp.soundza.com/mcp/oauth
Пользовательские серверы зависят от вашего тарифа ChatGPT; некоторым нужно включить режим разработчика в настройках.
Claude Code
Добавьте его, затем запустите /mcp, выберите soundza и войдите в браузере.
claude mcp add --transport http soundza https://mcp.soundza.com/mcp/oauth
Предпочитаете ключ? Установите SOUNDZA_API_KEY и добавьте https://mcp.soundza.com/mcp с заголовком Authorization. На странице ключей показана эта команда с вашим ключом:
claude mcp add --transport http soundza https://mcp.soundza.com/mcp --header "Authorization: Bearer $SOUNDZA_API_KEY"
Codex, Cursor и другие агенты
Любой клиент, поддерживающий streamable HTTP. Используйте https://mcp.soundza.com/mcp/oauth, если поддерживается вход, иначе https://mcp.soundza.com/mcp с заголовком Authorization. Для Cursor добавьте это в ~/.cursor/mcp.json; ключ читается из вашего окружения, поэтому он не попадает в файлы, которые вы можете закоммитить.
{
"mcpServers": {
"soundza": {
"url": "https://mcp.soundza.com/mcp",
"headers": { "Authorization": "Bearer ${env:SOUNDZA_API_KEY}" }
}
}
}
Получить API-ключ
Используйте ключ в собственном коде. Отправляйте его как Authorization: Bearer <key>. Ключи начинаются с sz_live_. Храните его на сервере или в gitignored-файле .env, никогда — в клиентском коде.
Создать самостоятельно
Войдите и создайте ключ на странице ключей. Он показывается один раз, с заполненной MCP-командой.
Или позвольте агенту войти
Попросите вашего агента-кодера найти звуки на soundza.com. Он прочитает llms.txt, отправит вам одну ссылку для подтверждения и сохранит ключ сам.
Soundza is free, but every call needs an API key tied to a person's account. Get one with a one-click sign-in:
1. Start the sign-in. Include what the person is building, if you know it from the project: project_kind (one of game, video_tool, own_content, app, agent, music, trying, other) and project, one plain line about it. After approving, the person sees both and can change them; leave out anything you'd have to guess.
curl -s -X POST https://api.soundza.com/v1/auth/device -H "content-type: application/json" -d '{"client_name":"<your tool> on <this machine>","project_kind":"game","project":"<one line, e.g. A retro sci-fi shooter in Godot>"}'
It returns device_code, user_code, verification_uri_complete, expires_in (600 seconds) and interval (5 seconds).
2. Tell the human: "Open <verification_uri_complete> and approve code <user_code> (sign in with Google if it asks)." Nothing else is needed from them.
3. Right after telling them, poll every <interval> seconds until they approve. Run the polling loop in the foreground and wait for it; don't end your turn while the sign-in is pending (the code lasts 10 minutes).
curl -s -X POST https://api.soundza.com/v1/auth/token -H "content-type: application/json" -d '{"device_code":"<device_code>"}'
While it returns {"error":"authorization_pending"} keep polling; on "slow_down" wait the "interval" it returns. On approval it returns {"access_token":"sz_live_...","token_type":"Bearer",...} once: access_token is the API key. "expired_token" or "access_denied" means stop (start again only if the human asks).
4. Save the key as SOUNDZA_API_KEY in the project's .env and make sure .env is in .gitignore. Never commit the key or put it in a project-scope .mcp.json.
5. Optional: connect this MCP server with the key. The command reads $SOUNDZA_API_KEY from the shell, so load .env first (set -a; . ./.env; set +a). It stores the key in Claude Code's own settings (local scope), not in the project. If soundza is already added without a key, run "claude mcp remove soundza" first.
claude mcp add --transport http soundza https://mcp.soundza.com/mcp --header "Authorization: Bearer $SOUNDZA_API_KEY"
The tools load in the next session (or after /mcp). Until then, and in any tool that can't add MCP servers, use the REST API at https://api.soundza.com/v1 with the header "Authorization: Bearer $SOUNDZA_API_KEY". It does everything the MCP tools do.
A person can also create a key at https://soundza.com/developers/keys and set it the same way.
Быстрый старт
Ищите, затем скачивайте то, что используете. Сначала установите SOUNDZA_API_KEY.
curl -s "https://api.soundza.com/v1/sounds/search?type=sound_effect&q=whoosh&per_page=5" \
-H "Authorization: Bearer $SOUNDZA_API_KEY"
# download_url redirects to the file: -L follows it, -OJ saves it under its own name
curl -LOJ "https://api.soundza.com/v1/sounds/SOUND_ID/file" \
-H "Authorization: Bearer $SOUNDZA_API_KEY"
Каждый результат содержит preview_files, MP3 в 128 кбит/с, которые воспроизводятся напрямую с нашего CDN без ключа, и download_url для файла полного качества.
Эндпоинты
Каждый эндпоинт — это запрос GET по адресу https://api.soundza.com/v1. Полная спецификация — в /openapi.json.
| Эндпоинт | Что делает |
|---|---|
GET /sounds/search | Поиск по словам и фильтрам. Возвращает страницу звуков и search_id. |
GET /sounds/{id} | Один звук по id. |
GET /sounds/{id}/file | Файл полного качества, обычно WAV, выровненный по уровню с каталогом;?variant=original для нетронутого оригинала. 302-редирект на ссылку, действующую 5 минут. Опционально search_id и user. |
GET /packs | Публичные паки, лучшие первыми. Опционально q, page и per_page. |
GET /packs/{id} | Один пак, затем страница его звуков. Каждый звук называет свой пак. |
GET /removals?since= | Звуки, удалённые после указанной ISO-даты, для тех, кто хранит файлы. |
Параметры поиска
Укажите q, хотя бы один фильтр или оба. Длительности — в секундах.
| Параметр | Тип | Описание |
|---|---|---|
q | string | Слова для поиска, например «door slam» или «lofi drum loop». Опечатки прощаются. |
type | string | Что такое звук: music, sound_effect или ambience (см. Type and facts). Без учёта регистра. Поиск с q, который ничего не находит в своём типе, ищет по всем типам и сообщает об этом в relaxed_filters. |
form | string | Только музыка: track, excerpt, loop, one_shot или stem. |
parts | string | Только музыка: full_mix или single_part. Без него type=music ранжирует полные миксы первыми, затем лупы, затем отдельные части. |
vocals | string | Только музыка: none, backing или lead. |
style | string | Только звуковые эффекты: retro или cartoon. Задаётся на пак, поэтому у большинства звуков его нет; с q, который ничего не находит с ним, он отбрасывается и указывается в relaxed_filters. |
min_duration | number | Минимальная длина, в секундах. |
max_duration | number | Максимальная длина, в секундах. |
min_bpm | number | Самый медленный темп. Темп есть только у музыки. |
max_bpm | number | Самый быстрый темп. |
key | string | Музыкальная тональность, например «C», «F# minor» или «Bbm». Совпадает только с теми тональностями, которые показывают звуки: указанными источником или человеком, либо определёнными с высокой уверенностью. |
chord | string | Аккорд, который играет одноаккордный семпл, например «Am», «C#m7» или «Fmaj7». |
note | string | Нота, которую играет питчед-семпл: «D3» для этой октавы (C3 — средняя до), или «D» для любой октавы. |
mood | list | Слова настроения через запятую; звуки, совпадающие с любым из них, возвращаются, и больше совпадений — выше ранг. Одно из: airy, heavy, metallic, bright, dark, punchy, soft, warm, glitchy, organic, cinematic, cartoony, retro. |
good_for | list | Задачи через запятую, под которые должен подходить звук. Только ранжирование: подходящие звуки ранжируются выше, ничего не отфильтровывается. Одно из: transition, reveal, build_up, impact_on_beat, title_or_logo, notification, ui_click, menu, game_pickup, game_hit, game_power_up, footsteps, background_bed, intro, outro. |
fit_seconds | number | Длина, которую звук должен заполнить, например 20 для 20-секундной рекламы. Ранжирует звуки, которые могут её заполнить (трек не короче этой длины или бесшовный луп), и добавляет подсказку о соответствии каждому результату. Ничего не отфильтровывает. |
pack | string | id или slug пака: только звуки этого пака. |
loop_seamless | boolean | true: только звуки, которые бесшовно зацикливаются, по данным аудио (конец переходит в начало без щелчка или скачка). Для игровой музыки и эмбиент-подложек, повторяющихся под сценой. |
category | string | Категория верхнего уровня Universal Category System («CROWDS») или CatID («CRWDCheer»). Звуковые эффекты и эмбиент. |
page | integer | Номер страницы, начиная с 1. |
per_page | integer | Результатов на странице: по умолчанию 15, максимум 50. Результаты останавливаются на 500 на запрос. |
Ответ
Страница результатов со ссылкой на следующую страницу. bpm и key описывают музыку; creator равен null, когда у звука нет публичного создателя.
Файлы выровнены по уровню, поэтому звуки звучат вместе без ручной подстройки: одно усиление на звук, без компрессии, пики на уровне −1 dBTP или ниже. Эмбиент стремится к −20 LUFS, музыка, подложки и длинные лупы — к −16, всё остальное — к −13 на самых громких 400 мс. lufs, true_peak_db и loudness описывают оригинал; gain_db — это то, что добавляет к нему файл по умолчанию. Добавьте ?variant=original к файловому маршруту для оригинала в том виде, в котором он был загружен.
{
"page": 1,
"per_page": 5,
"total_results": 38,
"next_page": "https://api.soundza.com/v1/sounds/search?q=whoosh&type=SOUND_EFFECT&per_page=5&page=2",
"search_id": "x7k2m9q4r1t8v3w6y0z5a2b4",
"sounds": [
{
"id": "cm9w2k4e30001",
"url": "https://soundza.com/sounds/fast-air-whoosh",
"title": "Fast Air Whoosh",
"description": "A quick, bright air whoosh that sweeps left to right.",
"type": "sound_effect",
"form": null,
"parts": null,
"vocals": null,
"style": null,
"good_for": ["transition"],
"duration": 0.84,
"bpm": null,
"key": null,
"chord": null,
"note": null,
"mood": ["airy", "bright"],
"tags": ["whoosh", "swipe", "air", "airy", "bright"],
"sync_ms": 310,
"lufs": -19.4,
"true_peak_db": -6.1,
"loudness": { "value": -18.2, "basis": "momentary_max" },
"gain_db": 5.1,
"loop_seamless": null,
"file_type": "audio/wav",
"file_extension": "wav",
"sample_rate": 48000,
"bit_depth": 24,
"channels": 2,
"size_bytes": 322604,
"category": { "id": "WHSH", "label": "Swooshes › Whoosh" },
"pack": {
"id": "cm8p1x7a20004",
"name": "Air and Motion",
"slug": "air-and-motion",
"sound_count": 42,
"url": "https://soundza.com/packs/air-and-motion"
},
"creator": null,
"preview_files": [
{ "type": "audio/mpeg", "bitrate": 128, "link": "https://media.soundza.com/public/previews/4fJ9aQx2LmP0sT7vKc1Rb8Ze.mp3" }
],
"download_url": "https://api.soundza.com/v1/sounds/cm9w2k4e30001/file",
"license": { "name": "Soundza Standard License", "url": "https://soundza.com/license" },
"attribution": "\"Fast Air Whoosh\" on Soundza (https://soundza.com/sounds/fast-air-whoosh)"
}
]
}
Тип и факты
type говорит, что такое звук. Сначала фильтруйте по типу, затем по известным фактам, а остальное помещайте в q.
| type | Что относится | Факты |
|---|---|---|
music | Треки, отрывки, лупы, одноаккордные семплы, стемы, джинглы, вокальные чопы, включая игровую музыку. | form (track, excerpt, loop, one_shot, stem), parts (full_mix, single_part), vocals (none, backing, lead), bpm, key, note, chord |
sound_effect | Свисты, удары, фоли, UI- и игровые звуки, голоса как эффекты. | category (UCS), style (retro, cartoon; задаётся на пак) |
ambience | Места, комнатный тон и шумовые подложки. | category (UCS) |
«Корпоративная фоновая музыка без вокала» — это type=music&vocals=none&q=corporate. С type=music полные миксы идут первыми, затем лупы, затем отдельные части, если вы не задали parts. good_for поднимает звуки, подходящие под задачу (transition, ui_click, background_bed …), в результатах, ничего не отфильтровывая. Поиск с q, который ничего не находит в своём типе, ищет по всем типам и перечисляет type в relaxed_filters.
Лимиты
Бесплатные ключи получают:
- 60 поисков в минуту
- 250 скачиваний в час
- 350 скачиваний в день
Каждый ответ включает эти заголовки. 429 также включает Retry-After в секундах:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-ResetX-RateLimit-Policy
Все ключи одной учётной записи разделяют эти лимиты. Прослушивайте звуки через их preview_files, которые бесплатны и не учитываются, и скачивайте только те звуки, которые используете.
Скачиванием считаются только разные звуки, поэтому повторное получение того же звука в течение 24 часов бесплатно. Общее количество загрузок файлов ограничено удвоенными лимитами скачивания. Сохраняйте каждый файл один раз и переиспользуйте его по id звука. Поиск одного звука или пака имеет отдельный лимит, в пять раз превышающий лимит поиска.
Делаете приложение с выбором звуков? Пожалуйста: бесплатного ключа хватит на небольшое приложение с несколькими пользователями в день. Когда появится реальный трафик, запросите более высокие лимиты на странице ключей и немного расскажите о проекте, или напишите на admin@soundza.com. Мы ответим по электронной почте.
Запросить более высокие лимиты
Указание авторства
Всё полностью бесплатно. Единственное, о чём мы просим, — указать soundza.com (и/или оригинального создателя звука, если применимо) там, где это уместно для вашего проекта. Желательно добавьте ссылку на soundza.com где-нибудь на вашем сайте/в блоге/на странице itch (например, «Спасибо soundza.com за бесплатные звуки»). Если у вас нет сайта, мы будем рады упоминанию в соцсетях или в описании видео на YouTube и т. п. Помогите распространить информацию!
Ниже несколько примеров. Мы гибки в том, как вы указываете нас, но просим сделать это так, чтобы это естественно вписывалось в ваш проект.
| Что вы делаете | Как указать авторство |
|---|---|
| Приложение или инструмент с выбором звуков | Powered by soundza в выборе звуков, плюс ссылка на soundza.com в футере сайта, на странице «О нас», в блоге или где-то ещё, где это уместно. |
| Игру, даже небольшую | Где бы вы её ни публиковали (пост на Reddit или Discord, X, девлог или сайт, itch.io или Steam), краткая благодарность soundza.com со ссылкой, где можно. |
| Видео | Sound effects: soundza.com в описании YouTube. В TikTok или Instagram отметьте @soundza_audio, если можете. |
| Бота, агента или open-source-инструмент | Строка в вашем README, справочном тексте или на странице. |
| Что-то только для себя | Ничего не нужно. |
Хотите использовать наш логотип? Пожалуйста, показывайте его вместе со ссылкой: полный логотип (PNG) или только знак (SVG). Только не используйте его как иконку вашего приложения.
Сделали что-то с soundza? Нам будет приятно увидеть. Пишите на admin@soundza.com или отмечайте @soundza_audio. Мы репостим интересные проекты.
Ошибки
Ошибки — это JSON: {"error": {"code", "message", "details"?}}.
| Статус | Код | Значение |
|---|---|---|
| 400 | invalid_request | Неверный параметр. details перечисляет каждый из них. |
| 401 | missing_key | Нет заголовка Authorization: Bearer. |
| 401 | invalid_key | Ключ не существует. |
| 401 | revoked_key | Ключ был отозван. |
| 404 | not_found | Нет публичного звука с таким id. |
| 429 | rate_limited | Достигнут лимит. Подождите Retry-After секунд. |
| 500 | server_error | Что-то пошло не так на нашей стороне. Повторите попытку в ближайшее время. |
Лицензирование
Каждый звук распространяется по Soundza Standard License, указанной в поле license: без роялти для личных и коммерческих проектов, без обязательного указания авторства для самих звуков (см. giving credit — что мы просим взамен). Мы тщательно проверяем звуки, но предоставляем их как есть, без гарантии, что звук свободен от претензий третьих лиц. Полные условия указаны в лицензии.
Рекомендации
- Как только люди за пределами вашей команды увидят, что вы создали, добавьте ссылку на soundza.com подходящим способом: «Powered by soundza» рядом с вашим выбором звуков плюс ссылка на вашем сайте, благодарность там, где вы делитесь своей игрой, или строка в описании видео. См. soundza.com/developers#credit.
- Запрашивайте
download_urlзвука, когда он добавляется в проект, сохраняйте файл один раз и используйте его повторно поidзвука. - Превью предназначены для прослушивания. В готовой работе используйте скачанные файлы.
- Не копируйте основную функциональность Soundza и не создавайте конкурирующую библиотеку звуков или API.
- Бесплатный ключ может хранить до 500 скачанных звуков. Удаляйте звуки, указанные в
GET /v1/removals, и проверяйте это не реже раза в месяц. - Соблюдайте лимиты запросов и обращайтесь, если нужно больше. Мы можем приостановить или прекратить доступ к API для любого пользователя в любое время по любой причине.
Использование API регулируется Terms of Service и License.
Soundza picker
Выбор звуков для вашего продукта в трёх файлах: два серверных маршрута, которые сохраняют ваш ключ в тайне, и компонент с чипами, превью и ссылкой на авторство. Настройте стиль под ваше приложение.
// app/api/sounds/route.ts: search, with your key kept on the server
export async function GET(req: Request) {
const params = new URL(req.url).searchParams;
const res = await fetch(\`https://api.soundza.com/v1/sounds/search?${params}\`, {
headers: { Authorization: \`Bearer ${process.env.SOUNDZA_API_KEY}\` },
});
return new Response(res.body, { status: res.status, headers: { "Content-Type": "application/json" } });
}
// app/api/sounds/[id]/file/route.ts: call it from your server when a user adds a sound
export async function GET(req: Request, { params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
const query = new URL(req.url).searchParams; // search_id, and your own user id as user
const res = await fetch(\`https://api.soundza.com/v1/sounds/${encodeURIComponent(id)}/file?${query}\`, {
headers: { Authorization: \`Bearer ${process.env.SOUNDZA_API_KEY}\` },
redirect: "manual",
});
const location = res.headers.get("location");
return location ? Response.redirect(location, 302) : new Response(res.body, { status: res.status });
}
Когда пользователь добавляет звук, запросите маршрут файла с вашего сервера и сохраните файл в собственное хранилище. Это учитывается как скачивание. Маршрут перенаправляет на подписанную ссылку, которая действует 5 минут и не может быть прочитана из браузера на другом сайте, поэтому не запрашивайте её на стороне клиента и не сохраняйте ссылку. Передавайте свой идентификатор пользователя как user, если хотите получать отчёты по пользователям.
FAQ
Бесплатно ли API?
Да. API и ключи бесплатны. Взамен мы будем рады ссылке на soundza там, где это уместно для вашего продукта.
Нужно ли указывать soundza?
Мы просим об этом, когда люди за пределами вашей команды видят, что вы создали, в любой подходящей форме: ссылка на вашем сайте, странице магазина или в описании видео. Ничего не нужно, пока вы разрабатываете или тестируете, или для личных проектов.
Что считается указанием авторства?
Ссылка на soundza.com, которую люди могут увидеть. Для приложения — Powered by soundza рядом с выбором звуков плюс ссылка в футере сайта, на странице «О нас», в блоге или другом подходящем месте. Для игры — благодарность там, где вы делитесь ею: пост на Reddit или Discord, девлог или сайт, страница на itch.io или Steam. Для видео — Sound effects: soundza.com в описании. Упоминание на X, Discord или YouTube тоже приветствуется.
Будете ли вы делиться тем, что я создал?
Мы будем рады узнать, что вы создаёте. Напишите на admin@soundza.com или отметьте @soundza_audio и расскажите, что вы сделали. Мы репостим классные проекты, созданные с soundza.
Можно ли использовать логотип soundza?
Да, мы будем рады, если вы покажете его вместе со ссылкой «Powered by soundza», хотя это необязательно. Пожалуйста, не используйте его как иконку приложения. Скачайте полный логотип (soundza.com/logo-wordmark.png) или только знак (soundza.com/logo.svg).
Какие лимиты?
Бесплатные ключи получают 60 поисков в минуту, 250 скачиваний в час и 350 в день, общие для всех ключей вашего аккаунта. Превью не учитываются. Каждый ответ содержит заголовки X-RateLimit-*.
Как получить более высокие лимиты?
Бесплатных лимитов достаточно для создания игры, монтажа видео или небольшого приложения с выбором звуков. Если вы встраиваете выбор звуков в приложение с реальным трафиком, используйте «Request higher limits» на странице ключей и расскажите немного о проекте, или напишите на admin@soundza.com с префиксом вашего ключа и описанием того, что вы создаёте. Мы ответим по электронной почте.
Можно ли использовать звуки в коммерческих проектах?
Да. Каждый звук без роялти для личных и коммерческих проектов по Soundza Standard License, и включение звука в игру или приложение, которое вы создаёте, допустимо.
Можно ли хранить файлы?
Да. Сохраняйте каждый файл один раз и используйте его повторно по id звука. Бесплатный ключ может хранить до 500 скачанных звуков. Не сохраняйте подписанную ссылку, на которую перенаправляет download_url; она действует 5 минут.
Что если звук удалён?
Вызывайте GET /v1/removals?since=<date> время от времени (не реже раза в месяц) и удаляйте все звуки, которые он перечисляет.
Можно ли использовать звуки для обучения ИИ?
Нет. Звуки нельзя использовать для обучения, дообучения или создания ИИ или модели машинного обучения.
Можно ли создать библиотеку звуков на основе API?
Нет. Пожалуйста, не распространяйте звуки как отдельные файлы или семпл-паки и не создавайте конкурирующую библиотеку звуков или API.
REST или MCP?
Оба используют один и тот же ключ, лимиты и каталог. Используйте REST из своего кода, а MCP (mcp.soundza.com/mcp) — чтобы агент вроде Claude Code или Cursor мог искать и скачивать за вас.
Может ли мой агент для кода получить ключ самостоятельно?
Да. Попросите его найти звуки на soundza.com. Он читает llms.txt, отправляет вам одну ссылку для подтверждения и сохраняет ключ.