Create a project
const url = 'https://app.nurseshark.org/api/projects';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"example","name_theme":"example","summary":"example","description":"example","status":"idea","tags":["example"],"repo_url":"example","url":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://app.nurseshark.org/api/projects \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "name_theme": "example", "summary": "example", "description": "example", "status": "idea", "tags": [ "example" ], "repo_url": "example", "url": "example" }'Records a new project. It gets a random color, and favicon_svg is a square in that color. Fails with 422 if the name is taken or the account is at its project limit.
Same as the create_project MCP tool.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Display name, e.g. “Hammerhead”. Stored lowercase with hyphens between words. Must be unique among the user’s projects.
Theme the name came from, if it came from suggest_names.
One line saying what the project does, e.g. “CLI that renames photos by EXIF date”.
A few paragraphs of plain text: purpose, how it works, stack, how to run it.
Defaults to active.
Short lowercase labels such as language, framework, or area (e.g. rails, cli, home-automation).
Http(s) URL of the source repository.
Http(s) URL where the project is deployed or documented.
Responses
Section titled “Responses”Created
object
object
Globally unique and never changes, even when the project is renamed.
Lowercase with hyphens between words, e.g. whale-shark.
Unique among the account’s projects. Use it, the name or the UUID to look the project up.
One line saying what the project does, e.g. “CLI that renames photos by EXIF date”.
A few paragraphs of plain text: purpose, how it works, stack, how to run it.
Defaults to active.
Short lowercase labels such as language, framework, or area (e.g. rails, cli, home-automation).
Http(s) URL of the source repository.
Http(s) URL where the project is deployed or documented.
The theme the name came from, if one was given when the project was created.
Picked at random when the project is created.
An SVG square in the project’s color, to use as its favicon.
Newest first. Only from getting one project, which includes 10 unless notes says otherwise.
object
Example
{ "project": { "status": "idea" }}The token is missing, invalid or expired.
object
What went wrong and what to change.
For validation failures, the messages for each field.
object
Example generated
{ "error": "example", "errors": { "additionalProperty": [ "example" ] }}The request was understood but can’t be done, for example a value over its limit or a name already in use. error says what to change.
object
What went wrong and what to change.
For validation failures, the messages for each field.
object
Example generated
{ "error": "example", "errors": { "additionalProperty": [ "example" ] }}Over the rate limit. Try again in a minute.
object
What went wrong and what to change.
For validation failures, the messages for each field.
object
Example generated
{ "error": "example", "errors": { "additionalProperty": [ "example" ] }}