Cria um anúncio
POST/api/classifieds/ads
- Auth
- Requires a token
- X-CommunityId
X-CommunityIdSend the X-CommunityId of the community the operation happens in.
Endpoint descriptions come straight from the API specification and are in Portuguese for now. The interface around them is translated.
Quem pode anunciar é `Space.canCreate` (qualquer um, equipe ou admins) mais o acesso ao space; fora disso, 403. Não há teto de anúncios por pessoa. A categoria precisa ser do space e o prazo (`durationDays`) um dos permitidos. `valueAmount` e `valueNote` só com "mostrar valor" ligado; o valor é informativo e a moeda é a da comunidade. Com aprovação ligada o anúncio nasce `PENDING`, sem `publishedAt` nem `expiresAt` (o prazo conta a partir da aprovação); sem ela publica na hora. As imagens sobem depois por `POST /api/upload/classifieds/ads/{adId}/images`.
Headers
| Name | Type | Description |
|---|---|---|
X-CommunityIdoptional | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Request body application/json
| Name | Type | Description |
|---|---|---|
spaceIdrequired | string (uuid) | |
categoryIdrequired | string (uuid) | |
titlerequired | string | max 140 |
descriptionrequired | string | Texto formatado (HTML); é sanitizado. |
durationDaysrequired | integer | ≥ 1, ≤ 365 |
valueAmountoptional | number | ≥ 0 |
valueNoteoptional | string | max 60 |
Responses
| Status | Description |
|---|---|
201 | Anúncio criado. |
400 | Requisição inválida — falha de validação. |
401 | Token ausente, inválido ou expirado. |
403 | Autenticado, mas sem permissão para esta operação. |
404 | Recurso não encontrado. |
500 | Erro interno do servidor. |
curl example
curl -X POST "https://api.memberfy.net/api/classifieds/ads" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"spaceId":"00000000-0000-0000-0000-000000000000","categoryId":"00000000-0000-0000-0000-000000000000","title":"string","description":"string","durationDays":1}'