# Submit a plugin to Rakazo

List a plugin in the Rakazo marketplace. We review every submission and email the result.

The plugin must be a public GitHub repository with a plugin manifest (`plugin.json` following [Agent Plugins](https://agent-plugins.org), or `.cursor-plugin/plugin.json`) and skills, a hosted MCP server, or both.

[Build a plugin](https://rakazo.com/docs/build-a-plugin/) describes the format and what review checks. The [hello world plugin](https://github.com/elie222/rakazo/tree/main/examples/plugins/hello-world) is a complete example.

## Submit with the API

`POST https://app.rakazo.com/api/v1/plugin-submissions` with a JSON body. No account or key is needed.

| Field | Required | Notes |
| --- | --- | --- |
| `email` | Yes | Where we send the review result |
| `name` | Yes | Plugin name, up to 80 characters |
| `website` | No | https URL |
| `logo` | Yes | https URL of a square SVG or PNG |
| `source` | Yes | Public GitHub repository URL; add `/tree/main/<folder>` for a plugin in a folder |
| `description` | Yes | What the plugin does, up to 2000 characters |
| `testing` | Yes | How to try it in Rakazo, up to 4000 characters. Never include real credentials |
| `tested` | Yes | `true`: you tested the plugin in Rakazo |

```sh
curl -X POST https://app.rakazo.com/api/v1/plugin-submissions \
  -H 'content-type: application/json' \
  -d '{"email":"you@example.com","name":"Acme","logo":"https://example.com/logo.svg","source":"https://github.com/acme/rakazo-plugin","description":"Search Acme tickets.","testing":"Install it and ask a bot to find ticket 42.","tested":true}'
```

A new submission returns `201` with `{"id","status":"pending"}`. Resubmitting the same repository while it waits updates it and returns `200`. Invalid input returns `400` with an `issues` list naming each field.
