Update project
Updates project attributes.
PATCH/
Requires an API key with the projects.manage action.
Path parameters
-
projectId·string· required · min length 1 · exampleprj_exampleProject identifier.
Request body
application/json · required
Update project request body.
-
name·string· min length 1 · max length 100 · examplePayments UpdatedUpdated project name.
-
description·string | null· max length 500 · exampleUpdated project description.Updated description. Use null to clear.
-
settings·object | nullUpdated project settings. Use null to clear.
-
webhookUrl·string· formaturi -
metadata·object*·string
-
Responses
-
200Project updated-
data·object· requiredProject response payload.
-
project·object· requiredProject details.
-
id·string· required · min length 1 · exampleprj_exampleProject identifier.
-
organizationId·string· required · min length 1 · exampleorg_exampleOrganization identifier.
-
name·string· required · examplePaymentsProject name.
-
slug·string· required · examplepaymentsURL-friendly slug.
-
description·string | null· required · examplePayments workflowOptional project description.
-
environment·string· required · one ofsandbox,beta,production· examplesandboxProject environment.
-
settings·object | null· requiredProject settings, or null when none have been set.
-
webhookUrl·string· formaturi· examplehttps://example.com/webhookWebhook URL for event notifications.
-
metadata·objectArbitrary metadata key/value pairs.
*·string
-
-
status·string· required · one ofactive,archived· exampleactiveProject status.
-
createdBy·string· required · min length 1 · exampleusr_exampleIdentifier of the creator.
-
createdAt·string· required · formatdate-time· example2025-01-01T00:00:00.000ZCreation timestamp.
-
updatedAt·string· required · formatdate-time· example2025-01-02T00:00:00.000ZLast update timestamp.
-
-
-
meta·object· requiredResponse metadata.
-
requestId·string· required · min length 1 · examplereq_exampleRequest identifier for tracing.
-
timestamp·string· required · formatdate-time· example2025-01-01T00:00:00.000ZISO 8601 timestamp.
-
-
-
400Bad Request-
error·object· requiredStandard error payload.
-
code·string· requiredMachine-readable error code.
-
message·string· requiredHuman-readable error message.
-
details·objectOptional error details for debugging.
*·any
-
-
meta·object-
requestId·string· min length 1 · examplereq_exampleRequest identifier for tracing.
-
-
-
401UnauthorizedSame fields as
400. -
403Forbidden. Requires theprojects.manageaction: an API key must hold it (a module'smanageorexecutealso covers itsread), and a signed-in member's organization role must include it. Without it the error is INSUFFICIENT_PERMISSIONS anderror.details.actionnames the action. Any other 403 names its own reason.Same fields as
400. -
404Not FoundSame fields as
400. -
500Internal Server ErrorSame fields as
400.
Example request
curl -X PATCH 'https://api.solana.com/v1/projects/prj_example' \
-H "Authorization: Bearer $SDP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Payments Updated",
"description": "Updated project description.",
"settings": {
"webhookUrl": "https://example.com/webhook"
}
}'Example responses
{
"data": {
"project": {
"id": "prj_example",
"organizationId": "org_example",
"name": "Payments",
"slug": "payments",
"description": "Payments workflow",
"environment": "sandbox",
"settings": {
"webhookUrl": "https://example.com/webhook",
"metadata": {
"region": "us"
}
},
"status": "active",
"createdBy": "usr_example",
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-01-02T00:00:00.000Z"
}
},
"meta": {
"requestId": "req_example",
"timestamp": "2025-01-01T00:00:00.000Z"
}
}Error responses use the standard error shape.