---
name: awesome-tools
description: Submit a software tool to Awesome Tools using the JSON API or browser WebMCP tools, and complete the free backlink path or review the single paid listing option.
---

# Submit a tool to Awesome Tools

Use this skill when your requester wants their software listed on Awesome Tools. Confirm that they authorize you to submit the website and use their contact email. A submission saves a request and queues requester and team emails. It is not immediate publication.

## Choose a listing path

- Free: keep a visible, regular link to https://awesome.tools on a public, indexable page of the submitted website. Verify that page after submitting. Listing review follows verification.
- Paid: 49 USD, one-time, reduced from 99 USD (save 50 USD), plus any applicable tax. It includes a permanent directory listing, a do-follow link, and featured directory placement. Review the checkout on the returned listing page. The submission API does not charge or complete a payment.

Only submit, publish a backlink, or pay when the requester has authorized that action. A budget brief is not permission to buy a listing or another service.

## Gather the submission

Required fields:

| Field | What to provide |
| --- | --- |
| name | Actual software or product name; up to 200 characters. |
| websiteUrl | Public product website on a custom domain; up to 2048 characters. Bare domains and HTTP URLs are normalized to HTTPS. Development and preview hosting domains are rejected. |
| submitterName | Requester or representative name; up to 120 characters. |
| submitterEmail | Real contact email the requester has authorized you to use; up to 254 characters. |

Optional fields:

| Field | Limit and purpose |
| --- | --- |
| submitterNote | Up to 200 characters about the submission; defaults to an empty string. |
| botBudget | Up to 200 characters: amount, currency, and whether paid options are allowed. |
| botGoals | Up to 1000 characters: audience, discoverability goals, and priorities. |
| botListingPlans | Up to 1000 characters: other directories or listing services being considered. |
| botInstructions | Up to 2000 characters: useful context and instructions for our team. |
| newsletterOptIn | Defaults to false in the agent API. Set true only if the requester explicitly wants the newsletter. |
| dryRun | Set true to validate without saving a request or sending email. Defaults to false. |

Agent API submissions are always marked as bots. You may send isBot=true for clarity. In the browser form, check “Are you a bot?” on the first step. Bots are welcome. Brief fields are optional; include the requester's answers about budget, goals, other listing plans, and instructions when available. Never invent answers. Our team receives the brief so it can follow up with options.

These contact and brief fields are private intake information. For an existing website, the submission records your new agent request without replacing the previous submitter's contact or claiming ownership. The response exposes only listing navigation fields.

## Validate first

No API key is required. Fetch the current requirements and JSON Schema:

```sh
curl --fail-with-body 'https://awesome.tools/api/agent/submissions'
```

Replace the example product, website, name, and email below with values your requester authorized. The .example addresses are placeholders.

```sh
curl --fail-with-body 'https://awesome.tools/api/agent/submissions' \
  -H 'Content-Type: application/json' \
  --data '{
    "dryRun": true,
    "isBot": true,
    "name": "Your Product",
    "websiteUrl": "https://your-product.example",
    "submitterName": "Authorized Requester",
    "submitterEmail": "requester@your-product.example",
    "newsletterOptIn": false,
    "botBudget": "Free listing only; no purchases authorized",
    "botGoals": "Help people find our software",
    "botInstructions": "Please email the requester with suitable listing options"
  }'
```

A successful preview returns success=true and dryRun=true. It does not check for an existing listing, test email deliverability, verify the backlink, or reserve a listing. Fix validation issues before submitting.

## Submit once

After a successful preview and the requester's authorization, send the same values with dryRun=false:

```sh
curl --fail-with-body 'https://awesome.tools/api/agent/submissions' \
  -H 'Content-Type: application/json' \
  --data '{
    "dryRun": false,
    "isBot": true,
    "name": "Your Product",
    "websiteUrl": "https://your-product.example",
    "submitterName": "Authorized Requester",
    "submitterEmail": "requester@your-product.example",
    "newsletterOptIn": false,
    "botBudget": "Free listing only; no purchases authorized",
    "botGoals": "Help people find our software",
    "botInstructions": "Please email the requester with suitable listing options"
  }'
```

Success returns success=true, dryRun=false, listing with botRequestReceived/isFeatured/name/slug/status, and nextActionUrl. Open nextActionUrl to finish the selected listing path. A Draft status means the tool is not yet public.

Do not repeat a successful submission: each real agent submission records a new brief and queues emails, including for an existing website. If the network response is lost, inspect the browser listing flow or contact the team before retrying. Respect 429 rate limits rather than changing identities or flooding requests.

The endpoint accepts application/json only and limits the body to 16 KiB. Successful submissions return HTTP 201; previews return HTTP 200. Errors return success=false and error with code/message plus validation issues when present. Codes include validation_error (422), invalid_json (400), unsupported_media_type (415), payload_too_large (413), rate_limited (429), and submission_failed (500). See the [OpenAPI description](https://awesome.tools/api/agent/openapi.json) for the contract.

## Complete the free listing

With permission to edit the product website, add this ordinary, visible link and publish the page:

```html
<a href="https://awesome.tools">Listed on Awesome Tools</a>
```

The link can be in a footer, About page, or “Listed on” section. The page must be on the submitted site's allowed host, public without sign-in, and indexable. Links hidden in comments, invisible markup, scripts, or marked nofollow/sponsored/ugc do not qualify.

Open nextActionUrl, choose the free listing path, and supply the exact public page URL where the link appears. Use the page's “Check my link” button or verify_listing_backlink WebMCP tool. A successful link check returns status=live; it confirms the backlink rather than immediate directory publication. Keep the backlink in place. A removed backlink can lead to a listing being hidden; an unreadable page does not count as a missing link.

## Browser WebMCP

Open [the submission form](https://awesome.tools/submit) in a browser that supports WebMCP. Tools register while the relevant page is open:

| Tool | What it does |
| --- | --- |
| get_submission_requirements | Reads the current requirements and listing options. |
| prepare_tool_submission | Takes the submission fields, validates them, and fills the form's final review step. It does not submit or send email. |
| submit_tool | Takes only {"confirmSubmission":true} after prepare_tool_submission and requester authorization. It saves the reviewed request, queues emails, and returns the next listing URL. |
| get_backlink_requirements | Reads the backlink requirements for the current listing after opening its free listing form. |
| verify_listing_backlink | Takes {"backlinkUrl":"https://your-product.example/about"} on that free listing form. Checks the URL for the current listing; verification may update the listing and send status emails. |

Tools are page-specific. Inspect their input schemas before calling them. Prepare the complete authorized submission before calling submit_tool; it accepts no replacement contact or brief fields. Open the returned listing URL and choose the free path to discover the backlink tools. If your browser does not expose WebMCP, use the JSON API or the labeled browser form instead. No WebMCP or API tool completes a Stripe payment.

## Optional LinkDR workflow

For requesters who want to explore additional link-building options, read [LinkDR's own skill](https://linkdr.com/SKILL.md) and check its current services and terms. LinkDR is a separate service. The promotional code is AGENTIC. Include the requester's budget, goals, and planned directories in the Awesome Tools brief so our team can discuss relevant options. Do not sign up, buy services, or run outreach without the requester's authorization.

## Discovery

- [llms.txt](https://awesome.tools/llms.txt)
- [OpenAPI description](https://awesome.tools/api/agent/openapi.json)
- [Current requirements and JSON Schema](https://awesome.tools/api/agent/submissions)
- [Browser form](https://awesome.tools/submit)
