Skip to content

Renew the membership (self-service)

POST
/v1/me/membership/renew
curl --request POST \
--url https://api.vimine.network/v1/me/membership/renew \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "accept_statuto": { "version": 1, "sha256": "example" } }'

Inside the renewal window (60 days before expiry, or after it). A free membership type with no approval gate is renewed at once (renewed: true, new expires_at); otherwise a renewal request is recorded and the association notified (requested: true) — it completes when the secretariat records the quota or approves. accept_statuto must name the in-force statuto. Repeating the request is a no-op.

Media typeapplication/json
object
accept_statuto
required
object
version
required
integer
sha256
string
Examplegenerated
{
"accept_statuto": {
"version": 1,
"sha256": "example"
}
}

Renewed or requested

Media typeapplication/json
object
renewed
boolean
requested
boolean
status
string
expires_at
string format: date-time
nullable
renewal_requested_at
string format: date-time
nullable
Examplegenerated
{
"renewed": true,
"requested": true,
"status": "example",
"expires_at": "2026-04-15T12:00:00Z",
"renewal_requested_at": "2026-04-15T12:00:00Z"
}

Invalid request

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Missing or invalid credentials

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Not allowed

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Not found

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Outside the renewal window (too_early) or the membership cannot be renewed (not_renewable)

accept_statuto does not name the in-force statuto

Rate limited

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Internal error

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}