Facebook Page Info
Read and edit the public information of a Facebook Page connected to a profile: about, description, website, phone, emails, opening hours, profile picture and cover photo.
- Authentication: API Key —
Authorization: Apikey <YOUR_API_KEY>
Meta only allows editing Page info to apps approved for the pages_manage_metadata
permission. Upload-Post's approval is pending Meta App Review, so for now updates
answer 403 with code: "facebook_permission_missing". Reading works today with the
existing connection. Once the permission is approved, Facebook will need to be reconnected
once to grant it.
The Page is resolved in this order: page_id in the request → the Page
pinned to the profile → the account's default Page → the only Page
the account manages. If the account manages several Pages and none of those applies,
the API answers 400 facebook_page_required with available_pages.
Read Page info
- Method:
GET - Endpoint:
/api/uploadposts/facebook/page-info
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
user | string | Yes | Profile username with Facebook connected. |
page_id | string | No | Page to read (see "Which Page?"). |
Example Request
curl 'https://api.upload-post.com/api/uploadposts/facebook/page-info?user=agent-paris' \
-H 'Authorization: Apikey YOUR_API_KEY'
Successful Response (200 OK)
{
"success": true,
"page_id": "555",
"page": {
"id": "555",
"name": "Agence Dupont",
"about": "Agence immobilière",
"description": "Vente, location et gestion à Paris 11e.",
"website": "https://dupont.example",
"phone": "+33 1 23 45 67 89",
"emails": ["[email protected]"],
"hours": { "mon_1_open": "09:00", "mon_1_close": "12:00", "mon_2_open": "14:00", "mon_2_close": "18:00" },
"hours_list": [
{ "day": "MONDAY", "open": "09:00", "close": "12:00" },
{ "day": "MONDAY", "open": "14:00", "close": "18:00" }
],
"link": "https://www.facebook.com/agencedupont",
"category": "Real Estate Agent",
"picture_url": "https://scontent.xx.fbcdn.net/...",
"cover_url": "https://scontent.xx.fbcdn.net/..."
}
}
If Meta refuses some fields to the current token, the response carries the basic fields
only plus "partial": true.
Update Page info
- Method:
PATCH(also acceptsPOST) - Endpoint:
/api/uploadposts/facebook/page-info
Body Parameters (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
user | string | Yes | Profile username. |
page_id | string | No | Page to edit (see "Which Page?"). |
validate_only | boolean | No | true validates the body and the Page access without sending anything to Facebook. |
about | string | No | Short "About" text. |
description | string | No | Long description. |
website | string | No | Absolute http(s) URL. |
phone | string | No | Phone number. |
emails | array of string | No | Contact emails (a single string is accepted too). |
hours | array or object | No | [{"day": "MONDAY", "open": "09:00", "close": "18:00"}] (max 2 ranges per day), or Meta's own {"mon_1_open": "09:00", "mon_1_close": "18:00"}. |
picture_url | string | No | Public image URL for the profile picture. |
cover_url | string | No | Public image URL for the cover photo. |
Example Request
curl -X PATCH https://api.upload-post.com/api/uploadposts/facebook/page-info \
-H 'Authorization: Apikey YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"user": "agent-paris",
"about": "Agence immobilière à Paris 11e",
"website": "https://dupont.example",
"phone": "+33 1 23 45 67 89",
"hours": [
{ "day": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"], "open": "09:00", "close": "18:00" }
]
}'
Successful Response (200 OK)
{
"success": true,
"page_id": "555",
"updated_fields": ["about", "hours", "phone", "website"],
"ignored_fields": []
}
With validate_only: true the response is {"success": true, "validate_only": true, "would_update": [...]}.
Permission error (403)
{
"success": false,
"code": "facebook_permission_missing",
"required_permission": "pages_manage_metadata",
"error": "Facebook refused to update this Page's info: it requires the pages_manage_metadata permission, which Upload-Post's Facebook app does not have yet (pending Meta App Review). Meta said: ...",
"applied": []
}
Fields, picture and cover are sent in that order; if one step fails, applied lists the
steps that already went through.
Errors
| Status | code | Meaning |
|---|---|---|
| 400 | user_required | Missing or invalid user. |
| 404 | profile_not_found | The profile does not exist. |
| 400 | facebook_not_connected | The profile has no Facebook account connected. |
| 401 | facebook_reconnect_required | The Facebook token is no longer valid; reconnect Facebook. |
| 400 | facebook_page_required | Several Pages and none selected; see available_pages. |
| 400 | facebook_page_not_accessible | The page_id is not managed by the connected account. |
| 404 | no_facebook_pages | The connected account manages no Page. |
| 403 | facebook_permission_missing | Meta requires pages_manage_metadata (pending App Review). |
| 400 | invalid_field / no_fields | Validation failed / nothing to update. |
| 400 | facebook_validation_error | Facebook rejected a value; see facebook_error. |
| 502 | facebook_api_error | Error on Facebook's side. |